Установка LAMP · 7 min read · Dec 06, 2025

Как установить Apache, PHP 7.2 и MySQL на CentOS 7.4 (LAMP)

Этот учебник показывает, как установить веб-сервер Apache на сервере CentOS 7 с PHP (mod_php) и базой данных MySQL. Аббревиатура LAMP расшифровывается как L инукс, A pache, M ySQL, P HP.

Этот обновленный учебник показывает установку последних версий PHP (7.0, 7.1 и 7.2) на CentOS 7.4.

1 Предварительная заметка

В этом учебнике я использую имя хоста 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 от оригинального разработчика MySQL Монти Уидениуса. MariaDB совместима с MySQL, и я выбрал использовать MariaDB здесь вместо MySQL. Выполните эту команду, чтобы установить MariaDB с помощью yum:

yum -y install mariadb-server mariadb

Затем мы создаем системные ссылки для автозагрузки MySQL (чтобы MySQL запускался автоматически при загрузке системы) и запускаем сервер MySQL:

systemctl start mariadb.service  
systemctl enable mariadb.service

Установите пароли для учетной записи root MySQL:

mysql_secure_installation
[root@server1 ~]# mysql_secure_installation  
  
NOTE: РЕКОМЕНДУЕТСЯ ЗАПУСКАТЬ ВСЕ ЧАСТИ ЭТОГО СКРИПТА ДЛЯ ВСЕХ СЕРВЕРОВ MariaDB В ПРОИЗВОДСТВЕННОМ ИСПОЛЬЗОВАНИИ!  Пожалуйста, внимательно прочитайте каждый шаг!  
  
Чтобы войти в MariaDB и обеспечить ее безопасность, нам понадобится текущий  
пароль для пользователя root. Если вы только что установили MariaDB и  
еще не установили пароль root, пароль будет пустым,  
поэтому вам просто нужно нажать Enter здесь.  
  
Введите текущий пароль для root (нажмите Enter для отсутствия): <--ENTER  
OK, пароль успешно использован, продолжаем...  
  
Установка пароля root гарантирует, что никто не сможет войти в учетную запись root MariaDB  
без надлежащей авторизации.  
  
Установить пароль root? [Y/n]   
Новый пароль: <--yourmariadbpassword  
Повторите новый пароль: <--yourmariadbpassword  
Пароль успешно обновлен!  
Перезагрузка таблиц привилегий..  
 ... Успех!  
  
По умолчанию установка MariaDB имеет анонимного пользователя, позволяя любому  
войти в MariaDB без необходимости создания учетной записи пользователя для  
них. Это предназначено только для тестирования и для того, чтобы установка  
проходила немного легче. Вы должны удалить их перед переходом в  
производственную среду.  
  
Удалить анонимных пользователей? [Y/n] <--ENTER  
 ... Успех!  
  
Обычно root должен иметь возможность подключаться только с 'localhost'.  
Это гарантирует, что кто-то не сможет угадать пароль root из сети.  
  
Запретить удаленный вход root? [Y/n] <--ENTER  
 ... Успех!  
  
По умолчанию MariaDB поставляется с базой данных с именем 'test', к которой любой может  
получить доступ. Это также предназначено только для тестирования и должно быть удалено  
перед переходом в производственную среду.  
  
Удалить тестовую базу данных и доступ к ней? [Y/n] <--ENTER  
 - Удаление тестовой базы данных...  
 ... Успех!  
 - Удаление привилегий на тестовую базу данных...  
 ... Успех!  
  
Перезагрузка таблиц привилегий гарантирует, что все изменения, сделанные до сих пор,  
вступят в силу немедленно.  
  
Перезагрузить таблицы привилегий сейчас? [Y/n] <--ENTER  
 ... Успех!  
  
Очистка...  
  
Все готово! Если вы выполнили все вышеперечисленные шаги, ваша установка MariaDB  
теперь должна быть безопасной.  
  
Спасибо за использование MariaDB!  
[root@server1 ~]#

## 3 Установка Apache

CentOS 7 поставляется с Apache 2.4. Apache доступен напрямую как пакет CentOS 7, поэтому мы можем установить его следующим образом:

yum -y install httpd


Вот скриншот процесса установки.

![Установка веб-сервера Apache на CentOS](/files/e10c2b3e-d642-4acb-b0b8-4838f2f5d35b.png)

Теперь настройте вашу систему для автоматического запуска Apache при загрузке...

systemctl start httpd.service

systemctl enable httpd.service


Чтобы иметь возможность получить доступ к веб-серверу извне, нам нужно открыть порты HTTP (80) и HTTPS (443) в брандмауэре. По умолчанию брандмауэр на CentOS - это firewalld, который можно настроить с помощью команды firewalld-cmd.

firewall-cmd –permanent –zone=public –add-service=http
firewall-cmd –permanent –zone=public –add-service=https
firewall-cmd –reload


Теперь направьте ваш браузер на IP-адрес вашего сервера, в моем случае http://192.168.1.100, и вы должны увидеть страницу-заглушку Apache:

![Веб-сервер Apache запущен на CentOS 7](/files/8cec8f2a-56c2-4d29-a22a-59f28e11a677.png)

## 4 Установка PHP

