LAMP Stack — это одна из самых популярных и проверенных временем связок для размещения и разработки веб-сайтов и веб-приложений.
Аббревиатура LAMP расшифровывается как:
- Linux — операционная система
- Apache — веб-сервер
- MySQL — система управления базами данных
- PHP — серверный язык программирования
Эта связка является бесплатной, открытой и универсальной, поэтому многие считают её стандартом де-факто для запуска высоконагруженных веб-приложений.
В этой статье я покажу, как установить и проверить LAMP Stack на Ubuntu 20.04 LTS.
Важные замечания перед началом
- Инструкция рассчитана на пользователя без прав root
- Все команды, требующие повышенных привилегий, выполняются через
sudo - Все конфигурационные файлы необходимо редактировать с правами администратора
- Везде, где используется
example.com, замените его на ваш домен или IP-адрес сервера
Подготовка сервера
Перед установкой LAMP Stack рекомендуется:
- Создать сервер (VPS / Cloud Instance)
- Обновить систему
- Настроить:
- часовой пояс
- hostname
- обычного пользователя
- SSH-доступ
Если у вас есть домен — заранее пропишите DNS-запись, указывающую на IP сервера.
Если домена нет — можно использовать IP-адрес.
Установка LAMP Stack
Установка через Tasksel (быстро и удобно)
tasksel — это утилита, позволяющая установить сразу весь LAMP Stack одним шагом.
Установка Tasksel (если не установлен):
sudo apt install tasksel
Установка LAMP Stack:
sudo tasksel install lamp-server
Этот способ подойдёт, если нужен быстрый старт без ручной настройки.
Установка пакетов вручную
Если вы предпочитаете полный контроль, можно установить компоненты отдельно.
Apache 2.4:
sudo apt install apache2
MySQL Server:
sudo apt install mysql-server
PHP и необходимые модули:
sudo apt install php libapache2-mod-php php-mysql
Дополнительные модули (по желанию):
sudo apt install php-curl php-json php-cgi
Настройка Apache
Включение KeepAlive
Параметр KeepAlive позволяет Apache повторно использовать соединения, уменьшая задержки и нагрузку.
Откройте файл:
sudo nano /etc/apache2/apache2.conf
Добавьте или измените параметры:
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 5
Это оптимальные значения для небольших и средних серверов.
Настройка MPM Prefork
Для PHP через mod_php рекомендуется использовать prefork.
Файл конфигурации:
sudo nano /etc/apache2/mods-available/mpm_prefork.conf
Рекомендуемые значения для сервера с 2 ГБ RAM:
<IfModule mpm_prefork_module>
StartServers 4
MinSpareServers 3
MaxSpareServers 40
MaxRequestWorkers 200
MaxConnectionsPerChild 10000
</IfModule>
Отключаем event и включаем prefork:
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
sudo systemctl restart apache2
Настройка firewall (UFW)
Проверьте профиль Apache:
sudo ufw app info "Apache Full"
Разрешите HTTP и HTTPS:
sudo ufw allow in "Apache Full"
Настройка Virtual Host в Apache
Создаём конфигурацию сайта:
sudo cp /etc/apache2/sites-available/000-default.conf \
/etc/apache2/sites-available/example.com.conf
Редактируем файл:
sudo nano /etc/apache2/sites-available/example.com.conf
Пример конфигурации:
<Directory /var/www/html/example.com/public_html>
Require all granted
</Directory>
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/example.com/public_html
ErrorLog /var/www/html/example.com/logs/error.log
CustomLog /var/www/html/example.com/logs/access.log combined
</VirtualHost>
Создаём каталоги:
sudo mkdir -p /var/www/html/example.com/{public_html,logs}
Назначаем права:
sudo chown -R www-data:www-data /var/www/html/example.com/public_html
sudo chmod -R 755 /var/www/html/example.com/public_html
Активируем сайт и отключаем дефолтный хост:
sudo a2ensite example.com
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
Настройка MySQL
Вход в консоль MySQL:
sudo mysql -u root
Создание базы данных и пользователя:
CREATE DATABASE webdata;
CREATE USER 'webuser' IDENTIFIED BY 'password';
GRANT ALL ON webdata.* TO 'webuser';
quit;
Запуск мастера безопасности:
sudo mysql_secure_installation
Рекомендуется ответить Yes на все вопросы.
Настройка PHP
Откройте файл конфигурации:
sudo nano /etc/php/7.4/apache2/php.ini
Рекомендуемые параметры:
error_reporting = E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_ERROR | E_CORE_ERROR
max_input_time = 30
error_log = /var/log/php/error.log
Создайте директорию логов:
sudo mkdir /var/log/php
sudo chown www-data /var/log/php
sudo systemctl restart apache2
Для WordPress дополнительно:
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc
Проверка работы LAMP Stack
Создайте тестовый файл:
nano /var/www/html/example.com/public_html/phptest.php
Вставьте код:
<?php
$conn = mysqli_connect("localhost", "webuser", "password");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
Откройте в браузере:
http://example.com/phptest.php
Если всё работает — вы увидите сообщение Connected successfully.
После проверки удалите файл:
sudo rm /var/www/html/example.com/public_html/phptest.php
Устранение проблем
- Сайт не открывается → проверьте статус Apache
- Загружается стандартная страница → проверьте
DocumentRoot - Видна структура каталогов → создайте
index.htmlилиindex.php
Итог
Поздравляю 🎉
Вы успешно установили и настроили LAMP Stack на Ubuntu 20.04 LTS.
Теперь сервер готов для размещения:
- сайтов
- WordPress
- веб-приложений
- API и сервисов