Timeweb composer: Страница не найдена — Timeweb help test
Содержание
Web-разработка • Yii2 и Laravel
Временна́я зона пользователя
У нас есть еще проблема с временно́й зоной — в базе данных мы храним дату и время в UTC. Будем показывать московское время для всех не аутентифицированных пользователй, а для аутентифицированных добавим возможность задать часовой пояс в личном кабинете. Мы добавим поле timezone
в таблицу базы данных users
и будем хранить в нем часовые пояса — Europe/Moscow
, Asia/Irkutsk
, Asia/Magadan
.
> php artisan make:migration alter_users_table --table=users
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class AlterUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('users', function (Blueprint $table) { $table->string('timezone')->after('email')->nullable(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { $table->dropColumn('timezone'); }); } }
> php artisan migrate Migrating: 2021_02_26_074945_alter_users_table Migrated: 2021_02_26_074945_alter_users_table (0.08 seconds)
Теперь в модели User
, Post
и Comment
добавим аксессоры, которые будут изменять значения свойств моделей в момент доступа.
class User extends Authenticatable { /** * Преобразует дату и время регистрации пользователя из UTC в Europe/Moscow * * @param $value * @return \Carbon\Carbon|false */ public function getCreatedAtAttribute($value) { $timezone = 'Europe/Moscow'; if ($this->timezone) { $timezone = $this->timezone; } return Carbon::createFromFormat('Y-m-d H:i:s', $value) ->timezone($timezone)->format('d.m.Y H:i'); } /** * Преобразует дату и время обновления пользователя из UTC в Europe/Moscow * * @param $value * @return \Carbon\Carbon|false */ public function getUpdatedAtAttribute($value) { $timezone = 'Europe/Moscow'; if ($this->timezone) { $timezone = $this->timezone; } return Carbon::createFromFormat('Y-m-d H:i:s', $value) ->timezone($timezone)->format('d.m.Y H:i'); } }
class Post extends Model { /** * Преобразует дату и время создания поста из UTC в Europe/Moscow * * @param $value * @return \Carbon\Carbon|false */ public function getCreatedAtAttribute($value) { $timezone = 'Europe/Moscow'; if (auth()->check() && auth()->user()->timezone) { $timezone = auth()->user()->timezone; } return Carbon::createFromFormat('Y-m-d H:i:s', $value) ->timezone($timezone)->format('d.m.Y H:i'); } /** * Преобразует дату и время обновления поста из UTC в Europe/Moscow * * @param $value * @return \Carbon\Carbon|false */ public function getUpdatedAtAttribute($value) { $timezone = 'Europe/Moscow'; if (auth()->check() && auth()->user()->timezone) { $timezone = auth()->user()->timezone; } return Carbon::createFromFormat('Y-m-d H:i:s', $value) ->timezone($timezone)->format('d.m.Y H:i'); } /** * Преобразует дату и время удаления поста из UTC в Europe/Moscow * * @param $value * @return \Carbon\Carbon|false */ public function getDeletedAtAttribute($value) { $timezone = 'Europe/Moscow'; if (auth()->check() && auth()->user()->timezone) { $timezone = auth()->user()->timezone; } return Carbon::createFromFormat('Y-m-d H:i:s', $value) ->timezone($timezone)->format('d.m.Y H:i'); } }
class Comment extends Model { /** * Преобразует дату и время создания комментария из UTC в Europe/Moscow * * @param $value * @return \Carbon\Carbon|false */ public function getCreatedAtAttribute($value) { $timezone = 'Europe/Moscow'; if (auth()->check() && auth()->user()->timezone) { $timezone = auth()->user()->timezone; } return Carbon::createFromFormat('Y-m-d H:i:s', $value) ->timezone($timezone)->format('d.m.Y H:i'); } /** * Преобразует дату и время обновления комментария из UTC в Europe/Moscow * * @param $value * @return \Carbon\Carbon|false */ public function getUpdatedAtAttribute($value) { $timezone = 'Europe/Moscow'; if (auth()->check() && auth()->user()->timezone) { $timezone = auth()->user()->timezone; } return Carbon::createFromFormat('Y-m-d H:i:s', $value) ->timezone($timezone)->format('d.m.Y H:i'); } /** * Преобразует дату и время удаления комментария из UTC в Europe/Moscow * * @param $value * @return \Carbon\Carbon|false */ public function getDeletedAtAttribute($value) { $timezone = 'Europe/Moscow'; if (auth()->check() && auth()->user()->timezone) { $timezone = auth()->user()->timezone; } return Carbon::createFromFormat('Y-m-d H:i:s', $value) ->timezone($timezone)->format('d.m.Y H:i'); } }
Теперь в личном кабинете добавим возможность для пользователя указать свой часовой пояс. В модель User
добавим константу TIMEZONES
с перечислением всех часовых поясов России. И создадим форму с выпадающим списком, где пользователь сможет выбрать подходящую — и будем хранить зону для каждого пользователя в базе данных.
class User extends Authenticatable { /* ... */ const TIMEZONES = [ 'Europe/Kaliningrad' => 'Калининград, Россия (+02:00)', 'Europe/Moscow' => 'Москва, Россия (+03:00)', 'Europe/Astrakhan' => 'Астрахань, Россия (+04:00)', 'Asia/Yekaterinburg' => 'Екатеринбург, Россия (+05:00)', 'Asia/Omsk' => 'Омск, Россия (+06:00)', 'Asia/Novosibirsk' => 'Новосибирск, Россия (+07:00)', 'Asia/Irkutsk' => 'Иркутск, Россия (+08:00)', 'Asia/Chita' => 'Чита, Россия (+09:00)', 'Asia/Vladivostok' => 'Владивосток, Россия (+10:00)', 'Asia/Magadan' => 'Магадан, Россия (+11:00)', 'Asia/Kamchatka' => 'Петропавловск-Камчатский, Россия (+12:00)' ]; /* ... */ }
Два новых маршрута:
/* * Личный кабинет пользователя */ Route::group([ 'as' => 'user.', // имя маршрута, например user.index 'prefix' => 'user', // префикс маршрута, например user/index 'namespace' => 'User', // пространство имен контроллеров 'middleware' => ['auth'] // один или несколько посредников ], function () { /* ..... */ /* * Редактирование персональных данных */ Route::get('edit/{user}', 'DataController@edit')->name('edit'); Route::put('update/{user}', 'DataController@update')->name('update'); });
Новый контроллер:
> php artisan make:controller User/DataController
namespace App\Http\Controllers\User; use App\Http\Controllers\Controller; use App\User; use Illuminate\Http\Request; class DataController extends Controller { /** * Показывает форму для редактирования данных */ public function edit(User $user) { $timezones = User::TIMEZONES; return view('user.data', compact('user', 'timezones')); } /** * Обновляет данные пользователя в базе данных */ public function update(Request $request, User $user) { /* * Проверяем данные формы */ $request->validate([ 'name' => 'string|required|max:255', 'timezone' => 'nullable|string|max:255' ]); /* * Обновляем пользователя */ $user->update($request->only(['name', 'timezone'])); /* * Возвращаемся на главную */ return redirect() ->route('user.index') ->with('success', 'Данные успешно обновлены'); } }
Шаблон user.data
:
@extends('layout.user', ['title' => 'Личные данные']) @section('content') <h2>Личные данные</h2> <form method="post" action="{{ route('user.update', ['user' => $user->id]) }}"> @csrf @method('PUT') <div> <input type="text" name="name" placeholder="Имя, Фамилия" required maxlength="255" value="{{ old('name') ?? $user->name }}"> </div> <div> @php $timezone = old('timezone') ?? $user->timezone ?? null; @endphp <select name="timezone" title="Часовой пояс"> <option value="">Выберите</option> @foreach($timezones as $key => $value) <option value="{{ $key }}" @if ($key === $timezone) selected @endif> {{ $value }} </option> @endforeach </select> </div> <div> <button type="submit">Сохранить</button> </div> </form> @endsection
На главной странице личного кабинета разместим ссылку для перехода к редактированию личных данных:
@extends('layout.user', ['title' => 'Личный кабинет']) @section('content') <h2>Личный кабинет</h2> <p>Добрый день {{ auth()->user()->name }}!</p> .......... <a href="{{ route('user.edit', ['user' => auth()->user()->id]) }}"> Личные данные </a> @endsection
Деплой на хостинг TimeWeb
1. Создаем репозиторий на GitHub
Сначала создадим новый репозиторий на GitHub, у меня это laravel-7-blog
. Сразу после создания получим подсказки, что делать дальше.
На локальном компьютере тоже создаем репозиторой, чтобы выложить на GitHub:
$ cd D:/work/localhost24/www # это директория проекта
$ git init # создаем пустой репозиторий Initialized empty Git repository in D:/work/localhost24/www/.git/ $ git add --all # добавляем все файлы проекта $ git commit -m "Initial сommit" # первый коммит
У нас уже есть подсказка от GitHub, что надо сделать, чтобы выложить проект (не торопитесь выполнять):
$ git remote add origin [email protected]:tokmakov/laravel-7-blog.git $ git branch -M main # изменить имя с master на main $ git push -u origin main
Разработчики GitHub предлагают еще изменить имя ветки с master
на main
. Потому что имя master
им представляется недостаточно толерантным. Но мы не будем следовать сомнительным советам, имя master
вполне подходит.
Добавляем себе ссылку (pointer) на удаленный репозиторий:
$ git remote add origin [email protected]:tokmakov/laravel-7-blog.git
Теперь удаленный репозиторий доступен как origin
:
$ git remote origin
Отправляем текущую ветку master
(которая у нас сейчас всего одна) в удаленную ветку master
репозитория origin
:
$ git push origin master
Настроим текущую ветку master
на отслеживание удаленной ветки master
:
$ git branch -u origin/master Branch master set up to track remote branch master from origin.
2. Клонируем проект на сервере
В панели управления хостинга нужно включить доступ по SSH и подключиться из командной строки к серверу. На хостинге TimeWeb уже установлен Composer, только нужно задать алиасы (см. здесь) для composer
и php
.
$ pwd /home/c/ca12345 $ nano .bash_profile
alias composer='/opt/php72/bin/php -d memory_limit=1024M /usr/local/bin/composer' alias php='/opt/php72/bin/php -d memory_limit=1024M'
Чтобы применить изменения из файла .bash_profile
:
$ source ~/.bash_profile
Проверяем, что Composer нам теперь доступен:
$ composer ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.9.0 2019-08-02 20:55:32 Usage: command [options] [arguments] ..........
Создаем директорию для нашего проекта в панели управления хостингом, у меня это laravel-7-blog
.
Внутри будет автоматически создана директория public_html
, которая является корнем сервера. Нам это директория не нужна, потому что у нас корень сервера — директория public
.
$ rm -r ~/laravel-7-blog/public_html
Клонируем в laravel-7-blog
репозиторий с GitHub:
$ git clone https://github.com/tokmakov/laravel-7-blog.git laravel-7-blog
3. Устанавливаем проект на сервере
Устанавливаем проект с помощью Composer:
$ cd laravel-7-blog $ composer install --no-dev
Проблема в сервис-провайдере IdeHelperServiceProvider
, так что удаляем его из config/app.php
, а вместо этого регистрируем в AppServiceProvider
.
namespace App\Providers; use App\Observers\PostObserver; use App\Post; use Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function register() { if ($this->app->isLocal()) { $this->app->register(IdeHelperServiceProvider::class); } } public function boot() { Post::observe(PostObserver::class); } }
Пакет laravel-ide-helper
позволяет создать файл-хелпер, содержащий сгенерированные статические классы фасадов. Классы никак не используются приложением, а нужны только для автодополнения PhpStorm. У меня на локальном сервере этот пакет в секции require-dev
файла composer.json
, но на хостинге пакет не был установлен — потому что устанавливаются пакеты только из секции require
.
Выкладываем изменения на GitHub:
$ git commit -a -m "package laravel-ide-helper" $ git push
На сервере получаем изменения:
$ git pull
Повторяем установку проекта:
$ composer install --no-dev
4. Создаем новую базу данных
В панели управления хостингом создаем новую базу данных, у меня это ca12345_lar7blog
.
Создаем файл конфигурации приложения, указываем имя БД, имя пользователя БД и пароль.
$ cp .env.example .env $ nano .env
APP_NAME="Блог о веб-разработке" APP_ENV=production APP_KEY= APP_DEBUG=false APP_URL=http://laravel-7-blog.tokmakov.msk.ru LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=ca12345_lar7blog DB_USERNAME=ca12345_lar7blog DB_PASSWORD=5MdafrXs
Создаем ключ приложения Laravel:
$ php artisan key:generate Application key set successfully
5. Создаем таблицы базы данных
Запускаем миграцию, чтобы создать таблицы БД и тестовые данные:
$ php artisan migrate:fresh --seed ************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Dropped all tables successfully. Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table In Connection.php line 671: SQLSTATE[HY000]: General error: 1709 Index column size too large. The maxim um column size is 767 bytes. (SQL: alter table `users` add unique `users_em ail_unique`(`email`)) In Connection.php line 464: SQLSTATE[HY000]: General error: 1709 Index column size too large. The maxim um column size is 767 bytes.
Исправить это легко, изменяем файл AppServiceProvider.php
:
class AppServiceProvider extends ServiceProvider { public function register() { Schema::defaultStringLength(191); /* ... */ } /* ... */ }
Выкладываем изменения на GitHub:
$ git commit -a -m "default string length" $ git push
На сервере получаем изменения:
$ git pull
Снова запускаем миграцию и получаем следующую ошибку:
Для заполнения БД начальными данными нужен класс Faker\Factory
, но пакет fakerphp/faker
в секции require-dev
файла composer.json
— так что вручную перемещаем его в секцию require
и обновляем файл composer.lock
.
> composer update --lock
Выкладываем изменения на GitHub:
$ git commit -a -m "package fakerphp/faker" $ git push
На сервере получаем изменения:
$ git pull
Повторяем установку проекта:
$ composer install --no-dev
Снова запускаем миграцию:
$ php artisan migrate:fresh --seed
Теперь проблемы с отправкой почты — редактируем файл .env
:
$ nano .env
MAIL_MAILER=smtp MAIL_HOST=smtp.timeweb.ru MAIL_PORT=465 [email protected] MAIL_PASSWORD=пароль-почтового-ящика MAIL_ENCRYPTION=ssl [email protected] MAIL_FROM_NAME="${APP_NAME}"
Кроме того, надо создать такой почтовый ящик с таким паролем в панели управления хостинга.
$ php artisan migrate:fresh --seed
На этот раз все прошло успешно.
6. Создаем символические ссылки
Мы удалили директорию public_html
внутри laravel-7-blog
, которая на хостинге является корнем веб-сервера. Теперь вместо нее создадим символическую ссылку public_html
(см. здесь), которая будет указывать на директорию public
.
$ ln -s ~/laravel-7-blog/public ~/laravel-7-blog/public_html
Кроме того, создаем символическую ссылку public/storage
на директорию storage/app/public
:
$ php artisan storage:link The [/home/c/ca12345/laravel-7-blog/public/storage] link has been connected to [/home/c/ca12345/laravel-7-blog/storage/app/public]. The links have been created.
Исходные коды здесь, демо-сайт здесь.
Поиск:
Git • GitHub • Laravel • MySQL • PHP • Web-разработка • База данных • Блог • Пользователь • Практика • Фреймворк
Деплой проекта на Laravel, на VDS хостинга TimeWeb
Деплой проекта на Laravel, на VDS хостинга TimeWeb
Здесь пока будут последние обновления, теперь перенес и на Beget https://github.com/belocer/redberry
Вот что мне помогло запустить проект на Laravel версия Laravel Framework 7.13.0
Может кому пригодится.
Перед использованием данного мануала нужно всё прочесть!
Установка LAMP по этому мануалу, — https://timeweb.com/ru/help
При создании виртуального сервера, в содержимом файла, site1.conf должно быть вот это
<VirtualHost *:80>
ServerName 333366-cq60668.tmweb.ru
ServerAlias www.333366-cq60668. index.php [L]
</IfModule>
Так же во время установки PHP нужны модули, их можно установить вот этими командами
sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
Ещё эту нужно если версия PHP у Вас другая, тогда замените число после точки
apt-get install php7.4 php7.4-bcmath php7.4-bz2 php7.4-cli php7.4-common php7.4-curl php7.4-fpm php7.4-gd php7.4-imap php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-pgsql php7.4-readline php7.4-sqlite3 php7.4-tidy php7.4-xml php7.4-zip php-amqp php-apcu php-geoip php-imagick php-memcache php-mongodb php-oauth php-smbclient php-solr php-ssh3 php-uploadprogress php-uuid php-yaml php-xdebug
Дальше запускаем модуль rewrite:
и перезапускаем apache2:
Так же создаём бд например назавём её rb
заходим в mysql консоль и вводим свой пароль, про пароль я ещё на пишу ниже
Создаём бд в MySQL
CREATE DATABASE rb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
далее проверяем создалась ли она(rb должна быть в списке), —
если нужно подключится к бд rb то пишем команду
В случае проблемы доступа к бд по привелегиям выполняем команду
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый пароль тут';
Если не получилось, тогда команда:
SHOW GLOBAL VARIABLES LIKE 'validate_password%';
здесь мы увидим таблицу, с требованиями к паролю, что бы ослабить соответственно уменьшаем числовое значение, например хочу уменьшить длинну пароля, тогда выполняю команду
SET GLOBAL validate_password.
И для корректной работы laravel проекта нужно выполнить команды внутри проекта
и
если с композером будут проблемы, то лучше выполнять команду composer install через консоль которая есть в админке vds
можно попробовать команду
либо
composer install --no-plugins --no-scripts
либо
composer update --no-plugins --no-scripts
Буду благодарен любому клику на любой рекламный банер!
Установка DRUSH на виртуальный хостинг TimeWeb
Не буду расписывать как утилита drush облегчает жизнь друпалеру, об этом вы и сами знаете.
Но вот на виртуальных хостингах он присутствует только на специализированных. А как быть, если вы используете что-то иное? Мы в своей практике рекомендуем клиентам пользоваться услугами хостинга timeweb.com - стабильная работа, недорогие тарифы, сервера в РФ, возможность оплаты по безналичному расчету. В общем, весьма приятный вариант. Далее я расскажу как достаточно быстро настроить драш на примере этого хостинга.
Установка Composer
Благо есть инструкция, правда найти ее на сайте таймвеба сложно. Пришлось гуглить, и то потому что я знал, что она там есть)
Итак инструкция - http://timeweb.com/ru/help/pages/viewpage.action?pageId=8781936
1. Подключитесь к серверу по SSH и скачайте дистрибутив с официального сайта:
wget https://getcomposer.org/composer.phar
2. Добавьте alias для упрощенного запуска в файл .bash_profile (.bashrc - можно, но необязательно) - этих файлов по умолчанию нет, просто создайте их в домашней директории (в примере PHP 5.6; может быть использована другая версия):
alias composer='/opt/php7.0/bin/php -d memory_limit=500M /home/u/user/composer.phar'
(u и user - первая буква Вашего логина и Ваш логин). Команда pwd поможет вам узнать букву и логин. Так же вместо php56 можно использовать php7.0 (/opt/php7.0/bin/php)
Либо работаем от домашней папки
alias composer='/opt/php7.0/bin/php -d memory_limit=500M ~/composer.phar'
3. Перезапустите соединение по SSH (или выполните команду source .bash_profile) и проверьте работу Composer:
composer -V
Если показалось что-то вроде
$ composer -V
Composer version 1.5-dev (2c03dab4c38caa498e87fe3300360497ce1bb381) 2017-04-10 16:47:30
то все ОК, мы готовы ставить drush!
Установка Drush
Официальная инструкция - http://docs.drush.org/en/master/install/
Собственно следуем пунктам.
1. Качаем свежий драш
composer global require drush/drush
В результате в домашней директории появится папка .config/composer/vendor
2. Прописываем алиасы по аналогии с композером .bash_profile (.bashrc) следующими строками
alias drush='/opt/php7.0/bin/php -d memory_limit=500M ~/vendor/bin/drush.php'
и перезапускаем SSH-соединение.
3. Проверяем все ли верно получилось:
$ drush --version
Drush Version : 8.1.10
Супер! Продолжаем работать 😉
UPD.
Если все же драш не заработал и начинает ругаться на версию PHP примерно так:
The external command could not be executed due to an application [error]
error.
The command could not be executed successfully (returned: PHP Parse [error] error: syntax error, unexpected '[' in /home/c/user_name/vendor/drush/drush/includes/preflight.inc on line 341, code: 255) pm-updatestatus failed.
То вам должно помочь следующее: укажите в файлах .bash_profile и .bashrc в первой строке версию PHP для работы Drush:
export DRUSH_PHP='/opt/php7.0/bin/php'
UPD2. Теперь DRUSH_PHP не работает. Необходимо прописать пути примерно так:
PATH="/opt/php70/bin:$PATH:~/.config/composer/vendor/bin"
Обратите внимание на путь /opt/php70/bin - он прописан до директории, а не самого исполняемого файла.
Огромная благодарность за помощь в решении вопроса Никите Малышеву и weitzman (https://github.com/drush-ops/drush/issues/2826 )
Итоговый .bash_profile будет выглядеть примерно так:
PATH="/opt/php70/bin:$PATH:~/.config/composer/vendor/bin"
alias composer='/opt/php70/bin/php -d memory_limit=500M ~/composer.phar'
alias drush='/opt/php70/bin/php ~/.config/composer/vendor/drush/drush/drush.php'
ЗЫ соответственно версия должна использоваться одинаковая. Пути смотрите на своем хостинге, в примере - timeweb.
Установка laravel на хостинг
Для запуска и нормального функционирования для Laravel необходим VPS, VDS или выделенный сервер.
Но тем не менее Laravel можно запустить и на обыкновенном хостинге.
Главное, чтобы хостинг поддерживал Apache как веб сервер и удовлетворял требуемым системным требованиям (такие как наличие php, mysql и тд).
- Для функционирования Laravel необходимо наличие пакетов в папке vendor. Для генерации пакетов необходим менеджер пакетов — composer. Вероятнее всего на хостинге composer будет отсутствовать и его запуск будет не возможен. Поэтому пакеты нужно будет загрузить локально.
- Загружаем Laravel вместе с vendor на хостинг (
обычно и чаще всего загрузка происходит с помощью ftp). - После загрузки в корне проекта необходимо создать файл .htaccess и разместить в нем код:
Готово. После выполнения вышеуказанных действий проект должен начать функционировать на хостинге.
Laravel — бесплатный PHP-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC ( M odel V iew C ontroller). В данной статье мы расскажем, как с лёгкостью установить данный фреймворк у нас на хостинге.
Алгоритм по установке Laravel
Шаг 1 После создания технического домена (для примера мы создали laravel-test.com), переходим в раздел Файловый менеджер через и создаём новый файл .bash_profile в корне аккаунта (hostXXXXXXX/.bash_profile), в который вставим директивы:
Если Вы планируете использовать другую версию php, полный список интерпретаторов приведен здесь — просто замените php-7.1 на любую другую из списка. Желательно использовать версию не ниже 7.1
После сохранения файла, переходим в раздел SSH и нажимаем Открыть SSH клиент (доступен только для оплаченных аккаунтов).
Шаг 2 Самый расппространённый способ установки Laravel — использование менеджера пакетов Composer. Мы им и воспользуемся:
Шаг 3 Только что мы установили Composer в корень своего аккаунта. Скачаем загрузчик Laravel:
Готово. Переходим в директорию нашего будущего проекта:
Шаг 4 Следующей командой создаём свежую установку Laravel в директории с произвольным именем (в дальнейшем, оно нам не понадобится):
Laravel подгрузил все необходимые зависимости.
Шаг 5 Для корректной работы сайта, необходимо создать копию файла .env.example (он находится в корне только что созданной директории project), переименовать его просто в .env и сгенерировать рандомный ключ. Это можно сделать командой:
Он будет автоматически добавлен в файл .env
Также в данном файле можно задать значения для используемой базы данных (DB_DATABASE, DB_USERNAME и DB_PASSWORD), но это можно сделать и после.
Шаг 6 Теперь, копируем все файлы из директории
/laravel-test.com/htdocs/project и переносим их в
/laravel-test.com/htdocs/www. Так как по умолчанию приложение использует папку /public, то и чтобы открыть главную страницу Вашего сайта, пользователям нужно будет пройти по ссылке вида site.com/public. Чтобы этого избежать, зададим правила в .htaccess файле, предварительно создав его в
На этом установка завершена. Если всё сделано верно, то при открытии главной страницы сайта, Вы увидите стартовую страницу:
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из раздел «Помощь и поддержка».
С недавних пор, сделал волевое решение расширить кругозор и потихоньку уйти от CMS Drupal 7/8 на PHP-фреймворк. Выбор пал на Laravel 5. В обнимку с Laracast, уже получилось разобраться и создать свой скромный демо-проектик на этом замечательном фреймворке.
И вот теперь появился вопрос: «Как установить мой проект на обычный shared хостинг Timeweb?». Возможно ли это? Есть ли все необходимые разрешения/модули/etc у этого хостинг-провайдера для Laravel 5 на обычном хостинге (вариант с переходом на VPS пока не рассматриваю).
Буду признателен за мануал, советы или готовый кейс по этому вопросу!
16 ответов
С Laravel 5 не сталкивался, однако вижу добротную инструкцию по установке на shared (т.е. виртуальном) хостинге, полагаю что вариант подойдет и на Timeweb:
https://medium.com/laravel-news/the-simple-guide-to-deploy-laravel-5-application-on-shared-hosting-1a8d0aee923e#.ln6zbkigm
Предлагаю попробовать проследовать той инструкции, которая по первой ссылке размещена.
А если будут сложности — пишите на каком этапе проблема, Vikky, попробуем вместе решить её.
Спасибо за ссылки. Более-менее стало ясно, что это возможно.
Только один вопрос: можно ли установить node.js (и в частности gulp), чтобы делать крутые штуки, как показано в одном из уроков Laracast (https://laracasts.com/series/laravel-5-from-scratch/episodes/6 )?
Я про консольную команду "gulp watch", например. Просто не понимаю как она будет работать? На локалке (использую OpenServer) — ясно, что пока запущена консоль с этой командой (при установленном node.js, конечно же), то любые изменения в app.scss будут автоматически компилированы gulp-ом в обычный CSS. Тоже самое не понимаю и про команду "php artisan serve" (запуск окружения Laravel и работы сайта) — как на хостинге запускать-то?
Насколько мне известно timeweb не поддерживает node.js на виртуальном хостинге, предлагают VDS или выделенный сервер
Если я все правильно понимаю, вы не должны на продакшене что-то компилировать Gulp.
По логике вещей, вы разрабатываете у себя на локальком компе, а уже все скомпилированные css и т.д. заливаете на хостинг(либо через FTP либо через сторонние приложения для деплоя).
Команда "php artisan serve" запускает встроенный веб сервер. Это тоже используется для локальной разработки, чтобы не надо было грубо говоря апач поднимать.
Читайте также: Скрипт доната для сайта
Касательно node через ssh npm работает, думаю и gulp тоже будет, но сам сервер вы не поднимите на простом хостинге, а без этого back-end на js не будет работать.
Если не прав, исправьте.
немного нытья про nodejs
https://staindb.pixarts.ru/node-js-na-timeweb-ru/
сервер поднять не удалось, но поставить, подгрузить модули через npm, вышло.
Привет, получилось установить ларавель на таймвеб? Не расскажешь, как сделал?
Многосайтовость на битиркс виртуальное окружение Bitrix 7.
Многосайтовость на битиркс виртуальное окружение Bitrix 7. Создаем несколько сайтов на одной лицензии битрикс, либо накатываем с виртуального или другого хостинга на битрикс виртуальное окружение ваших сайтов на битиркс.
Странно, что данный вопрос не полностью раскрыт в документации с статьях в интернете.
Подробная документация предоставляется разработчиками битрикс: https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=37
А также хостерами, например документация timeweb:
https://timeweb.com/ru/help/pages/viewpage.action?pageId=12878520
Если чтото не получается имеет смысл обратиться в службу тех поддержки вашего хостинга.
Например экспериментальным путем вместе с тех поддержкой хостинга удалось выяснилось, что для битрикс виртуальное окружение для стабильной рабты необходимо
Процессор
2 x 2.4+ ГГц
Оперативная память
1 ГБ .
На более младших тарифах тупо не не накатывалась база данных и все.
После установки средствами хостинга bitrix 7, вы можете установить чистый битрикс, либо восстановиться из резервной копиии (что проще сделать с использованием резерва в облачном хранилище).
Установленный битрикс, или накатанный становится сайтом по умолчанию в виртуальном окружении, и запускается при указании ip вашего VDS.
Можете поставить еще несколько копий битрикса kerenel. Либо в рамках многосайтовости link.
Если на этом этапе возникают проблемы, то необходимо обратиться в техподдержку хостинга, ибо возможно у них пробелмы с железом.
Примечание: когда накатываете битрикс из резерва, помните, что сам резерв должен быть создан только для основного сайта. Если вы укажете при резервировании другие сайты из многосайтовости, то встанет на виртуальное окружение первый (а он может оказаться не основным), соотвественно ничего не будет работать.
изменений в настрой
После установки основного сайта, вы можете средствами bitrix 7 (см. документацию) создать еще сколько угодно сайтов, указав на первом втором шаге соотвествующие домены, а на третьем папку с основным сайтом /home/bitrix/www . В момент создания сайта автоматически создадутся символические ссылки на папки bitrix, upload, images.
При создании нового сайта будет создана папка /home/bitrix/ext_www/ВАШ_ДОМЕН . В эту папку можете закопировать с заменой все файлы с вашего хостинга для соотвествующего сайта, за исключением конечно файла .htaccess и символических ссылок.
Примечание:
У меня сайты не работали до перезагрузки виртуальной машины. Плюс сайты создаются не сразу, им нужно некоторое время.
Настройка https
После создания сайтов вам нужно установить протокол SSL, для того чтобы на вас не ругались браузеры при открытии ваших сайтов по https.
Бесплатный SSL-сертификат можно выпустить и установить, подключившись к серверу по SSH. Инструкции по выпуску и установке для Bitrix 7:
https://timeweb.com/ru/help/pages/viewpage.action?pageId=11337755
https://timeweb.com/ru/help/pages/viewpage.action?pageId=11337858
Проще и безопаснее всего использовать средства самого виртуального окружения.
При установке протоколов опять же могут возникнуть проблемы с нехваткой оперативной памяти, а так все должно работать четко, протокол через некоторое время вставнет.
Примечание: предварительно не забудьте добавить домены сюда https://vds.timeweb.ru/domains.
Также я бы рекомендовал перед накатываем битиркса укзать здесь основной домен, он подцепится автоматически.
Примечание: Например у меня возникли проблемы, протокол не вставал без объяснения причин, а сервер выдавал ошибки в области остлеживания фоновых операций виртуального окружения. Тех поддержка ответила примерно следующее: "На сервере проблема со свободной ОЗУ из за этого часто возникали проблемы в работе служб. Если на другом сервере с этим все в порядке, то беспокоится не о чем". Поэтому необходима либо оптимизация работы оперативной памяти либо ее увеличение.
Внесение изменений в настройки использования оперативной памяти
Изучение этой статьи https://serveradmin.ru/bitrixenv-optimizacziya-nastroek-servera-pod-sajt-na-bitrix/ натолкнуло на следующую идею:
После того как я выставил в файле /etc/nginx/bx/conf/push-im_settings.conf параметр
push_stream_shared_memory_size 128M;
вместо дефолтного 256M все залетало... Видимо для дефолтного bitrix7 необходимо еще больше оперативы, минимум 2Гб.
Вообще после изменения этого параметра, странички стали грузиться без преувеличения раз 5 быстрее на всех сайтах установленных в системе (18 штук).
Примечание: На любом шаге может все поломаться, поэтому не забывайте делать резервные копии, чтобы откатиться иметь возможность в любой момент.
OctoberCMS на русском — Установка OctoberCMS
- Главная
- /
- Документация
- /
- Установка OctoberCMS
Существует два способа установки OctoberCMS: при помощи Мастера установки и Командной строки. Перед установкой необходимо убедиться, что Ваш сервер удовлетворяет минимальным системным требованиям.
Минимальные системные требования
- PHP version 5.5.9 или выше
- PDO PHP Extension
- cURL PHP Extension
- OpenSSL PHP Extension
- Mbstring PHP Library
- ZipArchive PHP Library
- GD PHP Library
Для некоторых операционных систем требуются ручная установка PHP JSON extension (Ubuntu apt-get install php5-json
).
Если Вы используете SQL Server, то Вам потребуется установить group concatenation.
Мастер установки
Рекомендуется использовать Мастер установки для установки OctoberCMS. Он проще, чем командная строка и не требует специальных знаний.
- Подготовьте пустую папку на вашем сервере.
- Скачайте архив с файлами для установки.
- Распакуйте содержимое архива.
- Предоставьте права на запись в папку с файлами и ее подпапками.
- Перейдите по адресу http://ВАШДОМЕН.ru/install.php
- Следуйте инструкциям.
Устранение неполадок
500 ошибка: Увеличьте значение timeout limit на вашем сервере.
Пустая страница: Проверьте версию PHP. Проверьте права на файлы и папки.
liveConnection: Убедитесь, что ваш веб-сервер может создавать исходящие соединения через порт 80. Обратитесь к своему хостинг-провайдеру. Часто проблема заключается в настройках брандмауэра сервера.
Syntax error or access violation: 1067 Invalid default value for ...: Проверьте файл с настройками MySQL. Параметр «NO_ZERO_DATE» должен быть отключен.
Примечание: подробный лог установки можно найти в install_files / install.log файла.
Установка из Командной строки
Процесс установки OctoberCMS при помощи командной строки описан в разделе Интерфейс командной строки.
Что нужно сделать после установки
После завершения установки Вам необходимо сделать следующее:
Удалить установочные файлы
Если Вы использовали Мастер установки, то Вы должны вручную удалить следующие файлы (по соображениям безопасности):
install_files/ <== Каталог установки
install.php <== Файл установки
Проверить конфигурации
Файлы с конфигурациями приложения хранятся в каталоге config. Все файлы содержат описания для каждого параметра. Важно ознакомиться с ними, чтобы настроить приложение под ваши нужды.
Например, на рабочем сервере Вы, возможно, захотите включить защиту от CSRF. В то время как на локальном - Последние обновления.
Мы настоятельно рекомендуем отключить режим отладки для опубликованных проектов.
Настроить работу планировщика
Для корректной работы планировщика Вы должны добавить следующую запись Cron на свой сервер. Редактирование crontab обычно выполняется при помощи команды crontab -e
.
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
Обязательно замените /path/to/artisan на абсолютный путь к файлу artisan, который лежит в корне Вашего приложения.
Примечание: Если Вы добавляете эту команду в /etc/cron.d
, то обязательно укажите пользователя сразу после * * * * *
.
Настроить работу очередей
Вы можете настроить очередь для обработки задач. По умолчанию они будут обрабатываться платформой асинхронно. Это поведение можно изменить, установив параметр default
в config/queue.php
.
Если Вы решите использовать драйвер очереди бд, то рекомендуется добавить запись Crontab: php artisan queue: work
, для обработки первого доступного задания в очереди.
Please enable JavaScript to view the comments powered by Disqus.
phpstan-enum / composer.json на master · timeweb / phpstan-enum · GitHub
phpstan-enum / composer.json на master · timeweb / phpstan-enum · GitHub
Постоянная ссылка
В настоящее время невозможно получить участников
35 строк (35 слотов)
781 байт
{ «имя»: «timeweb / phpstan-enum», "описание": "Расширение отражения класса Enum для PHPStan", "тип": "расширение phpstan", "ключевые слова": ["перечисление", "phpstan"], «лицензия»: «МИТ», «требуется»: { «php»: «~ 7.9.0 " }, «автозагрузка»: { "пср-4": { "Timeweb \\ PHPStan \\": "src /" } }, "autoload-dev": { "пср-4": { "Timeweb \\ Tests \\ PHPStan \\": "tests /" } }, «скриптов»: { "тест": "phpunit" }, "дополнительно": { «phpstan»: { "включает": [ "расширение.неон " ] } } }
Вы не можете выполнить это действие в настоящее время.
Вы вошли в систему с другой вкладкой или окном. Перезагрузите, чтобы обновить сеанс.
Вы вышли из системы на другой вкладке или в другом окне.Перезагрузите, чтобы обновить сеанс.
php - разница между NPM, Composer и Bower в Laravel?
Прежде всего, краткое объяснение трех менеджеров зависимостей.
Композитор
Composer - это инструмент для управления зависимостями PHP . Он использует Packagist для получения информации о зависимостях и их правильной установки.
НПМ
NPM является частью экосистемы Node и изначально был создан для управления зависимостями для Node.js-приложений. Однако по мере того, как Node становился все более популярным, люди начали использовать NPM не только для модулей Node.js. Теперь это квазистандарт для управления зависимостями JavaScript .
Беседка
Подобно NPM, Bower управляет зависимостями JavaScript . Однако Bower был создан для отделения пакетов для фронтенд-разработки (таких как Bootstrap, jQuery, ...) от всей экосистемы модулей Node, а также для предложения менеджера пакетов для CSS. Он предлагает / предлагает некоторые функции, которые NPM не предоставляет или не предоставляет.
Подведем итог: Composer предназначен для пакетов PHP, NPM и Bower для пакетов JavaScript.
Я почти уверен, что нет пакетов, доступных как для Composer, так и для NPM, поскольку они ориентированы на два очень разных языка программирования. Однако Bower можно заменить на NPM и наоборот. С моей точки зрения, Bower отчасти устарел, поскольку есть некоторые другие инструменты, которые намного более продвинуты, и большинство проектов просто используют NPM для управления зависимостями.
Давайте продолжим ваши вопросы.
, как app.js узнает, что я ссылаюсь на папки в папке node_modules, и как app.css узнает, что я ссылаюсь на Bootstrap, просто используя ~?
Это не сам файл, который знает, что тильда ( ~
) является синонимом каталога node_modules
. Это компилятор [1] знает, что он должен искать пакет в каталоге, где упоминается тильда.
Обратите внимание, что синоним тильды> node_modules - это концепция для разработки CSS, а не для JavaScript.
Почему мне не нужно указывать абсолютные пути?
Можно. Вы также можете использовать относительные пути. Или тильда. На самом деле это не имеет никакого значения. Это просто зависит от используемого вами компилятора.
- это общее эмпирическое правило, что элементы, связанные с JavaScript, обычно поступают из npm, а зависимости PHP - от композитора?
Не эмпирическое правило, это необходимо. Вы не найдете модули PHP через NPM и наоборот.
Моя путаница возникла из-за того, что я смотрел на пакет под названием Laravel Full Calendar, и его стиль и код JS, похоже, извлекаются через npm, но его зависимые части PHP извлекаются из Composer?
Совершенно разумно. Если у вас есть пакет Laravel, который добавляет поддержку Fullcalendar в ваше приложение, я бы создал пакет PHP, независимый от пакета NPM. Пакет PHP создает HTML, а пакет NPM просто обслуживает CSS и JavaScript.
Я бы не назвал это нормальным поведением , но, как я уже сказал, вполне разумным.
Надеюсь, я ответил на ваши вопросы так, как вы понимаете вопрос. И я согласен с тем, что всю эту концепцию управления зависимостями и различий не так-то просто понять. Если у вас есть другие вопросы, просто оставьте комментарий.
[1] Компилятор> Может быть любым модулем, конвертирующим app.scss в app.css. Пример - node-sass.
Мелисса Данфи - композитор, Mormolyke Press
2014-настоящее время Певец / Электромандолист, Up Your Cherry Филадельфия, Пенсильвания 2014-настоящее время Директор музыкальной композиции, альтист, Национальная кукольная конференция О'Нила Уотерфорд, Коннектикут 2017-настоящее время Electric Mandola, вокал, Applied Mechanic's The Bandits Филадельфия, Пенсильвания 2018 Solo Violist, Diner en Blanc Филадельфия, Пенсильвания Соло-альтист, Вовлечение цветных мужчин , Искусство от первого лица Филадельфия, Пенсильвания 2017 Соло-альтист, Установление рекорда: Commonspace Live , Искусство от первого лица Филадельфия, Пенсильвания Композитор / исполнитель, Школа чугуна CATAPULT: New Works Филадельфия, Пенсильвания 2016 Вокалист, Unsung , Mural Arts Philadelphia Филадельфия, Пенсильвания 2015 Альт с усилением для соло, ANDY: A Popera , Opera Philadelphia Филадельфия, Пенсильвания 2013-2015 Альтист, Симфонический оркестр Пенсильванского университета Филадельфия, Пенсильвания 2014 Альтист / вокалист, Mirroring Sky, InVersion Theater Филадельфия, Пенсильвания 2011 Композитор / исполнитель (мандолина), Смерть для Сидни Блэка , Luna Theater Филадельфия, Пенсильвания Композитор / исполнитель, Национальная кукольная конференция О'Нила Уотерфорд, штат Коннектикут 2010 Композитор / звукорежиссер, Zacherle: A Prelude to the Last Mummer , Philadelphia Fringe Festival Филадельфия, Пенсильвания Певец / мандолист, веб-серия Mandolin Request Time Филадельфия, Пенсильвания Композитор / исполнитель, Национальная кукольная конференция О'Нила Уотерфорд, Коннектикут Солист-виолончелист, Театральный центр О'Нила, Летний гала-концерт 2010: Празднование американского кукольного театра Уотерфорд, Коннектикут Скрипач (солистка альта), Много шума из ничего , Театр Горизонт Филадельфия, Пенсильвания Виолончелист, Мелодия Трио Филадельфия, Пенсильвания Солист виолончели, Дыхание жизни Музыкальное сопровождение, Театральная труппа Фонаря Филадельфия, Пенсильвания 2009 Дирижер, Кантата Гонсалеса, Филадельфийский фестиваль Fringe Филадельфия, Пенсильвания Солист виолончели, «Ночь Гершвина», Village Productions Поттстаун, Пенсильвания Композитор / исполнитель, Камерный Шекспир: Макбет, Филадельфийский Шекспировский театр Филадельфия, Пенсильвания Виолончелист, Симфонический оркестр Вест-Честерского университета West Chester, PA 2008 Музыкальный капитан Шекспировского фестиваля в Филадельфии Филадельфия, Пенсильвания Виолончелист, Симфонический оркестр Вест-Честерского университета West Chester, PA 2007 Виолончелист, Симфонический оркестр Университета Вест-Честера, Камерный ансамбль, Струнный квартет Le Chat Noir West Chester, PA Музыкальный руководитель, Год с лягушкой и жабой , Gamut Theater Harrisburg, PA 2006 Сочинено / записано The Frail Variations West Chester, PA Виолончелист, Симфонический оркестр Университета Вест-Честера, Камерный ансамбль, Квартет West Chester, PA Соло-сопрано и то, что там нашла Алиса... Музыка Росс Кэр Harrisburg, PA Музыкальный руководитель, Стеклянный зверинец , Театр Гамут Harrisburg, PA Музыкальный руководитель / Птица / Мышь / Белка / Крот, Год с лягушкой и жабой , Театр Гамут Harrisburg, PA 2005 Tears for Agnes Shui (вокал, альт, фортепиано, пятиструнная скрипка) Harrisburg, PA Музыкальный руководитель, Стеклянный зверинец , Театр Гамут Harrisburg, PA 2004 Электрический скрипач, Second Sky Ланкастер, Пенсильвания Музыкальный руководитель, Сон в летнюю ночь , Шекспировский фестиваль в Гаррисбурге Harrisburg, PA 2003 Синтезатор / вокалист, Dead Inside the Chrysalis
(группа Cyberpunk Electroclash), появляющийся в клипе фильма 'The Invisible' Сидней, Австралия 2002 Синтезатор / вокалист, Dead Inside the Chrysalis Сидней, Австралия Альтист / электрический скрипач, The Monstars (альт-рок-группа) Сидней, Австралия 2001 Альтист, Акрадиа (Альт-рок) Сидней, Австралия Финалист
, поиск репортера канала [V]
В течение трех недель выступал на ведущем музыкальном телеканале Австралии, транслировал музыкальные видеоклипы
и брал интервью у таких международных исполнителей, как A Perfect Circle. Сидней, Австралия 1999 Альтист / клавишник, Hover (альтернативная рок-группа) Сидней, Австралия 1998 Главный альтист, Сиднейский молодежный оркестр Сидней, Австралия Альт, Тута Рунас (южноамериканский фольклорный ансамбль), выступление на музыкальном фестивале в Ньютауне Сидней, Австралия Театральное общество Университета Нового Южного Уэльса:
• Миссис Петерсон, До свидания, Берди
• Музыкант, Незаконченная песня Сидней, Австралия 1997 Музыкант, Линней, Принц цветов ,
Театр растений, выступление в Сиднейском ботаническом саду Сидней, Австралия Альт, Международный тур Сиднейского молодежного оркестра Западное побережье США Альт, Международный тур Молодежного симфонического оркестра Квинсленда Япония / Корея 1996 Колдунья, Дидона и Эней , Сомервильский дом Брисбен, Австралия Принят в лирическую оперу Детского хора Квинсленда Брисбен, Австралия
Открытие вакансии разработчика веб-приложений - полный рабочий день
Мы ищем разработчика веб-приложений, работающего полный рабочий день, который присоединился бы к нашей команде.
Мы - группа целеустремленных дизайнеров и разработчиков, ориентированных на качество, работающих над успешными проектами в различных отраслях и для крупных и малых клиентов.
Что вы здесь сделаете:
- Будьте активным членом нашей внутренней команды разработчиков, чтобы разрабатывать и улучшать функции для новых и существующих клиентских приложений с использованием JavaScript и PHP
- Проектирование реляционной базы данных и других структур данных
- Напишите промежуточное программное обеспечение для сторонних сервисов
- Помогите с оценкой и проектными предложениями, напишите спецификации проекта и встретитесь с текущими и потенциальными клиентами по мере необходимости
- Участвуйте в написании историй и встречах по планированию спринтов с клиентами
- Поддерживайте унаследованные веб-приложения и создавайте наборы для тестирования
Требования к техническому опыту:
- Знание Laravel
- Опыт написания и документирования API
- Опыт работы с Git и GitFlow для DevOps
- Знание общих команд терминала
- Желательно возможность разработки с использованием среды разработки на базе macOS
- Пишущий блок t тесты и разработка с мышлением разработки, ориентированной на тестирование
- Владение современным JavaScript в React, Vue или Angular
- Знание лучших практик безопасности веб-приложений
- Способность писать оптимизированные сложные запросы SQL
- Дополнительный кредит:
- Опыт использования GoF шаблоны проектирования;
- Опыт работы с Symfony;
- Разработка приложений с использованием Ionic Framework;
- Любой опыт работы с современным JavaScript (ES6, TypeScript), менеджерами пакетов (Composer, npm, Yarn) и инструментами сборки (Webpack, gulp)
Другие вещи, которые мы ищем в кандидате:
- Способность работать в гибкой среде разработки
- Сосредоточение внимания на работе с вниманием к бескомпромиссному качеству и вниманию к деталям
- Соответствующая степень младшего специалиста или эквивалентный опыт
- Способность работать в команде и индивидуально
- Отличные устные и письменные коммуникативные навыки
- Требуются сильные организаторские навыки
- Способность работать напрямую с клиентами, чтобы определять масштаб проекта и находить с ними решения
Что мы предлагаем:
Это штатная должность со страховкой здоровья, стоматологии и зрения, 401 (K ) с совпадением с работодателем, оплачиваемым отпуском и оплачиваемым отпуском.Мы предлагаем конкурентоспособную оплату труда, непринужденную рабочую среду, регулярные обеды, оплачиваемые компанией, и гибкий график.
Это не внештатная должность. Из-за COVID-19 эта должность будет работать удаленно до 2021 года, когда наши офисы снова откроются. В то время предпочтительнее периодически работать из нашего офиса в Элизабеттауне, штат Пенсильвания.
Пожалуйста, отправьте резюме, ссылки и два-четыре примера кода по адресу [email protected]. Пожалуйста, никаких телефонных звонков и прохожих.
Готовы присоединиться к нашей команде?
Веб-разработчик, неполный рабочий день
Должность: Веб-разработчик, неполный рабочий день
Профиль компании
Trimark Properties - это девелоперская и управляющая компания из Гейнсвилла, специализирующаяся на элитном жилье, офисах, ресторанах, исследованиях, розничной торговле и других нишевых разработках рядом с Университетом Флориды.Компания Trimark была основана в 1992 году и демонстрирует устойчивый рост благодаря пониманию нашего рынка, реализации отмеченных наградами проектов, поддержке и постоянному совершенствованию нашего портфолио. Мы обеспечиваем уникальный командный подход ко всем аспектам управления недвижимостью и бизнесом, предоставляем высококачественные продукты, услуги и продажи. Мы верим в «Местоположение, Местоположение, Местоположение».
Наши сообщества находятся в нескольких шагах от UF, Мидтаун и Инновационного района Гейнсвилла и медицинских учреждений UF Health (Shands).
Резюме / цель:
Trimark Properties ищет Front-end и Back-end веб-разработчика, чтобы присоединиться к нашей компании. Веб-разработчик будет работать со старшим веб-разработчиком Trimark для выполнения всех веб-проектов, включая:
- Front-end веб-разработка
- Внутренняя веб-разработка
- Разработка пользовательских веб-приложений с использованием Laravel, VueJS и TailWindCSS
Правильный заявитель будет доступен 2-3 дня в неделю с 9:00 до 17:00 по восточному поясному времени с понедельника по пятницу.Этот график позволит веб-разработчику работать с удаленным старшим веб-разработчиком, который будет обеспечивать руководство и наставничество по открытым проектам. Правильный кандидат должен иметь как минимум 2 года проверяемого опыта работы с веб-интерфейсом, серверной частью и пользовательскими веб-приложениями. Он / она будет уделять большое внимание деталям и получать удовольствие от написания чистого, легко читаемого кода. Мы ищем людей, которые испытывают чувство выполненного долга и хотят танцевать весело, когда они создают красивый
новая адаптивная веб-страница или добавьте функциональность в наши пользовательские веб-приложения.Если это вы, мы хотим нанять вас как можно скорее.
Основные функции:
- Желательно иметь опыт совместной работы в небольших группах.
- Желательно иметь опыт управления и разработки пользовательских веб-приложений от 2 лет.
- Опыт работы с устаревшими приложениями, предпочтительно с устаревшими приложениями PHP.
- Желательно иметь опыт работы с современной интерфейсной структурой (React, VueJs, Angular и т. Д.).
- Опыт работы с PHP-фреймворками, такими как Symfony, Laravel и т. Д.
- Знание принципов ООП.
Требуемые навыки / квалификация:
- Более 2 лет проверенного опыта как во внешнем, так и во внутреннем веб-дизайне / разработке, а также в работе с пользовательскими веб-приложениями.
- Диплом в области компьютерных наук, компьютерного программирования, компьютерной инженерии или эквивалентный.
- Требования к внутреннему опыту: PHP (предпочтительно Laravel), MySQL.
- Front-end: должен обладать хорошими навыками дизайна, владеть HTML, CSS, Javascript / jQuery, Bootstrap, UI / UX и TailwindCSS.
- Пользовательское веб-приложение: практическое знание фреймворков MVC, JavaScript, jQuery, VueJs, PHP, My SQL, Laravel, композитора, WAMP, MAMP, Docker.
- Опыт работы с контролем версий / GIT.
- Высокая мотивация и способность быстро осваивать новые технологии.
- Способен адаптироваться к устаревшим технологиям по мере их появления.
- Гибкое отношение; легко работать.
- Задокументируйте действия по устранению неполадок при возникновении новых, необнаруженных проблем.
- При необходимости обновите текущие документы среды.
- Сильные навыки письменного и устного общения на английском языке.
- Должен пройти тест на кодирование в рамках собеседования.
Кандидаты должны пройти проверку биографических данных и тест на наркотики.
Trimark - работодатель с равными возможностями и рабочее место без наркотиков
Статус:
Приглашаем на работу.Пожалуйста, заполните предварительную заявку, чтобы начать.
Подать заявку:
Пожалуйста, заполните предварительную заявку, нажав здесь. Это займет всего 5 минут!
Предварительное приложение
Веб-разработчик, работающий полный рабочий день - Idealist
Хотите использовать свои навыки веб-разработчика, чтобы служить движениям за социальную справедливость, влияние на общество и позитивные изменения? Вы заинтересованы в том, чтобы ваша следующая работа способствовала созданию более справедливого мира?
Наша команда считает, что для того, чтобы быть хорошими предками, мы должны сосредоточить нашу работу на продвижении справедливости.Мы стремимся к беспорядку, оставляем место для необходимых разговоров и экспериментируем вместе. Мы делаем это, коллективно признавая и уважая нашу взаимозависимость, чтобы мы могли совместно разрабатывать и внедрять практики и системы, которые являются антирасистскими и создают общность для всех нас. Приглашаем вас пересмотреть наши ценности.
rootid ищет кого-нибудь с опытом работы с WordPress и Drupal, чтобы помочь в предоставлении услуг коммуникационной стратегии некоммерческим партнерам. Если вам нравится разбираться в компонентном подходе к разработке и у вас есть коучинговое мышление при работе с клиентами, мы будем рады услышать от вас.
С 2011 года наша команда установила партнерские отношения с более чем 400 некоммерческими организациями и организациями, оказывающими социальное влияние, через прямые агентские услуги и партнерские отношения с общественным образованием. Наш совместный подход ведет к росту, и теперь rootid расширяет нашу команду, услуги агентств и образовательные продукты, чтобы обслуживать больше некоммерческих организаций различными способами.
Присоединяйтесь к нашей команде дизайнеров, разработчиков и преподавателей из 6+ человек, которые обладают разнообразным жизненным опытом и включают активистов, художников, авторов, творцов, любителей природы и музыкантов.
Вы:
- Тот, кто бросает вызов укоренившейся динамике власти и уважает все голоса
- Тот, кто считает, что бренд и коммуникационная стратегия являются инструментами социальных изменений
- Человек придерживается принципов Design Justice Network
- Кто-то кто преуспевает в проектах и программах взаимодействия с общественностью
- Тот, кто хочет внести большой вклад на местном, национальном и глобальном уровнях, чтобы помочь в развитии следующего поколения педагогов, активистов, лиц, вносящих изменения, социальных предпринимателей и технологов
- Тот, кто жаждет узнать больше уточнить и продвинуть свое собственное мышление и / или шаблоны
Некоторые из того, что вы будете делать:
Могут быть внесены изменения, позволяющие людям с ограниченными возможностями выполнять основные функции.
- Создание и поддержка сайтов WordPress и Drupal с использованием нашего документированного компонентного подхода.
- Разработка пользовательского интерфейса и слоя темы.
- Разработка пользовательских модулей, разработка пользовательских плагинов и поддержка существующего пользовательского кода.
- Документирование кода и процессов, а также участие в экспертных обзорах.
- Регулярная работа с git для фиксации кода.
- Участие во встречах с клиентами и семинарах.
- Активно способствует постоянному совершенствованию наших процессов и продукции.
- Сопровождение при оценке проектов.
- Прямой разговор с клиентами об их технических проблемах и бизнес-потребностях, а также документирование их требований.
- Сотрудничайте с дизайнерами, разработчиками, специалистами по цифровым технологиям и производственными специалистами, чтобы разработать план результатов.
- Заблаговременно распознавайте и оценивайте потребности партнеров и групп некоммерческого сообщества и готовьте потенциальные решения для удовлетворения этих потребностей. При необходимости ведите документацию и внедрение решений.
- Отвечая на технические вопросы других членов команды.
- Самое главное, получать удовольствие от работы с невероятной командой!
Технические знания:
- Хорошее знание веб-стандартов, удобства использования и доступности.
- Настоятельно рекомендуется опыт использования как WordPress, так и Drupal.
- Сильная команда SASS и Bootstrap (или других фреймворков CSS).
- Опыт использования Git, Gulp, Composer и других менеджеров пакетов.
- Опыт использования Twig - это хорошо, но не обязательно.
- Комфортное использование инструментов командной строки, таких как WPCLI, drush и т. Д., Бонус, но не обязательно.
- Опыт пользовательского тестирования и обеспечения качества.
- Компетенции в Google Документах.
Основные компетенции:
- Продемонстрированная способность стратегически и вдумчиво управлять сложными проектами для достижения результатов, которые удовлетворяют разнообразные потребности различных заинтересованных сторон.
- Способность действовать самостоятельно и проявлять инициативу, работая независимо и коллективно в команде.
- Приверженность нашим общим основным ценностям.
- Вклад и поддержка культуры обучения, обмена, экспериментов и обратной связи.
- Способность обращать внимание на детали и нюансы, сохраняя при этом видение картины в целом.
- Многоязычный a plus
Физические потребности:
Выполняя свои обязанности, сотрудник должен регулярно говорить и слышать.Специфические способности зрения, необходимые для этой работы, включают близкое зрение, зрение вдаль, цветовое зрение, периферическое зрение, восприятие глубины и способность регулировать фокус.
Тип должности / ожидаемые часы работы:
Допускается некоторая гибкость в часах, но сотрудник должен быть доступен в «основные» часы работы с 10:00 до 15:00. PST и должны работать 35 часов в неделю, чтобы поддерживать статус постоянной.
Это договор о найме на работу.
Опыт, который вы принесете:
- Интерес и участие в прогрессивных социальных изменениях
- Более 3 лет опыта работы в качестве разработчика веб-сайтов (контракт или штат).
- Опыт работы с PHP и Javascript (включая React).
- Страсть к веб-разработке и разработке с открытым исходным кодом.
- Инклюзивные, поддерживающие и продуманные навыки межличностного общения.
- Опыт работы с современными инструментами и методами разработки, такими как атомарный и адаптивный дизайн, gitflow, среды на основе контейнеров, средства выполнения задач, препроцессоры CSS, IDE и платформы CI / CD
- Продемонстрированная способность отслеживать и управлять несколькими приоритетами одновременно.
Льготы:
- Медицинская страховка - до 375 долларов США в месяц.
- Удаленный полный рабочий день
- Стипендия за совместную работу в размере 200 долларов в месяц
- Возможности непрерывного образования и обучения - 750 долларов в год
- 2-недельный отпуск по болезни
- 15 оплачиваемых ежегодных отпусков
- 2-недельный отпуск, начиная с 3 недель с течением времени
- Оплачиваемый отпуск по семейным обстоятельствам и отпуск по болезни
- 401k и работодатель 3% совпадают после 1 года работы
- Заработная плата - 65 000–75 000 долларов в зависимости от опыта
Присоединяйтесь к нам и станьте частью социального воздействия через трансформацию бренда и наращивание коммуникационного потенциала по мере того, как мы работаем над объединением людей, идей и ресурсов, над созданием агентств и коммуникационного потенциала в некоммерческом секторе - совместно планируя изменения, которые мы хотим видеть.
Инструкции по подаче заявки:
Отправьте заявку на [email protected] , указав в строке темы: «Заявление: веб-разработчик, работающий полный рабочий день, ПОЛНОЕ ИМЯ» и сообщите нам немного о себе. Будут рассмотрены только заявки с краткими сопроводительными письмами или видео / аудио сообщениями, резюме и образцами проектов (пожалуйста, укажите URL-адреса 2-3 действующих проектов с одним или двумя предложениями, описывающими вашу роль). Мы будем принимать заявки на постоянной основе - первая дата рассмотрения - 19 апреля.
rootid является работодателем с равными возможностями и приветствует всех в нашей команде. Мы настоятельно рекомендуем темнокожим, коренным народам, цветным людям, LGBTQIA ++, женщинам, гендерно неконформным и небинарным, лицам с ограниченными возможностями, ветеранам и родителям подавать заявки. rootid также рассмотрит квалифицированных кандидатов с криминальным прошлым в соответствии с требованиями Постановления о справедливых шансах Сан-Франциско.
** Часто цитируемые статистические данные показывают, что женщины, трансгендеры и небинарные люди, а также другие структурно маргинализированные группы претендуют на рабочие места только в том случае, если они соответствуют 100% квалификации.rootid рекомендует вам изменить эту статистику и подать заявку. **
Если вам понадобится жилье на любом этапе процесса подачи заявки или собеседования, сообщите нам об этом.
Гиперкомпозитор
Люди не всегда понимают музыкальные технологии Тода Мачовера - японская аудитория думала, что его «звуковая перчатка» скрывает ампутированную руку. Но он использует технологии только для того, чтобы забыть об этом, - говорит он Арминте Уоллес , а его игрушечная симфония посвящена тому, чтобы привнести детей в сердце музыки.
Через тридцать секунд после интервью по видеосвязи с композитором Тодом Мачовером я сталкиваюсь с неприемлемым лицом технологии: моим собственным. По другую сторону Атлантики Мачовер ведет себя расслабленно и непринужденно, как если бы он болтал с кем-то на софе рядом с ним. В трех футах от вас огромный взорвавшийся ваш действительно взор в поту смотрит в киберпространство. Зрелище, мягко говоря, не из приятных.
К счастью, проект, который привел меня в прекрасно отреставрированное здание Media Lab Europe в Guinness Hop Store в Dublin's Liberties, представляет собой обратную сторону медали высоких технологий.Подобно музыкальному волшебнику, «Игрушечная симфония» Мачовера нацелена на то, чтобы увлечь детей и поместить их в самое сердце музыкального опыта; волшебным образом они обнаруживают, что сотрудничают с Национальным симфоническим оркестром и суперзвездой скрипачом Джошуа Беллом, исполняя как заранее сочиненную музыку, так и пьесу, которую они написали сами.
Вот где появляется технология. Мачовер и его команда высокотехнологичных специалистов из MIT Media Lab в Бостоне разработали специальные «гипер-инструменты», которые избавляют от многолетних масштабов, соло и борьбы с аппликатурой.В течение последних шести месяцев под руководством специалиста по музыкальному образованию Кевина Дженнингса и совместно с Культурным центром Ark ирландские дети изучали возможности этих инструментов, готовясь к мировой премьере 9 апреля и устраивая музыкальный бал.
На видеоэкране анимированный Machover объясняет, как это произошло. «Это кажется настоящим парадоксом, - говорит он, - что вокруг нас постоянно появляется все больше и больше музыки, будь то в лифте, когда вы едите или едете за рулем - я недавно был в Хьюстоне (Техас), и там играет музыку. по улицам в центре города, так что весь город звучит, что довольно странно - но у меня определенно возникает ощущение, что чем больше музыки вокруг нас, тем больше музыка обесценивается.Чем больше музыки в окружающей среде, тем менее внимательно мы ее слушаем ».
В то же время все меньше и меньше людей учатся игре на музыкальных инструментах. «Когда я начал искать уроки музыки для своей старшей дочери, я понял, как трудно найти чудесные переживания в музыке, чтобы начать с них детей», - говорит Мачовер, чей первый учитель дома в Нью-Йорке - его мать - поощряла ее ученики, чтобы делать инструменты из самых разных кусочков дома.«Раннее музыкальное образование имеет тенденцию быть очень консервативным, с использованием народных мелодий и« классических »ритмов. Сравните это с дошкольным учреждением и его столами, выложенными разными предметами, которые можно потрогать, приклеить и приклеить. У вас нет того, что вам нужно подражать , но набор материалов организован таким образом, чтобы вы могли их исследовать - и у детей есть огромная свобода решать, чем они хотят заниматься ».
Enter Beatbugs, восемь объединенных в сеть ударных инструментов, которые воспроизводят ритмические паттерны и преобразуют их высоту и тембр, и Shapers, красочные шары, которые при сжатии воспроизводят формулы нот со звуками синтезатора.
Еще есть Hyperscore, сложное программное обеспечение, которое позволяет детям рисовать музыкальное произведение на экране, а затем развивать, модулировать и гармонизировать его. Это может быть похоже на игру, но в отличие от обычных уроков музыки, которые часто зацикливаются на визуальном барьере в виде ряда нот на странице, они призваны побудить детей внимательно и критически прислушиваться к звукам, которые они производят.
Он также очень сильно сосредоточен на конечном продукте: концерте на следующей неделе с NSO и Джошуа Беллом под управлением Герхарда Марксона.Помимо самой Toy Symphony, в программе будут представлены Sparkler Мачовера для оркестра и интерактивной компьютерной электроники; Gil Weinberg's Nerve для шестерых детей и двух перкуссионистов Beatbug; "Натуральная сюита" Жан-Паскаля Бейнтуса для оркестра; четверо детей на Shapers, сочинение для струнного оркестра, написанное на Hyperscore; а также "гиперсвиолиная" транскрипция Каприса № 24 Паганини в исполнении Джошуа Белла.
Звучит эклектично? Не по меркам Мачовера.Его музыкальное творчество варьируется от «Флоры», пятиминутной пьесы для компьютерной ленты, основанной на текстуре и эмоциях голоса сопрано, до «Валис», оперной постановки научно-фантастического романа Филипа К. Дика.
Премьера 1996 года его Brain Opera - своего рода цифровая страна чудес, сделанная своими руками, в которой публика входила в «лес разума» и играла с «мольбертом для мелодий» и «сенсорным креслом» - включала «Интернет-соло» с живой обратной связью от Интернет-аудитория в реальном времени.В результате, по словам одного рецензента, получилась «стилизация в стиле Чарльза Айвза с узнаваемыми чертами The Beatles, Стравинского и Монаха». Диковинный материал для композитора, который учился в Джульярдской школе у Эллиота Картера, затем работал с Пьером Булезом в Париже; но музыкальные вкусы Мачовера варьируются от Шенберга до рока, джаза и блюза.
«Я начинал как классический музыкант и относительно мало интересовался популярной музыкой», - говорит он.«Я виолончелист, поэтому я вырос, играя камерную музыку. Но мои родители очень интересовались экспериментальной музыкой, поэтому, помимо традиционного классического репертуара, я ходил на множество концертов Джона Кейджа и ему подобных. Затем Сержант Вышел альбом Pepper. Я был как раз в подходящем возрасте, и я сходил с ума по нему - и это была первая большая ссора, которая у меня была с моей мамой, потому что она действительно этого совсем не понимала ». В старшей школе он основал рок-группу - в комплекте с виолончелью. "Я надел наушники сбоку, чтобы усилить звук.«Эксперимент должен был привести, после многих лет исследований, к изобретению« гиперселло », инструмента с цифровым усовершенствованием, на котором до настоящего времени в основном играл Йо-Йо Ма.
Технология, лежащая в основе музыкальных экспериментов Мачовера, часто выходит за рамки понимания большинства простых смертных. Даже технически безумный японец был озадачен его «перчаткой с данными», футуристической конструкцией из стали и кожи, предназначенной для преобразования жестов непосредственно в звук.Многие из зрителей на представлении Буг-Мудры в Токио в 1990 году думали, что дирижер в результате какой-то трагической аварии потерял левую руку. Но, как он объясняет, благодаря видеосвязи, он использует технологии, чтобы забыть о технологиях. Это не модная классика или хитроумные гаджеты, а попытка изучить способы расширения, а не притупления наших музыкальных чувств в цифровую эпоху.
«Некоторые люди говорят о моей музыке, как о рафтинге, - говорит Мачовер.«В центре музыки всегда есть что-то, что каждый может сразу понять. Часто это мелодия, иногда - басовая партия. Что-то, что может провести вас через пьесу. А затем - как на плоту в белой воде - обычно в то же время происходит много другой деятельности. Так что часть задачи - удержаться за плот ».
Если вы хотите приблизиться к технологии Toy Symphony, во вторник, 9 апреля с 4, в Национальном концертном зале состоится день открытых дверей.30 часов вечера до 18:00 Само представление планируется начать в 18.30. Сегодня в Ark, Temple Bar, есть день открытых дверей и семинары в рамках месячного MusicFest. Фестиваль продлится весь апрель и будет проходить в различных музыкальных стилях, от джаза / традиционного фьюжн и Первого концерта Медведя Паддингтона до духового квинтета. Для информации: 01-6707788 /www.ark.ie
.