Продакшн проекта

Данная инструкция содержит порядок действий при публикации проекта Laravel на хостинг из локальной версии, т.е. продакшн.

Стартовые действия

На хостинге проверить, чтобы версия php была соответствующая.

Проверить время на хостинге, чтобы совпадало с местным.

Закажите безопасный протокол https.

Создать базу данных на хостинге, в кодировке utf8mb4_unicode_ci.

Сделать импорт базы данных.

У администратов и редакторов установить сложный пароль.

Настройте почту для сайта, как правило делается на хостинге из домена, например send@name.ru и проверьте её рабоспособность.

В фотошоте или другом графическом редакторе поменять картинки: (может ещё какие, проверьте, чтобы картинки соответствовали вашему проекту)

favicon.ico
touch-icon-ipad.png
touch-icon-ipad-retina.png
touch-icon-iphone.png
touch-icon-iphone-retina.png
/img/logo/logo.svg
/img/logo/logo.png

Заархировать в zip архив локальную версию приложения.

Передать и распаковать архив на хостинге.

В открытом PhpStorm (или другой среде разработки) настройте соединение с хостингом и автозагрузку всех изменений файлов. Настройте исключение для файлов:

.git
.htaccess
.env
node_modules
storage

Настройки

В файле .env поменять:

APP_ENV=production - может быть local dev.
APP_DEBUG=false - выключить debug, передать false.
APP_URL=https://site-name.ru - реальный домен сайта.
NOT_INDEX_WEBSITE=false - включить индексирование сайта, передать false.
OFF_WEBSITE=false - если нужно выключить работу сайта, передать true.

DB_CONNECTION=mysql - поменяйте настройки базы данных.
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_login
DB_PASSWORD=db_password
DB_SOCKET=
DB_BINARY_PATH=

MAIL_DRIVER=smtp - поменять настройки Email.
MAIL_HOST=smtp.name.com
MAIL_PORT=587
MAIL_USERNAME=send@name.ru
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls

Зайдите на хостинг через терминал или в хостинг-панели воспользуйтесь, запустите команды: (где -php7.3 - соответствующая версия php)

composer-php7.3 dump-autoload
composer-php7.3 install --optimize-autoloader --no-dev
php7.3 artisan view:clear
php7.3 artisan route:clear
php7.3 artisan config:clear
php7.3 artisan view:cache
php7.3 artisan config:cache
php7.3 artisan route:cache

Запустить обновление сайта, в любом месте приложения запустить эти методы:

\App\Helpers\Upload::htaccess(); - сформировать нужный htaccess, если в файле .env в APP_URL=https://site-name.ru указан безопасный протокол https, то будет сформированы редиректы с http на https. Также сформируется редирект с www на без www.
\App\Helpers\Upload::getUpload(); - Сформировать sitemap.xml, robots.txt, human.txt и error.php.

На хостинге в файле config/database.php полностью закомментировать:

/*'dump' => [
'dump_binary_path' => env('DB_BINARY_PATH'), // only the path, so without `mysqldump` or `pg_dump`
//'dump_binary_path' => '/path/to/the/binary', // only the path, so without `mysqldump` or `pg_dump`
'use_single_transaction',
'timeout' => 300, // 5 minute timeout
//'exclude_tables' => ['table1', 'table2'],
//'add_extra_option' => '--optionname=optionvalue',
],*/

Перейти на сайт для проверки.

Если ещё не меняли ключ, т.е. он такой же как проекте CMS с GitHub, то рекомендуем сгенирировать новый ключ приложения, в пропивном случае этого делать не нужно:

php7.3 artisan key:generate

В дальнейшем

В app/Widgets/Upload/excludeFiles.php настроить файлы и папки исключения, чтобы эти файлы не обновлялись с GitHub (для CMS Laravel).

Настроить задачу для Cron на хостинге:

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1 - из документации.
cd ~/name.ru/public_html && /usr/local/bin/php7.3 artisan schedule:run >> /dev/null 2>&1 - на практике (1 * * * * * - один раз в час).
Loading...