MAATRIX / Блог / Debian 12: установка LAMP с нуля

Debian 12: установка LAMP с нуля

Debian 12: установка LAMP с нуля

MAATRIX

LAMP — классический набор для сайтов на PHP: Linux, Apache, MariaDB и PHP. Debian 12 давно стал одной из любимых серверных платформ именно под такие задачи благодаря своей стабильности. Установка LAMP на Debian 12 с нуля — прямой путь развернуть WordPress, Joomla или самописный движок с привычными файлами .htaccess. Мы поставим веб-сервер, базу и PHP, настроим виртуальный хост под ваш домен и проверим, что всё работает вместе.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Чем LAMP отличается от LEMP

Разница — в веб-сервере: в LAMP это Apache, в LEMP — Nginx. Apache гибче в совместимости: он «из коробки» понимает файлы .htaccess, которыми многие CMS управляют правилами доступа и перенаправлениями прямо из папки сайта, без правки глобального конфига. Для переноса готового проекта с общего хостинга это большое удобство — .htaccess просто продолжает работать.

Плата за гибкость — Apache расходует больше памяти на соединение, чем Nginx. На небольшом VPS это редко проблема, а для типового сайта на WordPress Apache остаётся отличным выбором. Стоит сразу развеять частое заблуждение: LAMP — это не одна программа, а четыре независимых компонента. Linux — сама система. Apache принимает запросы браузера. PHP превращает код в готовую страницу. MariaDB хранит данные. Каждый ставится отдельно, и понимание роли каждого окупается при первой же поломке: вы точно знаете, где искать причину, а не гадаете.

Обновляем систему

Начните с обновления пакетов ради актуальных версий и свежих патчей безопасности:

apt update && apt upgrade -y

Пока идёт обновление, убедитесь, что фаервол включён, а SSH-доступ открыт: на следующих шагах мы откроем веб-порты, и важно не отрезать себе вход. Если фаервол ещё не настроен, самое время сделать это до публикации сайта — сервер в интернете должен быть по умолчанию закрыт и открывать только то, что реально используется. В Debian фаервол UFW ставится отдельно командой apt install -y ufw.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS на Debian 12

Устанавливаем Apache

Поставьте веб-сервер:

apt install -y apache2

Apache запускается сразу после установки. Откройте http://ВАШ_IP в браузере — должна появиться стандартная страница Apache Debian Default Page, подтверждающая, что веб-сервер работает и доступен снаружи. Если вы используете UFW, откройте порты HTTP и HTTPS профилем приложения командой sudo ufw allow 'Apache Full'. Если страница не открывается, проверьте состояние службы командой systemctl status apache2 и правила фаервола: служба должна быть active (running), а порты 80 и 443 — открыты.

Ставим MariaDB

Установите сервер базы данных — свободную и совместимую с MySQL MariaDB:

apt install -y mariadb-server

Сразу запустите скрипт первичной защиты, закрывающий типичные уязвимости чистой инсталляции:

mysql_secure_installation

Скрипт предложит задать пароль root, удалить анонимных пользователей, тестовую базу и запретить удалённый вход администратора. Отвечайте «Y» на вопросы об удалении лишнего и задайте надёжный пароль — незащищённая база на публичном IP взламывается одной из первых. Для каждого проекта позже заведите отдельного пользователя MariaDB с правами только на его базу: так компрометация одного сайта не откроет доступ к остальным. Это несколько минут на старте, окупающиеся с точки зрения безопасности многократно.

Устанавливаем PHP

Поставьте PHP, модуль связки Apache с PHP и модуль для работы с базой:

apt install -y php libapache2-mod-php php-mysql

В отличие от LEMP с отдельной службой PHP-FPM, в классическом LAMP модуль libapache2-mod-php встраивает интерпретатор прямо в Apache — это проще в настройке, но менее экономно по памяти под большой нагрузкой. В Debian 12 устанавливается PHP 8.2. Многие движки требуют дополнительных расширений: php-gd для картинок, php-mbstring для многобайтовых строк, php-curl для запросов к внешним сервисам, php-xml для разбора XML. Поставьте их сразу той же командой, перечислив через пробел, и перезапустите 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», можно смело перезагружать. Так вы не уроните работающий сайт из-за опечатки.

Полезно понять логику управления сайтами в Apache на Debian, потому что она отличается от простого редактирования одного файла. Конфиги всех доступных сайтов лежат в папке sites-available, но реально обслуживаются только те, что включены символической ссылкой в sites-enabled. Команды a2ensite и обратная ей a2dissite как раз создают и убирают эти ссылки, не трогая сами конфиги. Такой подход удобен: вы можете держать наготове описания десятка сайтов и включать-выключать их по одному, ничего не удаляя. Аналогично устроены и модули: a2enmod включает модуль, a2dismod отключает. Эта система «доступно отдельно, включено отдельно» — фирменная черта Debian и Ubuntu, и, освоив её, вы управляете конфигурацией Apache гораздо аккуратнее, чем правкой одного громоздкого файла.

Проверяем стек и убираем следы

Убедитесь, что PHP исполняется: создайте в корне сайта файл info.php с вызовом phpinfo() и откройте http://ВАШ_IP/info.php. Подробная таблица с версией PHP означает, что Apache и PHP работают вместе, а строки mysqli или pdo_mysql подтверждают связь с MariaDB. После проверки сразу удалите файл командой sudo rm /var/www/mysite/info.php: оставлять его на боевом сервере нельзя, он раскрывает детали конфигурации. На этом рабочий LAMP на Debian готов. Следующим шагом стоит выпустить бесплатный SSL-сертификат Let's Encrypt через certbot, чтобы сайт открывался по защищённому HTTPS, а не по «голому» HTTP.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS на Debian 12

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

LAMP или LEMP на Debian — что выбрать новичку?

Если переносите готовый сайт с .htaccess или ставите WordPress без желания вникать в тонкости, LAMP проще. Если важна экономия памяти под нагрузкой — присмотритесь к LEMP на Nginx.

PHP-файл скачивается вместо выполнения — почему?

Не установлен или не включён модуль PHP для Apache. Переустановите libapache2-mod-php и перезапустите Apache командой sudo systemctl restart apache2.

Нужен ли отдельный пользователь для каждой базы?

Да, это важная мера безопасности: пользователь с правами только на свою базу ограничивает ущерб при взломе одного из сайтов на сервере.

Как оплатить VPS на Debian из России?

У MAATRIX доступна оплата картой российского банка, по СБП, криптовалютой и токеном MAAT — иностранная карта не требуется.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.