Установка LEMP (Nginx + MySQL + PHP) на Ubuntu 12.04
Что такое LEMP и зачем он нужен
LEMP — это серверный стек на базе Linux, Nginx (произносится как «engine‑x»), MySQL и PHP (или Perl/Python). Он похож на LAMP, но вместо Apache использует лёгкий и масштабируемый Nginx. Кратко:
- Linux — операционная система.
- Nginx — быстрый веб‑сервер и обратный прокси.
- MySQL — реляционная база данных.
- PHP — язык серверной логики; в Nginx обычно используется с php-fpm.
Важно: Ubuntu 12.04 устарела и не получает обновлений безопасности. В статье сохранены команды для Ubuntu 12.04, но в разделе миграции описаны актуальные альтернативы.
Nginx против Apache
Nginx — это event‑driven веб‑сервер, экономный по памяти и более предсказуемо масштабируемый под высокую нагрузку. Apache — функционально богатый и гибкий, но при тяжёлой нагрузке может потреблять значительно больше памяти. При небольшой нагрузке различия несущественны; при пиковых нагрузках Nginx обычно выигрывает по использованию ресурсов и скорости отклика.
Важное замечание: перед установкой убедитесь, что у вас есть права sudo и сеть работает.
Подготовка и предпосылки
- Предполагается установленная Ubuntu 12.04 и доступ к терминалу.
- Убедитесь, что система обновлена: sudo apt-get update && sudo apt-get upgrade
- Если установлен Apache и он запущен, его нужно остановить перед запуском Nginx.
Установка Nginx
В терминале выполните:
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginxЕсли ранее установлен Apache, остановите его:
sudo service apache2 stopЗапустите Nginx:
sudo service nginx startЕсли команда не сработала, используйте init-скрипт:
sudo /etc/init.d/nginx startОткройте в браузере http://localhost или http://<ваш-ip‑адрес> — должна появиться стартовая страница Nginx.

Установка и настройка PHP
PHP в Nginx работает через процесс менеджер php-fpm. Для Ubuntu 12.04 используйте пакеты php5:
sudo apt-get install php5-cli php5-fpm php5-mysqlМодуль php5-fpm обязателен для работы PHP с Nginx.
Настройка Nginx для обработки PHP
Откройте файл конфигурации «default»:
sudo nano /etc/nginx/sites-available/defaultНайдите строку с индексом и добавьте index.php в список, например:
index index.php index.html index.htm;Далее найдите блок для обработки php (пример ниже) и приведите его в рабочее состояние, добавив try_files и раскомментировав блок:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone
fastcgi_pass 127.0.0.1:9000;
# With php5-fpm;
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}Сохраните (Ctrl+O) и выйдите (Ctrl+X). Перезапустите Nginx:
sudo service nginx restartТестирование PHP
Создайте файл с информацией о PHP:
sudo nano /usr/share/nginx/www/phpinfo.phpВставьте:
Откройте в браузере http://localhost/phpinfo.php или http://<ваш-ip‑адрес>/phpinfo.php. Если страница отображается — PHP работает.

Установка MySQL
Установите сервер MySQL:
sudo apt-get install mysql-serverВ ходе установки будет предложено задать пароль для пользователя root MySQL.

После установки LEMP готов к использованию.
Опционально: установка phpMyAdmin
phpMyAdmin — удобный веб‑интерфейс для управления базой данных, но он не обязателен.
sudo apt-get install phpmyadminПри появлении запроса выбрать веб‑сервер (apache2 или lighttpd) выберите «None» (ни один) и нажмите OK. На предложение конфигурировать базу с dbconfig-common выберите No.

