Установка LAMP на Ubuntu 24.04 «Noble Numbat»
О чём эта инструкция
В этом руководстве подробно показаны базовые и продвинутые шаги по развёртыванию LAMP‑стека на сервере Ubuntu 24.04. Оно будет полезно системным администраторам, девопс-инженерам и разработчикам, которые хотят поднимать веб‑сервисы на собственном сервере.
Важно: команды выполняйте от имени пользователя с правами sudo или от root. Все команды и файлы в статье совместимы с Ubuntu 24.04.

Предпосылки
- Установленная Ubuntu 24.04 “Noble Numbat”.
- Доступ с правами root или пользователя в sudoers.
- Подключение к интернету для загрузки пакетов.
- Базовое представление о работе с терминалом и текстовым редактором (nano, vim).
Быстрая модель принятия решения
Если вам нужен лёгкий и широко совместимый стек для PHP‑приложений — LAMP подходит. Для высоконагруженных проектов рассмотрите Nginx + PHP‑FPM и кластерные решения для БД.
Установка Apache
Apache — один из самых распространённых веб‑серверов. Он модульный, надёжен и совместим с множеством модулей и расширений.
Обновите списки пакетов и установите apache2:
sudo apt update
sudo apt install apache2
После установки служба Apache запускается автоматически и включается в автозагрузку. Проверьте статус:
sudo systemctl is-enabled apache2
sudo systemctl status apache2Вы увидите, что сервис включён (enabled) и работает (active (running)).

Если на сервере включён UFW (Uncomplicated Firewall), откройте HTTP/HTTPS:
sudo ufw allow 'Apache Full'
sudo ufw status
Откройте в браузере IP сервера, например http://192.168.5.30/. Вы должны увидеть стандартную страницу Apache (index.html).

Если не знаете IP сервера, проверьте командой:
ip aУстановка MariaDB
MariaDB — свободная реляционная СУБД, совместимая с MySQL. Она часто используется в LAMP вместо оригинального MySQL.
Установите сервер MariaDB:
sudo apt install mariadb-server
Проверьте, что сервис работает и включён:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
После установки обязательно запустите утилиту безопасной настройки:
sudo mariadb-secure-installationОсновные шаги, которые нужно выполнить в утилите:
- Нажать Enter, если root‑пароль пока не задан.
- Не переключаться на unix_socket (обычно ответ n), если хотите задать классический пароль для root.
- Установить пароль root (Y).
- Удалить анонимных пользователей (Y).
- Запретить удалённый вход под root (Y).
- Удалить тестовую базу данных (Y).
- Перезагрузить таблицы привилегий (Y).
Ожидаемое завершение:
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!Установка PHP и расширений
PHP — серверный язык для веб‑приложений. Здесь мы ставим версию, доступную в репозиториях Ubuntu 24.04 (например, PHP 8.3), и набор распространённых расширений.
Основные пакеты и их назначение:
- libapache2-mod-php — интеграция PHP с Apache.
- php-mysql — драйвер для работы с MySQL/MariaDB.
- php-opcache и php-apcu — ускорение и кэширование PHP.
Установите набор пакетов:
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip
Настройте php.ini для Apache:
sudo nano /etc/php/8.3/apache2/php.iniПримеры важных изменений. Установите таймзону и лимиты под характеристики сервера:
date.timezone = Europe/Paris
memory_limit = 256M
upload_max_file_size = 64M
max_execution_time = 300Сохраните и перезапустите Apache:
sudo systemctl restart apache2Проверка интеграции Apache и PHP
Создайте файл phpinfo в DocumentRoot по умолчанию (/var/www/html):
echo "" > /var/www/html/info.phpОткройте http://192.168.5.30/info.php. Должна отобразиться страница с информацией о PHP: версия, загруженные модули, настройки.

Проверьте, что модуль mysqli или pdo_mysql присутствует:

Проверьте наличие модулей кеширования APCu/OPcache:

Удалите info.php после проверки, чтобы не раскрывать конфигурацию сервера в продакшене:
sudo rm /var/www/html/info.phpСоздание виртуального хоста Apache
Виртуальные хосты позволяют хостить несколько сайтов на одном сервере (например, mysite.com и site2.com).
- Создайте структуру каталогов и простой index:
mkdir -p /var/www/mysite/public_html
echo "Welcome to mysite.com" > /var/www/mysite/public_html/index.html- Измените владельца на www-data:
sudo chown -R www-data:www-data /var/www/mysite- Создайте конфигурацию виртуального хоста:
sudo nano /etc/apache2/sites-available/mysite.confВставьте пример конфигурации и измените ServerName на ваш домен:
ServerAdmin [email protected]
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite/public_html
ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
CustomLog ${APACHE_LOG_DIR}/mysite-access.log combined
- Активируйте сайт и проверьте синтаксис Apache:
sudo a2ensite mysite.conf
sudo apachectl configtestЕсли синтаксис корректен, вы увидите “Syntax OK”. Перезапустите Apache:
sudo systemctl restart apache2
Тестирование виртуального хоста локально
Чтобы протестировать новый виртуальный хост без DNS, добавьте запись в hosts на вашей локальной машине:
- Windows: C:\Windows\System32\drivers\etc\hosts (запускать как администратор).
- Linux/Mac: /etc/hosts (редактировать с sudo).
Добавьте строку:
192.168.5.30 mysite.comОткройте http://mysite.com/ — вы должны увидеть содержимое /var/www/mysite/public_html/index.html.

