Установка Laravel 5.6 на Ubuntu 18.04 с Nginx, PHP-FPM 7.2 и MariaDB
Что мы сделаем
- Обновим репозитории и пакеты Ubuntu
- Установим Nginx
- Установим PHP 7.2 и PHP-FPM
- Установим MariaDB
- Установим PHP Composer
- Настроим виртуальный хост Nginx для Laravel
- Установим Laravel
- Протестируем установку
Предварительные требования
- Сервер Ubuntu 18.04
- root-привилегии или доступ через sudo
- Доступ по SSH к серверу
Шаг 1 — Обновление Ubuntu
Перед началом установки обновите базу пакетов и сами пакеты. Подключитесь к серверу по SSH:
ssh root@ipОбновите репозитории и установленные пакеты:
sudo apt update
sudo apt upgradeПерезагрузите сервер и снова подключитесь по SSH.
Шаг 2 — Установка Nginx
Установим Nginx (версия 1.14 доступна в репозитории Ubuntu 18.04). Выполните:
sudo apt install nginx -yЗапустите сервис и добавьте автозапуск при загрузке:
systemctl start nginx
systemctl enable nginxNginx слушает порт 80 — проверьте сетевые сокеты:
netstat -plntu
Или проверьте заголовки локально:
curl -I localhostВажно: если netstat не установлен, можно использовать ss: ss -plntu.
Шаг 3 — Установка PHP 7.2 и PHP-FPM
Установим PHP 7.2 и необходимые расширения для Laravel:
sudo apt install php7.2 php7.2-curl php7.2-common php7.2-cli php7.2-mysql php7.2-mbstring php7.2-fpm php7.2-xml php7.2-zip -yОткройте конфигурацию PHP-FPM и отредактируйте php.ini:
cd /etc/php/7.2/
vim fpm/php.iniНайдите и установите значение:
cgi.fix_pathinfo=0Сохраните и выйдите.
Запустите PHP-FPM и включите автозапуск:
systemctl start php7.2-fpm
systemctl enable php7.2-fpmПроверьте сокет PHP-FPM (обычно unix-сокет):
netstat -pl | grep php7.2-fpmПосле этого PHP и PHP-FPM 7.2 готовы.
Шаг 4 — Установка MariaDB
Если ваш проект использует MySQL/MariaDB, установите MariaDB (в репозитории Ubuntu 18.04 доступна ветка 10.1+). Выполните:
sudo apt install mariadb-server mariadb-client -yЗапустите сервис и включите автозапуск (в оригинале была опечатка — используйте systemctl):
systemctl start mysql
systemctl enable mysqlMariaDB слушает порт 3306 — проверьте:
netstat -plntu
Затем выполните защитную настройку и задайте пароль root:
mysql_secure_installationОтветьте на вопросы: установите пароль root, удалите анонимных пользователей, запретите удалённый вход root и удалите тестовую базу.
После подтверждений MariaDB будет базово защищена.
Шаг 5 — Установка PHP Composer
Composer — менеджер пакетов для PHP. На Ubuntu 18.04 он доступен в репозитории:
sudo apt install composer -yПроверьте работу команды:
composer
Composer установлен.
Шаг 6 — Настройка виртуального хоста Nginx для Laravel
Решите, где будет храниться проект. В примере используется /var/www/laravel. Создайте директорию:
mkdir -p /var/www/laravelСоздайте файл виртуального хоста в /etc/nginx/sites-available/laravel:
cd /etc/nginx/
vim sites-available/laravelВставьте конфигурацию:
server {
listen 80;
listen [::]:80 ipv6only=on;
# Log files for Debugging
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
# Webroot Directory for Laravel project
root /var/www/laravel/public;
index index.php index.html index.htm;
# Your Domain Name
server_name laravel.hakase-labs.co;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}Сохраните файл и активируйте сайт:
ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
nginx -tПерезапустите Nginx:
systemctl restart nginx
Примечание: замените server_name на реальное доменное имя или используйте IP во время тестирования.
Шаг 7 — Установка Laravel
Убедитесь, что установлен unzip (нужен Composer при распаковке):
sudo apt install unzip -yПерейдите в директорию проекта:
cd /var/www/laravelУстановка через Composer — рекомендуемый способ. Выполните:
composer create-project laravel/laravel .Дождитесь завершения установки.

После установки установите владельца и права. В оригинале используется www-data:root и chmod 755 для storage. Рекомендуется назначить владельца www-data и группу www-data, а для директорий storage и bootstrap/cache дать корректные права:
chown -R www-data:www-data /var/www/laravel
chmod -R 755 /var/www/laravel
chmod -R 775 /var/www/laravel/storage /var/www/laravel/bootstrap/cache
Laravel установлен.
Шаг 8 — Тестирование
Откройте в браузере домен, указанный в конфигурации, например:
http://laravel.hakase-labs.co/
Вы должны увидеть стартовую страницу Laravel.

