Установка LAMP на CentOS 7 — Apache, PHP и MariaDB
Содержание
- 1 Предварительная заметка
- 2 Установка MariaDB (MySQL)
- 3 Установка Apache
- 4 Установка PHP (5.4, 7.0, 7.1)
- 4.1 Установка PHP 7.0 (опционально)
- 4.2 Установка PHP 7.1 (опционально)
- 5 Тестирование PHP
- 6 Подключение MySQL в PHP и популярные модули
- 7 Установка phpMyAdmin
- 8 Виртуальная машина (OVA/OVF)
- 9 Ссылки
Важно: замените примерные значения (hostname, IP, пароли) на свои перед применением команд.
1 Предварительная заметка
В примерах используется hostname server1.example.com и IP 192.168.1.100. Замените эти значения на свои там, где это необходимо.
Добавим репозиторий EPEL, чтобы затем установить последнюю версию phpMyAdmin:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-releaseДля удобного редактирования установим nano (если вы предпочитаете vi — можете пропустить этот шаг):
yum -y install nano2 Установка MySQL / MariaDB
MariaDB — форк MySQL от оригинального разработчика Monty Widenius. Он совместим с MySQL и часто используется вместо него. Установим MariaDB через yum:
yum -y install mariadb-server mariadbСоздаём и включаем автозапуск сервиса и запускаем службу:
systemctl start mariadb.service
systemctl enable mariadb.serviceЗащитим установку и зададим пароль для root:
mysql_secure_installationПример интерактивного запуска (подсказки в скрипте — просто следуйте им):
[root@server1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): <--ENTER
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n]
New password: <--yourmariadbpassword
Re-enter new password: <--yourmariadbpassword
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] <--ENTER
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <--ENTER
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] <--ENTER
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <--ENTER
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@server1 ~]#Примечание: при развёртывании в продакшн дополнительно настройте бэкапы и мониторинг баз данных.
3 Установка Apache
CentOS 7 содержит Apache 2.4 в стандартных репозиториях, поэтому установить его просто:
yum -y install httpdВот пример вывода установки (скриншот):
Включаем и запускаем службу Apache:
systemctl start httpd.service
systemctl enable httpd.serviceОткроем HTTP (80) и HTTPS (443) в firewall (firewalld):
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reloadОткройте в браузере http://192.168.1.100 — должна отображаться стартовая страница Apache:

Важно: если сервер находится за NAT, пробросьте порты маршрутизатора и проверьте SELinux и правила iptables / firewalld.
4 Установка PHP
В CentOS по умолчанию идёт старая версия PHP 5.4. Чтобы установить современные ветки PHP (7.0, 7.1), подключим репозиторий Remi.
Добавим репозиторий Remi:
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpmУстановим yum-utils (нужен yum-config-manager):
yum -y install yum-utilsОбновим пакеты:
yum updateВыберите версию PHP, которая вам нужна. Для PHP 5.4 достаточно установить пакет php. Для PHP 7.0 или 7.1 активируйте соответствующий репозиторий Remi и установите пакеты.
Чтобы установить PHP 5.4:
yum -y install php4.1 Установка PHP 7.0 (опционально)
yum-config-manager --enable remi-php70
yum -y install php php-opcache4.2 Установка PHP 7.1 (опционально)
yum-config-manager --enable remi-php71
yum -y install php php-opcacheВ примерах и в виртуальной машине используется PHP 7.1. После установки перезапустите Apache:
systemctl restart httpd.service5 Тестирование PHP и получение сведений о конфигурации
Документный корень по умолчанию — /var/www/html. Создадим файл info.php и откроем его в браузере для проверки.
nano /var/www/html/info.phpВставьте в файл:
Откройте http://192.168.1.100/info.php:

Вы увидите версию PHP и активные модули. Если MySQL не отображается, нужно установить соответствующие расширения PHP.
Важно: не оставляйте phpinfo() на публичных серверах — удалите файл после тестирования.
6 Подключение MySQL в PHP и популярные модули
Для поддержки MySQL в PHP установите расширение php-mysql (название может отличаться в зависимости от репозитория и версии PHP). Поиск доступных модулей:
yum search phpУстановим общие модули, часто требуемые CMS (WordPress, Joomla, Drupal):
yum -y install php-mysql
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-develЗатем перезапустите Apache:
systemctl restart httpd.serviceПерезагрузите /info.php и проверьте секцию модулей — должны появиться curl, mbstring и т.д.
Если файл info.php больше не нужен, удалите его:
rm /var/www/html/info.php7 Установка phpMyAdmin
phpMyAdmin — веб‑интерфейс для управления базами данных.
yum -y install phpMyAdminОтредактируйте конфигурацию Apache, чтобы разрешить доступ не только с localhost (в примере мы комментируем требование по IP и добавляем “Require all granted”):
nano /etc/httpd/conf.d/phpMyAdmin.confВ файле внесите изменения так, чтобы блок для Apache 2.4 выглядел примерно так:
[...]
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
AddDefaultCharset UTF-8
Require all granted
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
Options none
AllowOverride Limit
Require all granted
[...] Сменим метод аутентификации в phpMyAdmin на http (подстраивайтесь под свою политику безопасности):
nano /etc/phpMyAdmin/config.inc.phpИзмените строку:
$cfg['Servers'][$i]['auth_type'] = 'http';Перезапустите Apache:
systemctl restart httpd.serviceТеперь phpMyAdmin доступен по адресу http://192.168.1.100/phpmyadmin/:

Важно: ограничьте доступ к phpMyAdmin через firewall, HTTP‑аутентификацию или VPN при работе в публичных сетях.
8 Загрузка как виртуальная машина
Этот набор доступен в виде виртуальной машины в формате OVA/OVF (VMware, VirtualBox) для подписчиков howtoforge.
Данные для входа в VM (по умолчанию — обязательно смените пароли при первом входе):
- root Linux: howtoforge
- root MySQL: howtoforge
- IP VM: 192.168.1.100
Примечание: смените все пароли и проверьте сетевые настройки при развёртывании.
9 Ссылки
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- MySQL: http://www.mysql.com/
- CentOS: http://www.centos.org/
- phpMyAdmin: http://www.phpmyadmin.net/
Резюме и рекомендации
- Установите MariaDB и выполните mysql_secure_installation сразу после установки.
- Используйте Remi для современных версий PHP (7.x).
- Установите распространённые PHP‑модули для CMS (gd, mbstring, xml, curl и т.д.).
- Ограничьте доступ к phpMyAdmin и удалите phpinfo.php после теста.
Чек‑лист для ролей
Администратор:
- Установить и запустить mariadb и httpd.
- Настроить автозапуск systemctl enable.
- Защитить MariaDB (mysql_secure_installation).
- Открыть только нужные порты в firewall.
- Ограничить доступ к phpMyAdmin.
Разработчик:
- Установить нужную версию PHP через Remi.
- Убедиться в наличии расширений (pdo, mysqli, mbstring, xml).
- Проверить phpinfo() на локальном стенде.
- Настроить db user с минимальными правами для приложения.
Оператор бэкапов:
- Настроить регулярный бэкап дампов баз (mysqldump или механизмы репликации).
- Хранить резервные копии вне основного сервера.
Безопасность и жёсткие рекомендации
- Удалите демонстрационные файлы (info.php).
- Отключите доступ к phpMyAdmin извне или защитите его IP/HTTP auth/VPN.
- Для продакшна используйте отдельного пользователя БД с ограниченными правами.
- Настройте SELinux и убедитесь, что контексты файлов корректны (restorecon при необходимости).
- Регулярно обновляйте систему и зависимости (
yum update).
Устранение неполадок — когда что может не работать
- Apache не запускается: проверьте
journalctl -u httpdи конфигурационные файлы в /etc/httpd/conf.d/. - PHP не обрабатывает .php: проверьте, установлен ли модуль php для Apache и перезапустите httpd.
- Нет соединения MySQL из PHP: установите php-mysql (или соответствующее расширение для вашей версии PHP) и перезапустите Apache.
- SELinux блокирует доступ: проверьте AVC-политику через
ausearch -m avc -ts recentи установите нужные boolean или метки.
Короткая методология развёртывания (mini‑methodology)
- Подготовка ОС: обновление пакетов и установка EPEL/Remi.
- Установка DB и её базовая защита.
- Установка Apache и открытие портов.
- Установка PHP нужной версии и модулей.
- Тестирование (phpinfo) и настройка приложений.
- Жёсткая настройка безопасности и бэкапы.
Глоссарий (1 строка)
- LAMP — Linux, Apache, MySQL/MariaDB, PHP; классический стек для web‑приложений.
Социальный превью (рекомендации)
OG Title: Установка LAMP на CentOS 7 — Apache, PHP и MariaDB
OG Description: Быстрая пошаговая инструкция: Apache, MariaDB, PHP 7.x и phpMyAdmin на CentOS 7, с командами и советами по безопасности.
Критерии приёмки
- Apache доступен по HTTP/HTTPS.
- MariaDB работает и защищён базовый root‑доступ.
- PHP загружает расширение для MySQL и показывает корректный phpinfo.
- phpMyAdmin доступен и защищён по политике вашей сети.
Конец статьи.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента