Урок 5. Перенос проекта Laravel на хостинг


На этом уроке из серии уроков по Laravel для начинающих мы научимся переносить созданный на рабочей машине проект сайта Laravel на сервер – для этого, собственно говоря, веб ресурс и создаются обычно. Рано, конечно, если судить по текущему проекту (так как мы ничего не сделали), но научиться на сервере размещать проще именно вначале – когда проект не оброс кучей зависимостей. Иными словами проще решать немного ошибок, чем много.

Оказалось 25 тысяч файлов для Lavarel 8. Немало, но справедливости ради в популярных CMS их ненамного меньше. Заливаем их по фтп, а также делаем дамп базы данных и его тоже импортируем через phpmyadmin (так проще, когда размер базы небольшой).

После заливки надо править файл конфига апача (/etc/apache2/sites-available), чтобы он указывал на папку public, а не public_html. Примерно так:

<VirtualHost *:80>
    ServerAdmin admin@upterm.ru
    ServerName mybotinok.ml
    ServerAlias www.mybotinok.ml
    DocumentRoot /var/www/mybotinok.ml/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Ну и не забудем перезапустить апач:

sudo systemctl restart apache2
Теперь, затаив дыхание, переходим на главную страницу нашего сайта и видим надпись:

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0".
Вот первая ошибка, как я уже писал – серьезная разработка происходит в средах, максимально приближенных к реальным. В данном случае у меня уже установлен php 7.4, но я просто забыл ег овключить и выключить 7.0

sudo a2dismod php7.0 ; sudo a2enmod php7.4 ; sudo service apache2 restart
Пробуем и видим такую ошибку:



UnexpectedValueException
There is no existing directory at "D:\xampp\htdocs\new_project\storage\logs" and it could not be created: Permission denied
Ну что ж, как минимум наш ларавель запустился, что уже радует. А ошибки мы видим как минимум две. Для начала очищаем кэш

php artisan config:cache
Теперь ошибка изменилась:

UnexpectedValueException
The stream or file "/var/www/mybotinok.ml/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied
Теперь папке storage даем права 777 – и главная станица проекта заработала. А вот другие выдают ошибку 404. Меняем конфигурацию файла /etc/apache2/ apache2.conf следующим образом

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
</Directory>
Возвращаемся к нашему SSH-клиенту, включаем модуль Apache - mod-rewrite и перезапускаем:

sudo a2enmod rewrite
sudo service apache2 restart
И теперь наконец-то видим все страницы нашего сайта. Чтобы работать с базой данных также не забудьте исправить параметры соединения (файл .env и database.php).
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, уроки по Laravel, laravel, php, хостинг




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Распознавание файловой системы Windows
Какой язык лучше для разработки игр?
Юридический аутсорсинг