Поздравляем — установка Laravel 5.6 на Ubuntu 18.04 с Nginx, PHP-FPM 7.2 и MariaDB завершена.
Часто встречающиеся проблемы и их устранение
- Nginx возвращает 502 Bad Gateway: проверьте, что php7.2-fpm запущен и путь к сокету совпадает с fastcgi_pass. Команда для статуса:
systemctl status php7.2-fpmОшибки прав: если Laravel не может записывать в storage или cache, проверьте владельца и права на эти папки.
Composer зависает или падает: проверьте версию PHP и доступность сети; можно увеличить memory_limit в php.ini для CLI или запускать composer с флагом
--no-devпри продакшн-установке.MariaDB недоступна: проверьте статус systemctl и лог /var/log/mysql/error.log.
Альтернативные подходы
- Apache вместо Nginx: если вы предпочитаете Apache, можно развернуть стек LAMP и подключать PHP через mod_php или php-fpm.
- Использовать PHP 7.3/7.4: для Laravel 5.6 PHP 7.1.3+ достаточно, но в продакшене желательно актуальная поддерживаемая версия PHP; для более новых Laravel потребуется более новый PHP.
- Docker-контейнеры: собрать контейнеры nginx + php-fpm + mariadb в docker-compose — удобно для изоляции и локальной разработки.
Чек-лист ролей (sysadmin / разработчик / DevOps)
- Sysadmin:
- Обновить систему и установить зависимости
- Настроить бэкапы баз данных и файлов
- Настроить мониторинг сервисов
- Разработчик:
- Настроить .env и миграции
- Проверить наличие расширений PHP
- Запустить
php artisan migrateи seed при необходимости
- DevOps:
- Настроить CI/CD для деплоя
- Настроить SSL (Let’s Encrypt)
- Настроить nginx конфиг для production (gzip, HSTS, rate limiting)
Мини-методология развертывания
- Подготовка сервера и резервное копирование
- Установка системных пакетов и зависимостей
- Настройка виртуального хоста и PHP-FPM
- Установка приложения через Composer
- Настройка прав и переменных окружения
- Тестирование в staging, затем rollout в production
Критерии приёмки
- Страница Laravel доступна по указанному домену
- PHP-FPM отвечает и Nginx проксирует запросы без ошибок 5xx
- Доступ к базе данных возможен из приложения
- Логи ошибок не содержат критических исключений при загрузке главной страницы
Команды-справочник (cheat sheet)
- Обновление системы:
sudo apt update && sudo apt upgrade -y- Установка Nginx:
sudo apt install nginx -y
systemctl enable --now nginx- Проверка статуса сервиса:
systemctl status nginx
systemctl status php7.2-fpm
systemctl status mysql- Проверка портов:
ss -plntuБезопасность и рекомендации по харднингу
- Включите UFW и откройте только нужные порты (80, 443, 22 по необходимости):
ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw enable- Настройте SSL через Let’s Encrypt (certbot) и автоматическое обновление сертификатов.
- Запретите доступ к конфигурационным файлам и .env извне.
- Ограничьте доступ к SSH по ключам и измените стандартный порт.
Совместимость и миграция
- Laravel 5.6 совместим с PHP 7.1.3+, но исправно работает с 7.2 (рекомендовано для Ubuntu 18.04).
- Для перехода на более новую версию Laravel проверяйте совместимость пакетов и версий PHP.
Отказоустойчивость и откат
- Перед обновлением приложения делайте бэкап базы данных и текущей версии кода.
- План отката: вернуть предыдущую версию кода, восстановить дамп БД, перезапустить сервисы.
- Используйте rollbacks в системе контроля версий + CI/CD для автоматизации.
Примеры тест-кейсов (базовая проверка)
- Открыть корневую страницу: HTTP 200 и содержимое с текстом Laravel
- Проверить доступ к /storage через приложение (должен быть закрыт)
- Выполнить миграцию:
php artisan migrateбез ошибок
Локальные альтернативы и подводные камни
- На локальной машине используйте Homestead или Valet (macOS) для удобной разработки.
- В продакшне избегайте использования встроенного PHP-сервера (
php artisan serve).
Краткое резюме
- Следуйте шагам: обновление → Nginx → PHP-FPM → MariaDB → Composer → виртуальный хост → Laravel
- Проверьте права и владельцев, корректность сокета PHP-FPM и DNS/hosts на тестовой машине
- Добавьте SSL, мониторинг и регулярные бэкапы для продакшн-сервера
Полезные ссылки
- Официальная документация Laravel 5.6: https://laravel.com/docs/5.6/installation
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента