Как выложить сайт на Laravel в интернет
Laravel на своей машине запускается одной командой, а вот выкладывание в интернет по традиции превращается в отдельный проект: сервер, нужная версия PHP с расширениями, composer, nginx с правильным корнем в папке public, php-fpm, права на папки storage и bootstrap/cache, сертификат, база. Каждый пункт по отдельности несложный, но вместе это вечер работы и потом ещё вечер на выяснение, почему страница отдаёт пустой экран.
Netrun убирает эту часть целиком: вы загружаете код, платформа сама видит, что перед ней PHP-проект, ставит зависимости, собирает его и выдаёт публичную ссылку с HTTPS. Ниже — что подготовить в проекте, чтобы всё сошлось с первого раза.
Проверьте, что в корне лежит composer.json
Файл composer.json в корне проекта перечисляет зависимости и говорит платформе, что перед ней PHP-проект на Laravel. Папку vendor в архив класть не нужно — библиотеки мы поставим сами по composer.json при сборке, а лишние мегабайты только замедлят загрузку.
Уберите файл .env из архива
В .env лежат ключ приложения, пароли и доступы к внешним сервисам, поэтому в архив и в репозиторий он попадать не должен. Все значения из него — ключ приложения, режим работы, доступы к базе и почте — впишите при настройке проекта: они лягут в переменные окружения в зашифрованном виде, и Laravel прочитает их обычным способом.
Выключите режим отладки
Перед публикацией переключите приложение в рабочий режим: отладка выключена, окружение — production. Иначе при первой же ошибке посетитель увидит подробную страницу с кусками вашего кода и настройками. Значения задаются теми же переменными окружения при настройке проекта.
Решите, где будет база данных
Если сайт работает с базой, её можно поднять рядом в том же проекте: опишите приложение и базу в файле docker-compose, до пяти связанных сервисов. Обязательно подключите базе именованный том, иначе данные очистятся при первом же обновлении кода. Миграции удобнее запускать при старте приложения — тогда таблицы создадутся сами.
Загрузите код и заберите ссылку
Загрузите проект ZIP-архивом или импортируйте репозиторий из GitHub, в том числе приватный. Netrun поставит зависимости, соберёт проект и запустит его — настраивать nginx, php-fpm и корень в папке public вручную не нужно. Логи сборки и запуска видны в кабинете в реальном времени, а после публикации вы получите ссылку с HTTPS.
Итог: сайт на Laravel открывается по своему адресу с защищённым соединением, без аренды сервера, ручной настройки веб-сервера и возни с сертификатом. На бесплатном тарифе сайт засыпает в простое и просыпается по открытой ссылке — первый ответ после паузы чуть медленнее; на тарифе Pro простоев нет и можно привязать свой домен. Попробовать Netrun.
Частые вопросы
Нужно ли настраивать nginx и php-fpm?
Нет. Веб-сервер, php-fpm и корень в папке public настраиваются автоматически при сборке. От вас нужен только код проекта с composer.json.
Куда девать файл .env?
В архив и в репозиторий его класть не нужно. Значения из него впишите при настройке проекта — они попадут в переменные окружения в зашифрованном виде, и Laravel прочитает их обычным способом через config и env.
Как быть с базой данных и миграциями?
Базу можно поднять рядом в том же проекте через файл docker-compose — до пяти связанных сервисов. Базе обязательно нужен именованный том, иначе данные пропадут при обновлении кода. Миграции удобнее запускать при старте приложения, тогда таблицы создадутся сами при первой публикации.
Что делать с загруженными пользователями файлами?
Файлы, которые приложение пишет в папку storage, живут внутри контейнера и пересоздаются при обновлении кода. Если загрузки должны сохраняться, храните их во внешнем файловом хранилище или подключите к этой папке постоянный том.
Будет ли сайт засыпать?
На бесплатном тарифе — да: если сайтом долго не пользуются, он засыпает и просыпается, когда кто-то открывает ссылку, поэтому первый ответ после паузы чуть медленнее. На тарифе Pro сайт работает без простоев.
Можно ли запустить несколько сервисов сразу?
Да. Через docker-compose можно поднять до пяти связанных сервисов в одном проекте — например, приложение вместе с базой данных.
Где указать токены и другие секретные значения?
В настройках проекта есть раздел для значений из кода — например, токена от BotFather. Мы храним их в зашифрованном виде.
Можно ли подключить свой домен?
Да, на тарифе Pro, и не один: к сайту можно подключить столько своих доменов, сколько вам нужно. Откройте вкладку «Домены» на странице проекта, укажите домен, который вы купили у регистратора, и добавьте DNS-запись по подсказке — так же добавляется каждый следующий. Когда домены готовы, нажмите «Проверить»: Netrun проверит их все разом и выпустит на каждый свой HTTPS-сертификат, поэтому заминка с одним доменом не мешает остальным. Сайт открывается по любому из ваших адресов, а ссылка Netrun остаётся запасной. Если вы подключаете домен целиком (например myshop.com), можно добавить ещё одну запись, и сайт откроется и с www. Доступно для сайтов — боту и фоновому скрипту домен не нужен.