Дополнительные рекомендации по безопасности и эксплуатации
Ниже приведены важные практики для продакшн‑сервера.
Настройка брандмауэра и ограничение доступа
- Разрешайте только конкретные сервисы (HTTP/HTTPS, SSH) через UFW.
- Ограничьте доступ по SSH: используйте non‑standard порт, отключите вход под root и включите двухфакторную аутентификацию при возможности.
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enableНастройка HTTPS с Let’s Encrypt
Для публичных сайтов используйте бесплатные сертификаты Let’s Encrypt и certbot:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d mysite.com -d www.mysite.comcertbot автоматически добавит перенаправление с HTTP на HTTPS и обновит конфигурацию Apache.
Резервное копирование баз данных и файлов
- Дамп БД: используйте mariadb‑dump или mysqldump.
mysqldump -u root -p database_name > database_name.sql- Регулярно копируйте /var/www и конфигурационные файлы (/etc/apache2, /etc/php).
- Храните бэкапы в удалённом хранилище или на отдельном сервере.
Мониторинг и логирование
- Подключите систему сбора метрик (Prometheus, Grafana) и логов (ELK или облачный сервис).
- Настройте ротацию логов через logrotate и мониторинг дискового пространства.
Обновления и патчи
- На продакшне тестируйте обновления на стадии тестирования перед развертыванием.
- Планируйте окна обслуживания для обновлений пакетов и ядра.
MySQL vs MariaDB — выбор СУБД
MariaDB является форком MySQL. Ключевые различия:
- Совместимость: MariaDB сохраняет совместимость на уровне SQL и клиентов, но некоторые расширения/модули могут отличаться.
- Развитие: MariaDB развивается открыто и имеет дополнительные оптимизации и движки.
- Поддержка: MySQL поддерживается Oracle; выбор зависит от политики обновлений и корпоративных требований.
Для большинства проектов MariaDB — оптимальный выбор по соотношению производительности и открытости.
Отладка и частые ошибки
- Ошибка «Address already in use» при старте Apache — проверьте, не занят ли порт 80 другим процессом (например, nginx).
sudo ss -tulpn | grep :80- Ошибка прав доступа 403 — проверьте владельца и права на DocumentRoot и убедитесь, что конфигурация виртуального хоста указывает на существующую папку.
ls -la /var/www/mysite/public_html
sudo chown -R www-data:www-data /var/www/mysite
sudo chmod -R 755 /var/www/mysite- PHP не работает — проверьте, установлен ли модуль libapache2-mod-php и перезапущен ли Apache.
sudo a2enmod php8.3
sudo systemctl restart apache2- Модуль mysqli отсутствует — убедитесь, что установлен php-mysql и перезапущен Apache.
sudo apt install php-mysql
sudo systemctl restart apache2Роль‑базированные чеклисты
Администратор сервера:
- Установить и обновить пакеты.
- Настроить брандмауэр и SSH.
- Настроить бэкапы и мониторинг.
Девопс / инженер развертывания:
- Автоматизировать развертывание конфигураций (Ansible, Terraform).
- Настроить CI/CD для сброса и тестирования миграций баз данных.
Разработчик:
- Проверить совместимость кода с PHP 8.3.
- Настроить окружение .env и конфигурации соединения с базой.
Мини‑плейбук для стандартного деплоя сайта (SOP)
- Подготовка сервера: обновить пакеты и установить LAMP.
- Создать виртуальный хост и выдачи права владельца на www‑каталог.
- Настроить SSL через certbot.
- Развернуть код приложения в /var/www/mysite.
- Выполнить миграции базы данных и проверить логи.
- Настроить мониторинг и бэкап.
- Документировать изменения и дать тестовой группе доступ.
Критерии приёмки
- Apache запускается и отвечает на HTTP(S) запросы.
- PHP корректно обрабатывает скрипты (phpinfo отсутствует в продакшне).
- MariaDB принимает подключения от локальных приложений и защищена паролем root.
- Виртуальный хост возвращает ожидаемый контент по домену.
- SSL сертификаты валидны и автоматическое обновление работает.
Тесты и контрольные кейсы
- Проверка страницы / после деплоя (HTTP 200).
- Проверка переадресации на HTTPS.
- Проверка соединения с БД из приложения (успешный SELECT).
- Проверка логов Apache и MariaDB на наличие ошибок.
- Тест восстановления из бэкапа БД.
Краткий глоссарий
- LAMP — набор: Linux, Apache, MariaDB (или MySQL), PHP.
- DocumentRoot — корневая директория web‑сайта.
- VirtualHost — конфигурация Apache для отдельного домена.
- phpinfo — скрипт отображения текущих настроек PHP.
Типичные сценарии, когда LAMP не подходит
- Требуются асинхронные или высокопроизводительные API — лучше Nginx + PHP‑FPM или Node.js/Go.
- Высоконагруженные сайты с горизонтальным масштабированием — потребуется балансировщик нагрузки и кластер БД.
Быстрый чеклист перед переходом в продакшн
- Удалён файл info.php
- Включён HTTPS и настроено перенаправление
- Настроен бэкап БД
- Проверена автозагрузка и мониторинг
- Правила UFW минимально достаточны
Итог
Вы успешно установили LAMP на Ubuntu 24.04, проверили интеграцию Apache и PHP, обезопасили MariaDB и настроили виртуальный хост. Дальше рекомендуется автоматизировать развёртывание и настроить регулярный бэкап и мониторинг.
Важно: храните конфигурации и секреты в безопасном хранилище. Планируйте тестирование обновлений и регулярные проверки безопасности.
Краткое напоминание: инструкции по командам в этой статье предполагают выполнение в окружении Ubuntu 24.04. Настройки таймзоны, лимитов памяти и портов адаптируйте под ваш сервер.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента