Для публикации сайта на интернет-сервере необходимы хостинг (место на сервере) и доменное имя (например, example.com). Воспользуйтесь услугами хостинг-провайдера.
Подготовка базы данных
Создайте новую базу данных на хостинге. В личном кабинете найдите раздел «Базы данных», создайте базу данных (например, laravel_db), выбрав кодировку UTF-8, и пользователя с таким же именем и паролем.
Экспорт и импорт базы данных
Экспортируйте локальную базу данных. В phpMyAdmin (или аналогичной программе) выберите базу данных, экспортируйте её в быстром формате. Скопируйте полученный SQL-код.
Создайте файл (например, laravel_db.sql) в проекте Laravel и вставьте в него код.
Импортируйте базу данных на удаленный сервер. В панели управления хостинга, в разделе вашей базы данных, выберите импорт, укажите созданный файл laravel_db.sql и кодировку UTF-8. Проверьте наличие всех таблиц после импорта. Файл laravel_db.sql можно удалить.
Настройка файла .env
Отредактируйте файл .env. Измените APP_NAME (например, на laravel_example). Оставьте APP_DEBUG как true для отображения ошибок при первой загрузке, затем измените на false.
Замените APP_URL на ваш URL-адрес (например, https://laravel_example.com).
Обновите параметры подключения к базе данных (DB_CONNECTION, DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD, DB_PORT). Эти данные находятся в панели управления хостинга. Порт для удаленной базы данных обычно 3306.
Генерация ключа и очистка кэша
Сгенерируйте новый ключ приложения:
php artisan key:generate
Очистите кэш:
php artisan config:clear
Настройка файла .htaccess
Если хостинг не поддерживает multiphp, удалите её из файла .htaccess в папке public. Ошибка 500 на сервере часто вызвана этой настройкой.
Укажите основную директорию и файл index.php в файле .htaccess:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>
Перенесите файл .htaccess в корневую директорию проекта.
Подключение к серверу и перенос файлов
Используйте FTP-клиент (например, FileZilla) для работы с файлами на удаленном сервере. Вам потребуются: протокол (FTP), порт (обычно 22), хост (адрес сервера), логин и пароль. Эти данные предоставляет хостинг-провайдер.
Подключитесь к серверу через FTP. Удалите все существующие файлы из директории сайта. Загрузите все файлы из папки проекта (кроме скрытых файлов). После загрузки удалите временные файлы и папки.
Удаление логов и проверка работы сайта
Для устранения проблем удалите файлы логов из папки storage/logs на сервере и файл bootstrap/cache/config.php.
Проверьте работу сайта. Добавьте, отредактируйте и удалите запись, убедитесь, что данные корректно записываются и отображаются.
В этом уроке описан процесс публикации сайта Laravel на удаленный сервер, включая подготовку базы данных, настройку файлов конфигурации и перенос файлов проекта.