Laravel на сервере: хостинг, база данных, публикация

Для публикации сайта на интернет-сервере необходимы хостинг (место на сервере) и доменное имя (например, 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 на удаленный сервер, включая подготовку базы данных, настройку файлов конфигурации и перенос файлов проекта.

Что будем искать? Например,программа