Гид по технологиям

Установка LAMP на CentOS 7 — Apache, PHP и MariaDB

• 6 min read • Серверы • Обновлено 27 Nov 2025
Установка LAMP на CentOS 7 — Apache, PHP, MariaDB
Установка 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 nano

2 Установка 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](/files/5e9e9ebb-ab9e-464e-94a3-318e860b0f77.png)

Включаем и запускаем службу 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:

Apache запущен на CentOS 7

Важно: если сервер находится за 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 php

4.1 Установка PHP 7.0 (опционально)

yum-config-manager --enable remi-php70

yum -y install php php-opcache

4.2 Установка PHP 7.1 (опционально)

yum-config-manager --enable remi-php71

yum -y install php php-opcache

В примерах и в виртуальной машине используется PHP 7.1. После установки перезапустите Apache:

systemctl restart httpd.service

5 Тестирование PHP и получение сведений о конфигурации

Документный корень по умолчанию — /var/www/html. Создадим файл info.php и откроем его в браузере для проверки.

nano /var/www/html/info.php

Вставьте в файл:

Откройте http://192.168.1.100/info.php:

PHP 7.1 на CentOS 7

Вы увидите версию 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 и т.д.

![CentOS 7 с PHP 7.1 и поддержкой MySQL](/files/87ace7c9-9d98-4fcc-be5e-b893465fe8b0.png)

Если файл info.php больше не нужен, удалите его:

rm /var/www/html/info.php

7 Установка 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 на CentOS 7

Важно: ограничьте доступ к phpMyAdmin через firewall, HTTP‑аутентификацию или VPN при работе в публичных сетях.

8 Загрузка как виртуальная машина

Этот набор доступен в виде виртуальной машины в формате OVA/OVF (VMware, VirtualBox) для подписчиков howtoforge.

Данные для входа в VM (по умолчанию — обязательно смените пароли при первом входе):

  • root Linux: howtoforge
  • root MySQL: howtoforge
  • IP VM: 192.168.1.100

Примечание: смените все пароли и проверьте сетевые настройки при развёртывании.

9 Ссылки


Резюме и рекомендации

  • Установите 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)

  1. Подготовка ОС: обновление пакетов и установка EPEL/Remi.
  2. Установка DB и её базовая защита.
  3. Установка Apache и открытие портов.
  4. Установка PHP нужной версии и модулей.
  5. Тестирование (phpinfo) и настройка приложений.
  6. Жёсткая настройка безопасности и бэкапы.

Глоссарий (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 доступен и защищён по политике вашей сети.

Конец статьи.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро