Урок 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.