- Home »

Как установить стек LAMP на последний CentOS
В этой статье разберёмся, как быстро и без лишней боли развернуть LAMP-стек на последнем CentOS. Почему это важно? Потому что LAMP — это классика жанра для хостинга сайтов, блогов, CRM, форумов и вообще всего, что работает на PHP. Если ты хочешь поднять свой сервер, не зависеть от чужих shared-хостингов и быть уверенным в том, что всё под контролем — этот гайд для тебя. Я покажу, как не наступать на грабли, которые уже давно валяются на пути каждого, кто решает собрать свой первый (или двадцать первый) LAMP. Будет просто, но по делу, с примерами, фишками и лайфхаками.
Что такое LAMP и зачем он нужен?
LAMP — это аббревиатура из четырёх компонентов:
- Linux — операционная система (в нашем случае CentOS, свежий релиз).
- Apache — веб-сервер, который раздаёт твои сайты в интернет.
- MySQL/MariaDB — база данных, где хранятся все твои посты, юзеры и прочий контент.
- PHP — язык программирования, на котором написаны WordPress, Joomla, Bitrix и куча других движков.
Почему именно LAMP? Потому что это проверенная временем связка, которую поддерживают все популярные CMS, фреймворки и даже сам Stack Overflow. Она бесплатна, гибка, легко масштабируется и отлично подходит для автоматизации. Если хочется больше гибкости — можно заменить компоненты (например, Nginx вместо Apache, PostgreSQL вместо MySQL), но для старта и большинства задач LAMP — идеальный выбор.
Как это работает?
Всё просто: пользователь заходит на твой сайт, Apache принимает запрос, если нужно — отдаёт статику (картинки, CSS, JS), а если страница динамическая — подключает PHP. PHP, в свою очередь, может обратиться к базе данных (MySQL/MariaDB), получить нужные данные и сгенерировать HTML, который возвращается пользователю. Вся эта магия происходит за миллисекунды, если всё настроено правильно.
Вот схема для наглядности:
Пользователь | v [ Apache ] --(PHP скрипты)--> [ PHP ] --(SQL запросы)--> [ MySQL/MariaDB ] | v HTML-ответ
Вся эта конструкция работает на CentOS — стабильной и надёжной ОС, которую любят за предсказуемость и долгую поддержку.
Как быстро и просто всё настроить?
Переходим к самому интересному — практике. Я покажу, как развернуть LAMP на CentOS 9 Stream (на момент написания — самый свежий релиз). Всё делается через терминал, так что SSH и root-доступ — must have.
1. Подготовка системы
Обновляем систему, чтобы не ловить баги из-за старых пакетов:
sudo dnf update -y
sudo dnf upgrade -y
2. Установка Apache
sudo dnf install httpd -y
sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd
Проверь, что Apache работает: открой в браузере http://your_server_ip/
— должна появиться стандартная страница Apache.
3. Установка MariaDB (или MySQL)
В CentOS по умолчанию идёт MariaDB — форк MySQL, полностью совместимый и даже чуть шустрее.
sudo dnf install mariadb-server mariadb -y
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo systemctl status mariadb
Далее — настраиваем безопасность:
sudo mysql_secure_installation
Тут всё просто: ставим пароль root, убираем анонимных пользователей, запрещаем удалённый root-доступ, удаляем тестовую БД.
4. Установка PHP
CentOS 9 Stream поддерживает свежие версии PHP через репозитории Remi. Ставим их:
sudo dnf install epel-release -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.2 -y
sudo dnf install php php-mysqlnd php-cli php-gd php-xml php-mbstring php-curl -y
sudo systemctl restart httpd
Проверяем версию:
php -v
Создай файл /var/www/html/info.php
с содержимым:
<?php phpinfo(); ?>
Открой http://your_server_ip/info.php
— если видишь страницу с инфой о PHP, всё ок.
5. Открываем порты в firewall
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
6. Готово! Можно деплоить сайты
Всё, LAMP-стек работает. Кидай свои сайты в /var/www/html
, настраивай виртуальные хосты, подключай домены.
Примеры, схемы, практические советы
- Виртуальные хосты: Если хочешь держать несколько сайтов на одном сервере, создай отдельные конфиги в
/etc/httpd/conf.d/
. Пример:
<VirtualHost *:80>
ServerName mysite.local
DocumentRoot /var/www/mysite
<Directory /var/www/mysite>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
- Автоматизация: Всё это можно засунуть в bash-скрипт или Ansible playbook и разворачивать LAMP за пару минут на любом VPS или выделенном сервере. Кстати, если нужен сервер — VPS или выделенный сервер — отличный вариант для старта.
- Безопасность: Не забывай про fail2ban, ufw/firewalld, регулярные обновления. Не держи info.php на проде!
- Бэкапы: Используй
mysqldump
для базы иrsync
для файлов — автоматизируй через cron.
Положительные и отрицательные кейсы
Кейс | Что получилось | Рекомендации |
---|---|---|
Установка LAMP по инструкции | Сайт работает, CMS ставится без проблем | Следовать шагам, не пропускать настройку безопасности |
Забыл открыть порты в firewall | Сайт не открывается извне | Проверить firewall-cmd --list-all , открыть 80/443 |
Поставил старую версию PHP из стандартного репозитория | Современные CMS не запускаются | Использовать Remi repo для свежего PHP |
Не настроил права на папки | Ошибка 403 Forbidden | Права: chown -R apache:apache /var/www/mysite |
Похожие решения, альтернативы и утилиты
- LEMP — Nginx вместо Apache. Быстрее на статику, но чуть сложнее конфиги.
- LNMP — Nginx + MySQL + PHP. Тоже популярен, особенно для highload.
- Docker — контейнеризация LAMP-стека. Быстро, удобно для тестов и CI/CD.
- Bitnami, XAMPP — готовые сборки, но для продакшена лучше ручная установка.
- phpMyAdmin — веб-интерфейс для управления базой (ставится через
dnf install phpMyAdmin
).
Официальные ссылки:
Статистика и сравнение с другими решениями
Стек | Производительность | Совместимость | Сложность настройки | Гибкость |
---|---|---|---|---|
LAMP (Apache) | Средняя | Максимальная | Простая | Высокая |
LEMP (Nginx) | Выше на статику | Высокая | Средняя | Высокая |
Docker LAMP | Средняя | Высокая | Очень простая | Максимальная |
Bitnami/XAMPP | Средняя | Средняя | Очень простая | Ограниченная |
По опросу Stack Overflow 2023, LAMP/LEMP используют более 35% разработчиков для своих pet-проектов и продакшн-сервисов. Это говорит о том, что стек живее всех живых.
Интересные факты и нестандартные способы использования
- LAMP можно использовать не только для сайтов, но и для REST API, микросервисов, IoT-решений (например, на базе Raspberry Pi).
- С помощью LAMP легко поднять свой Git-сервер (например, Gitea или GitLab Community Edition).
- Можно автоматизировать деплой через Git hooks: пушишь в репозиторий — сайт обновляется сам.
- PHP можно использовать для написания CLI-утилит, которые работают с базой напрямую.
- MariaDB поддерживает репликацию и кластеризацию — можно строить отказоустойчивые решения.
Новые возможности и автоматизация
С LAMP-стеком на CentOS ты получаешь:
- Полный контроль над сервером — можно оптимизировать под свои задачи.
- Возможность автоматизировать всё: от установки до деплоя и бэкапов.
- Гибкость: хочешь — ставь Redis, Memcached, Elasticsearch, Node.js рядом.
- Интеграция с CI/CD: деплой через GitLab CI, Jenkins, Ansible.
- Масштабируемость: легко клонировать и переносить на другие сервера или в облако.
Для автоматизации рекомендую:
- Скрипты на bash для развёртывания и обновления.
- Ansible playbooks для массового управления серверами.
- Мониторинг через Zabbix, Prometheus или даже простым
htop
+logwatch
.
Выводы и рекомендации
LAMP на CentOS — это надёжно, просто и гибко. Такой стек подойдёт для:
- Собственных сайтов, блогов, интернет-магазинов.
- Тестирования и разработки новых проектов.
- Автоматизации рутинных задач (бэкапы, деплой, мониторинг).
- Обучения и экспериментов с серверными технологиями.
Если хочешь быстро стартовать — используй этот гайд, автоматизируй всё, что можно, и не забывай про безопасность. Для серьёзных проектов лучше брать VPS или выделенный сервер — VPS или dedicated — и держать всё под своим контролем. LAMP — это не только классика, но и отличная база для любых экспериментов и роста. Удачи в настройке, и пусть uptime всегда будет 99.99%!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.