Установка Laravel 8 на хостинг (на примере ukraine.com.ua)

Перед установкой laravel на хостинг необходимо выполнить некоторые шаги.

Первым делом в настройках сайта или субдомена необходимо сменить верисию PHP. Выбираем самую последнюю, PHP 8, потому что на более низких версиях Laravel 8 может не запуститься.

Screenshot_1.jpg

Пока идте обновление версии PHP на сайте (до 10 минут), переходим к следующему шагу.

Для продолжения установки нам необходимо зайти на сервер по SSH.

Для этого я воспользуюсь программой PuTTy, также можно выбрать другой софт или воспользоваться сервисом WebSHH на хостинге.

Вводим хост SSH, логин и пароль (напоминаю что в терминале пароль не отображатся, при вводе пароля необходимо нажать правую кнопку мышки и Enter).

По умолчанию, в окружении SSH на хостинге используется PHP 5.6. Согласно требованиям фреймворка нужна версия не ниже 7.3, поэтому переопределите пути в переменной $PATH, выполнив команду в командной строке:

export PATH=/usr/local/php73/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

Потом выполняем установку комадой

composer create-project laravel/laravel  полный путь к папке сайта

Внимание, директория для установки должна быть пустой, иначе установщик выдаст ошибку

Запускаем установщик и ждем несколько секунд.

Если все предыдущие шаги выполнены правильно, установка закончится сообщением об успешном создани ключа приложения.

Screenshot_2.jpg

Теперь, чтобы открыть созданный сайт, необходимо перейти по адресу www.адрес_сайта/public/index.php

Вы должны увидеть стандартную страницу приветствия Laravel

Screenshot_3.jpg

Поздравляю, вы установили свой первый сайт на Laravel 8!

Если корневой каталог сайта отличается от www (обычно файлы проекта на Laravel находятся в каталоге public), то можно задать нужный через .htaccess

Для этого в корне сайта нужно создать файл .htaccess с такой инфомрацией:

# www/.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
</IfModule>

а в файле .htaccess, который находиться в папке public необходимо заменить строку

RewriteRule ^ index.php [L]

на

RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]

После этого можно открывать сайт без указания в адресе пути public и index.php

Более подробно узнать о преимуществах хостинга ukraine.com.ua и почему он номер один в Украине можно в моей статье.