Гид по технологиям

Установка LEMP (Nginx + MySQL + PHP) на Ubuntu 12.04

• 5 min read • DevOps • Обновлено 16 Nov 2025
LEMP на Ubuntu 12.04 — установка Nginx, PHP, MySQL
LEMP на Ubuntu 12.04 — установка Nginx, PHP, MySQL

Что такое 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.

Стартовая страница 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 работает.

Страница phpinfo

Установка MySQL

Установите сервер MySQL:

sudo apt-get install mysql-server

В ходе установки будет предложено задать пароль для пользователя root MySQL.

Установка пароля для MySQL

После установки LEMP готов к использованию.

Опционально: установка phpMyAdmin

phpMyAdmin — удобный веб‑интерфейс для управления базой данных, но он не обязателен.

sudo apt-get install phpmyadmin

При появлении запроса выбрать веб‑сервер (apache2 или lighttpd) выберите «None» (ни один) и нажмите OK. На предложение конфигурировать базу с dbconfig-common выберите No.

Установка phpMyAdmin

После установки добавьте в конфигурацию 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

Конфигурация phpMyAdmin в Nginx

Критерии приёмки

  • На 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.

Мини‑методология установки (кратко)

  1. Обновить систему.
  2. Установить Nginx и остановить Apache.
  3. Установить php-fpm и модули DB.
  4. Настроить Nginx для php‑обработки и проверить phpinfo.
  5. Установить MySQL и проверить подключение.
  6. Опционально установить phpMyAdmin и добавить конфигурацию в Nginx.
  7. Применить базовую безопасность и мониторинг.

Рекомендации по безопасности

  • Закройте доступ к 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) после проверки и выполните базовые шаги по безопасности перед открытием сервера в публичный интернет.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро