LAMP — это связка Linux, Apache, MySQL и PHP, основа для большинства динамических сайтов: WordPress, Drupal, Joomla и любых PHP-приложений. Развернём её на Ubuntu Server с нуля. Инструкция подойдёт и для одноплатника, и для VPS, и для домашнего сервера.
Что такое LAMP
Каждый компонент отвечает за свой слой. Linux — операционная система. Apache — веб-сервер, принимает HTTP-запросы от браузера. PHP — исполняет серверную логику. MySQL (или совместимая MariaDB) — хранит данные. Когда посетитель открывает страницу: Apache принимает запрос, передаёт скрипт интерпретатору PHP, тот при необходимости обращается к базе, и PHP отдаёт готовый HTML обратно браузеру.
Подготовка системы
Инструкция актуальна для Ubuntu 24.04 и 26.04 LTS. Начните с подключения к серверу по SSH под пользователем с правами sudo и обновите пакеты:
sudo apt update && sudo apt upgrade -yЕсли обновилось ядро — перезагрузите сервер.
Шаг 1. Устанавливаем Apache
Apache — веб-сервер, первый компонент стека:
sudo apt install apache2 -yПроверьте, что сервис запущен:
sudo systemctl status apache2Должно быть active (running). Теперь откройте в браузере IP-адрес сервера — увидите стандартную страницу Apache. Если не знаете IP:
hostname -IШаг 2. Настраиваем фаервол
Откройте порты для веб-сервера и SSH, чтобы не потерять доступ:
sudo ufw allow 'Apache Full'
sudo ufw allow OpenSSH
sudo ufw enable«Apache Full» открывает порты 80 (HTTP) и 443 (HTTPS). Проверить правила:
sudo ufw statusШаг 3. Устанавливаем MySQL
База данных для хранения информации сайта:
sudo apt install mysql-server -yПосле установки обязательно запустите скрипт защиты — он задаёт пароль root, удаляет анонимных пользователей, запрещает удалённый вход root и убирает тестовую базу:
sudo mysql_secure_installationОтвечайте Y на все вопросы и задайте надёжный пароль root. Если предпочитаете полностью открытую MariaDB вместо MySQL — ставится так же: sudo apt install mariadb-server, а защита через sudo mariadb-secure-installation.
Шаг 4. Устанавливаем PHP
PHP и модуль, связывающий его с Apache, плюс расширение для работы с MySQL:
sudo apt install php libapache2-mod-php php-mysql -yПолезные дополнительные модули (нужны многим приложениям, включая WordPress):
sudo apt install php-curl php-gd php-mbstring php-xml php-zip -yПроверьте версию PHP:
php -vШаг 5. Проверяем связку
Создайте тестовый файл в корне сайта. Document root в Ubuntu — /var/www/html:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.phpОткройте в браузере http://ваш-ip/info.php — должна появиться подробная страница с версией PHP и модулями. Если видите не страницу, а исходный код — значит PHP не подхватился Apache, проверьте установку libapache2-mod-php.
Важно: сразу после проверки удалите этот файл — он раскрывает системную информацию и опасен на боевом сервере:
sudo rm /var/www/html/info.phpШаг 6. Создаём базу для сайта
Войдите в MySQL:
sudo mysqlСоздайте базу и отдельного пользователя (не используйте root для сайтов):
CREATE DATABASE mysite CHARACTER SET utf8mb4;
CREATE USER 'mysite_user'@'localhost' IDENTIFIED BY 'надёжный_пароль';
GRANT ALL PRIVILEGES ON mysite.* TO 'mysite_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Теперь у сайта своя база и свой пользователь с доступом только к ней — так безопаснее.
Шаг 7. Устанавливаем phpMyAdmin
Управлять базами из командной строки не всегда удобно. phpMyAdmin (PMA) — веб-интерфейс, через который можно создавать базы, таблицы, выполнять SQL-запросы и импорт/экспорт прямо в браузере.
Установите пакет из репозитория:
sudo apt install phpmyadmin -yВо время установки появятся диалоги — тут важно не ошибиться:
Выбор веб-сервера: apache2 будет подсвечен, но НЕ выбран. Обязательно нажмите ПРОБЕЛ, чтобы поставить звёздочку напротив apache2, затем TAB и ENTER. Если пропустить этот шаг, установщик не перенесёт файлы и интерфейс не откроется.
Настройка базы: на вопрос про dbconfig-common ответьте Yes — это создаст служебную базу, которую phpMyAdmin использует для своих настроек.
Пароль: задайте пароль для служебного пользователя phpmyadmin (или оставьте пустым — сгенерируется случайный).
После установки включите расширение mbstring и перезапустите Apache:
sudo phpenmod mbstring
sudo systemctl restart apache2Создаём пользователя для входа в phpMyAdmin
Важный момент: в Ubuntu 20.04 и новее пользователь root в MySQL входит через системный плагин auth_socket, а не по паролю. Поэтому войти в phpMyAdmin под root не получится — и не нужно. Создайте отдельного администратора для веб-интерфейса.
Войдите в MySQL:
sudo mysqlСоздайте пользователя с полными правами (замените пароль на надёжный):
CREATE USER 'pmauser'@'localhost' IDENTIFIED BY 'надёжный_пароль';
GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;Вход в phpMyAdmin
Откройте в браузере адрес http://ваш-ip/phpmyadmin — появится страница входа. Введите логин pmauser и пароль, который задали. Вы попадёте в веб-интерфейс, где слева список баз, а справа — таблицы, SQL-редактор, импорт и экспорт.
Безопасность phpMyAdmin
phpMyAdmin — одна из самых частых мишеней ботов и брутфорса, потому что стоит по предсказуемому адресу /phpmyadmin. Минимум, что стоит сделать на боевом сервере:
Никогда не открывайте phpMyAdmin по обычному HTTP на публичном сервере — только по HTTPS, иначе логин и пароль от базы можно перехватить. Настройте SSL через Let's Encrypt.
Добавьте второй уровень входа через Apache — базовую HTTP-аутентификацию (.htpasswd). Тогда прежде чем дойти до страницы phpMyAdmin, злоумышленник упрётся в отдельный запрос логина и пароля.
По возможности смените стандартный адрес /phpmyadmin на нестандартный — это отсекает автоматических ботов, которые ломятся по типовому пути.
Если phpMyAdmin нужен только вам, лучший вариант — вообще не открывать его наружу, а подключаться через SSH-туннель к локальному серверу.
Что дальше
Стек готов: Apache отдаёт страницы, PHP исполняет код, MySQL хранит данные. Дальше вы можете залить свой сайт в /var/www/html, развернуть WordPress или настроить виртуальные хосты для нескольких сайтов на одном сервере.
Для боевого сервера обязательно настройте HTTPS — бесплатный сертификат Let's Encrypt ставится за пару команд через certbot. И держите систему в актуальном состоянии: регулярный apt update && apt upgrade закрывает уязвимости.
Если сервер собран на одноплатнике, для стабильной работы под нагрузкой важно охлаждение — при постоянной работе веб-сервера плата греется, поэтому корпус с активным обдувом продлит ей жизнь.