После установки добавьте в конфигурацию Nginx блок для phpMyAdmin. Откройте файл:
sudo nano /etc/nginx/sites-available/defaultДобавьте после блока обработки PHP следующий фрагмент:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/*/phpmyadmin last;
}Сохраните, перезапустите Nginx:
sudo service nginx restartДоступ к phpMyAdmin: http://localhost/phpmyadmin

Критерии приёмки
- На http://localhost отображается стартовая страница Nginx.
- По адресу /phpinfo.php отображается информация о PHP.
- MySQL запущен и доступен (sudo service mysql status).
- При установленном phpMyAdmin доступен интерфейс /phpmyadmin.
Что делать, если что‑то не работает
- 502 Bad Gateway при обращении к PHP: проверьте, что php5-fpm запущен (sudo service php5-fpm status) и fastcgi_pass указывает на правильный сокет или порт.
- Пустая страница PHP: убедитесь, что в php.ini cgi.fix_pathinfo = 0.
- Nginx не стартует: проверьте конфигурацию через sudo nginx -t и исправьте синтаксические ошибки.
Альтернативные подходы
- Использовать LAMP (Apache вместо Nginx) если вам нужны .htaccess и модульная экосистема Apache.
- Docker: собрать LEMP в контейнерах (nginx, php-fpm, mysql) для изоляции и упрощённого развёртывания.
- Использовать современные пакеты: Ubuntu 18.04/20.04 + php7.4/php8.0 вместо php5.
Мини‑методология установки (кратко)
- Обновить систему.
- Установить Nginx и остановить Apache.
- Установить php-fpm и модули DB.
- Настроить Nginx для php‑обработки и проверить phpinfo.
- Установить MySQL и проверить подключение.
- Опционально установить phpMyAdmin и добавить конфигурацию в Nginx.
- Применить базовую безопасность и мониторинг.
Рекомендации по безопасности
- Закройте доступ к phpinfo.php после тестирования. Удалите или ограничьте доступ по IP.
- Для MySQL используйте сильный пароль root и, при возможности, socket‑аутентификацию.
- Обновите Ubuntu до поддерживаемой версии; для PHP используйте актуальные патчи.
- Ограничьте доступ к /phpmyadmin по IP либо настройте дополнительную аутентификацию через Nginx.
- Включите автоматические обновления безопасности или мониторинг CVE.
Миграция и совместимость
Ubuntu 12.04 и PHP5 устарели. Для продуктивных сред рекомендуется:
- Мигрировать на Ubuntu 18.04/20.04/22.04.
- Использовать php-fpm версий 7.4 или 8.x (пакеты php7.4-fpm и т.д.).
- Адаптировать конфигурацию fastcgi_pass: для php7.4-fpm чаще используется unix:/run/php/php7.4-fpm.sock.
- Проверить совместимость кода с более новыми версиями PHP (deprecated функции).
Контрольные тесты и приёмка
- Откройте главную страницу Nginx — должна быть стандартная страница приветствия.
- Откройте /phpinfo.php — должна быть таблица с версиями PHP и настройками.
- Попробуйте подключиться к MySQL локально: mysql -u root -p.
- При установленном phpMyAdmin проверьте вход в интерфейс и просмотр баз.
Контрольный чек‑лист по ролям
- Системный администратор:
- Установил Nginx и php-fpm, настроил systemd/init, настроил бэкапы конфигураций.
- Разработчик:
- Проверил работу PHP приложения и сделал тесты совместимости.
- DBA:
- Настроил резервное копирование MySQL и проверил доступность.
Глоссарий (в одну строку)
- php-fpm — менеджер процессов PHP, оптимизированный для работы с Nginx.
- fastcgi — протокол для передачи запросов серверу приложений.
- socket — локальный сокет для передачи данных между Nginx и php-fpm.
Краткое резюме
LEMP — лёгкий и производительный стек для веб‑приложений. Руководство показывает базовую установку на Ubuntu 12.04, но для продакшна рекомендуется использовать поддерживаемые версии ОС и PHP, ограничить доступ к административным интерфейсам и регулярно обновлять компоненты.
Примечание: удалите тестовые файлы (phpinfo.php) после проверки и выполните базовые шаги по безопасности перед открытием сервера в публичный интернет.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента