Ubuntu 24.04: установка LAMP с нуля
LAMP — классический набор для сайтов на PHP: Linux, Apache, MariaDB и PHP. Если вам нужно развернуть WordPress, Joomla, самописный движок или любое приложение с привычными файлами .htaccess, установка LAMP на Ubuntu 24.04 с нуля — прямой путь к результату. Ниже мы поставим веб-сервер, базу и PHP, настроим виртуальный хост под ваш сайт и проверим, что всё работает. Никакой магии — только понятные команды и объяснение, зачем каждая нужна.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Чем LAMP отличается от LEMP
Разница в веб-сервере: в LAMP это Apache, в LEMP — Nginx. Apache гибче в плане совместимости — он «из коробки» понимает файлы .htaccess, которыми многие CMS и готовые скрипты управляют правилами доступа и перенаправлениями прямо из папки сайта, без правки глобального конфига. Для человека, который переносит готовый проект с общего хостинга, это большое удобство: .htaccess просто продолжает работать.
Плата за гибкость — Apache расходует больше памяти на каждое соединение, чем Nginx. На небольшом VPS это редко становится проблемой, а для типового сайта на WordPress Apache остаётся отличным выбором. Понимая эту разницу, вы осознанно выбираете стек под задачу, а не наугад. Дальше собираем LAMP по шагам.
Стоит сразу развеять частое заблуждение новичков: LAMP — это не одна программа, которую можно поставить «в один клик», а четыре независимых компонента, работающих вместе. Linux у нас уже есть — это сама операционная система сервера. Apache принимает запросы из браузера. PHP превращает код сайта в готовую HTML-страницу. MariaDB хранит данные — статьи, товары, аккаунты пользователей. Каждый компонент ставится и настраивается отдельно, и именно поэтому важно понимать роль каждого: когда сайт «не работает», вы сможете точно определить, отвечает ли Apache, исполняется ли PHP и доступна ли база, а не гадать наугад. Эта ясность окупается при первой же поломке.
Обновляем систему и проверяем доступ
Начните с обновления пакетов, чтобы ставить актуальные версии и свежие патчи безопасности:
sudo apt update && sudo apt upgrade -y
Пока идёт обновление, убедитесь, что фаервол UFW включён и SSH-доступ открыт: на следующих шагах мы будем открывать веб-порты, и важно не отрезать себе вход по невнимательности. Проверьте статус командой sudo ufw status. Если фаервол ещё не настроен, самое время сделать это до публикации сайта — сервер в интернете должен быть закрыт по умолчанию и открывать только то, что реально используется.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS на Ubuntu 24.04Устанавливаем Apache
Поставьте веб-сервер:
sudo apt install -y apache2
Apache запускается сразу после установки. Откройте порты HTTP и HTTPS в фаерволе — для Apache есть готовый профиль приложения:
sudo ufw allow 'Apache Full'
Теперь откройте http://ВАШ_IP в браузере — должна появиться стандартная страница Ubuntu Apache Default Page. Её наличие подтверждает, что веб-сервер работает и доступен снаружи. Если страница не открывается, проверьте состояние службы командой systemctl status apache2 и правила фаервола. Служба должна быть в состоянии active (running), а в списке ufw — открытые порты 80 и 443.
Ставим MariaDB
Установите сервер базы данных — свободную и совместимую с MySQL MariaDB:
sudo apt install -y mariadb-server
Сразу после установки запустите скрипт первичной защиты, который закрывает типичные уязвимости чистой инсталляции:
sudo mysql_secure_installation
Скрипт предложит задать пароль root базы, удалить анонимных пользователей, тестовую базу и запретить удалённый вход администратора. Отвечайте «Y» на все вопросы об удалении лишнего и обязательно задайте надёжный пароль. Это не формальность: незащищённая база на публичном IP — одна из самых частых причин взлома сайтов. Для каждого проекта позже заведите отдельного пользователя MariaDB с правами только на его базу — так компрометация одного сайта не откроет доступ к остальным.
Устанавливаем PHP
Теперь поставим PHP и модуль связки Apache с PHP, а также модуль для работы с базой:
sudo apt install -y php libapache2-mod-php php-mysql
В отличие от LEMP, где PHP работает отдельной службой PHP-FPM, в классическом LAMP модуль libapache2-mod-php встраивает интерпретатор прямо в Apache. Это проще в настройке — не нужно возиться с сокетами, — но менее экономно по памяти под большой нагрузкой. В Ubuntu 24.04 устанавливается PHP 8.3. Чтобы Apache при заходе в папку сначала пытался открыть index.php, а не index.html, при желании поправьте приоритет в файле dir.conf, но для большинства CMS это не обязательно.
Многие движки требуют дополнительных расширений PHP помимо базового набора. Например, WordPress и большинство CMS используют модули для работы с изображениями, архивами и текстом в разных кодировках. Их удобно поставить сразу, чтобы потом не ловить непонятные ошибки: пакеты вроде php-gd (обработка картинок), php-mbstring (многобайтовые строки), php-curl (запросы к внешним сервисам) и php-xml (разбор XML) закрывают потребности почти любого сайта. Установите их той же командой apt install, перечислив через пробел, и перезапустите Apache. После установки список активных модулей всегда можно посмотреть командой php -m — если нужного расширения там нет, значит, его пакет ещё не установлен.
Настраиваем виртуальный хост
Виртуальный хост позволяет держать на одном сервере несколько сайтов, каждый со своим доменом и папкой. Создайте директорию сайта и конфиг, например /etc/apache2/sites-available/mysite.conf, где укажите ServerName с вашим доменом и DocumentRoot на папку сайта. Затем включите сайт и модуль перезаписи URL, нужный большинству CMS для «человекопонятных» ссылок:
sudo a2ensite mysite.conf
sudo a2enmod rewrite
sudo systemctl reload apache2
Команда a2ensite активирует конфиг сайта, a2enmod rewrite включает модуль mod_rewrite, а reload применяет изменения без остановки сервера. Перед этим полезно проверить синтаксис конфига командой sudo apache2ctl configtest — если ответ «Syntax OK», можно смело перезагружать. Так вы не уроните работающий сайт из-за опечатки.
Проверяем стек и убираем следы
Убедитесь, что PHP исполняется. Создайте в корне сайта файл info.php с вызовом phpinfo() и откройте http://ВАШ_IP/info.php. Подробная таблица с версией PHP и списком модулей означает, что Apache и PHP работают вместе. Найдите в таблице строки mysqli или pdo_mysql — они подтверждают, что PHP видит MariaDB. После проверки сразу удалите файл командой sudo rm /var/www/mysite/info.php: оставлять его на боевом сервере нельзя, он раскрывает детали конфигурации потенциальному злоумышленнику. На этом рабочий LAMP готов — можно разворачивать сайт. Следующим шагом стоит выпустить бесплатный SSL-сертификат Let's Encrypt через certbot, чтобы сайт открывался по защищённому HTTPS, а не по «голому» HTTP.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS на Ubuntu 24.04Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
LAMP или LEMP — что выбрать новичку?
Если переносите готовый сайт с .htaccess или ставите WordPress без желания вникать в тонкости, LAMP проще. Если важна экономия памяти и высокая нагрузка — присмотритесь к LEMP на Nginx.
Сайт открывается, но PHP-файл скачивается вместо выполнения.
Это значит, что не установлен или не включён модуль PHP для Apache. Переустановите libapache2-mod-php и перезапустите Apache командой sudo systemctl restart apache2.
Нужен ли отдельный пользователь для каждой базы?
Да, это важная мера безопасности: пользователь с правами только на свою базу ограничивает ущерб при взломе одного из сайтов на сервере.
Как оплатить VPS на Ubuntu из России?
У MAATRIX доступна оплата картой российского банка, по СБП, криптовалютой и токеном MAAT — иностранная карта не требуется.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.