Версия PHP, которая поставляется с CentOS по умолчанию, довольно старая (PHP 5.4). Поэтому я покажу вам в этой главе несколько вариантов установки более новых версий PHP, таких как PHP 7.0 или 7.1 из репозитория Remi.

Добавьте репозиторий Remi CentOS.

rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm


Установите yum-utils, так как нам нужна утилита yum-config-manager.

yum -y install yum-utils


и выполните обновление yum

yum update


Теперь вам нужно выбрать, какую версию PHP вы хотите использовать на сервере. Если вы хотите использовать PHP 5.4, то переходите к главе 4.1. Чтобы установить PHP 7.0, следуйте командам в главе 4.2, для PHP 7.1 - глава 4.3, а для PHP 7.1 используйте главу 4.4. Следуйте только одной из глав 4.x, а не всем, так как вы можете использовать только одну версию PHP одновременно с Apache mod_php.

### 4.1 Установка PHP 5.4

Чтобы установить PHP 5.4, выполните эту команду:

yum -y install php


### 4.2 Установка PHP 7.0

Мы можем установить PHP 7.0 и модуль Apache PHP 7.0 следующим образом:

yum-config-manager –enable remi-php70

yum -y install php php-opcache


### 4.3 Установка PHP 7.1

Если вы хотите использовать PHP 7.1, используйте:

yum-config-manager –enable remi-php71

yum -y install php php-opcache


### 4.4 Установка PHP 7.2

Если вы хотите использовать PHP 7.2, используйте:

yum-config-manager –enable remi-php72

yum -y install php php-opcache


В этом примере и в загружаемой виртуальной машине я буду использовать PHP 7.2.

Мы должны перезапустить Apache, чтобы применить изменения:

systemctl restart httpd.service


## 5 Тестирование PHP / Получение информации о вашей установке PHP

Корневая директория по умолчанию для веб-сайта - /var/www/html. Мы создадим небольшой PHP-файл (info.php) в этой директории и вызовем его в браузере, чтобы протестировать установку PHP. Файл отобразит множество полезных деталей о нашей установке PHP, таких как установленная версия PHP.

nano /var/www/html/info.php


Теперь мы вызываем этот файл в браузере (например, http://192.168.1.100/info.php):

![PHP 7.2 установлен на CentOS 7](/files/e8b6139e-b42c-436a-8ca6-9768fbe81358.png)

Как вы видите, PHP 7.2 работает, и он работает через обработчик Apache 2.0, как показано в строке Server API. Если вы прокрутите вниз, вы увидите все модули, которые уже включены в PHP. MySQL там не указан, что означает, что у нас еще нет поддержки MySQL в PHP.

## 6 Получение поддержки MySQL в PHP

Чтобы получить поддержку MySQL в PHP, мы можем установить пакет php-mysqlnd. Также разумно установить некоторые другие модули PHP, так как они могут понадобиться для ваших приложений. Вы можете искать доступные модули PHP5 следующим образом:

yum search php


Выберите те, которые вам нужны, и установите их следующим образом:

yum -y install php-mysqlnd php-pdo


На следующем шаге я установлю некоторые общие модули PHP, которые требуются системам CMS, таким как Wordpress, Joomla и Drupal:

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


Теперь обновите http://192.168.1.100/info.php в вашем браузере и прокрутите вниз до раздела модулей снова. Теперь вы должны увидеть множество новых модулей, таких как curl и т.д.: 

![Поддержка MySQL добавлена в PHP 7.2 на CentOS](/files/07c9b286-5edf-466d-914a-c49a03461cb3.png)

Если вам больше не нужен вывод информации о PHP, удалите этот файл по соображениям безопасности.

rm /var/www/html/info.php


## 7 Установка phpMyAdmin

phpMyAdmin - это веб-интерфейс, через который вы можете управлять своими базами данных MySQL.  
phpMyAdmin теперь можно установить следующим образом:

yum -y install phpMyAdmin


Теперь мы настраиваем phpMyAdmin. Мы изменяем конфигурацию Apache так, чтобы phpMyAdmin разрешал подключения не только с localhost (закомментировав блок  и добавив строку 'Require all granted'):

nano /etc/httpd/conf.d/phpMyAdmin.conf

[…]
Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin

AddDefaultCharset UTF-8


# Apache 2.4

Require all granted


# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1

    Options none
    AllowOverride Limit
    Require all granted

[…]


Далее мы изменяем метод аутентификации в phpMyAdmin с cookie на http:

nano /etc/phpMyAdmin/config.inc.php

[…]
$cfg[‘Servers’][$i][‘auth_type’] = ‘http’; // Метод аутентификации (config, http или cookie)?
[…]


Перезапустите Apache:

systemctl restart httpd.service


После этого вы можете получить доступ к phpMyAdmin по адресу http://192.168.1.100/phpmyadmin/:

![PHPMyAdmin установлен на CentOS 7.4](/files/e052d58a-22bf-4759-9da1-aaca6e940c94.png)

## 8 Скачивание в виде виртуальной машины

Эта настройка доступна для загрузки в виде виртуальной машины в формате ova/ovf (совместим с VMWare и Virtualbox) для подписчиков howtoforge.

Данные для входа в виртуальную машину

- Пароль root для Linux: howtoforge.
- Пароль root для MySQL: howtoforge

Пожалуйста, измените оба пароля при первом входе.

- IP-адрес виртуальной машины: 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/
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.