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

Как установить Nginx с PHP5 (PHP-FPM) и поддержкой MySQL на CentOS 6.5

• 5 min read • DevOps • Обновлено 26 Nov 2025
Установка Nginx с PHP5 и MySQL на CentOS 6.5
Установка Nginx с PHP5 и MySQL на CentOS 6.5

Установка Nginx с PHP5 через PHP-FPM и MySQL на CentOS 6.5: подключите репозитории EPEL и Remi, включите приоритеты для yum, установите MySQL и запустите настройку безопасности, затем установите и настройте php-fpm и nginx. Проверяйте работу через phpinfo() и подключение к MySQL. В конце — чеклист и советы по отладке.

Введение

Nginx (произносится «энджин-икс») — свободный высокопроизводительный HTTP-сервер с низким потреблением ресурсов. В этом руководстве показано, как установить Nginx на сервер CentOS 6.5 с поддержкой PHP5 через PHP-FPM и с сервером MySQL. Приведённые команды выполняются под root, используйте sudo при необходимости.

Важно: я не даю гарантии, что этот набор инструкций сработает в вашей среде — адаптируйте под ваши настройки.

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

В примерах используется hostname server1.example.com и IP 192.168.0.100. Замените их на свои значения при необходимости.

2. Включение дополнительных репозиториев

php-fpm недоступен в официальных репозиториях CentOS — он поставляется из репозитория Remi, который зависит от EPEL. Включим оба:

rpm --import https://fedoraproject.org/static/0608B895.txt   
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi  
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Установите дополнение для управления приоритетами:

yum install yum-priorities

Отредактируйте /etc/yum.repos.d/epel.repo и добавьте строку priority=10 в секцию [epel]:

| [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |

Затем аналогично отредактируйте /etc/yum.repos.d/remi.repo: включите секцию [remi] и установите enabled=1 и priority=10:

vi /etc/yum.repos.d/remi.repo

| [remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority |

Примечание: сохраняйте оригинальные строки, если вы не уверены, не удаляйте gpgkey и mirrorlist.

3. Установка MySQL 5

Сначала установим MySQL 5:

yum install mysql mysql-server

Создайте автозапуск для MySQL и запустите службу:

chkconfig --levels 235 mysqld on  
service mysqld start

Проверьте, что сетевые слушатели включены:

netstat -tap | grep mysql

Ожидаемый вывод примерно такой:

[root@server1 ~]# netstat -tap | grep mysql  
tcp        0      0 *:mysql                     *:*                         LISTEN      1279/mysqld         
[root@server1 ~]# 

Далее запустите стандартную утилиту безопасной настройки:

mysql_secure_installation

Пример интерактивной сессии (переведённая подсказка):

[root@server1 ~]# mysql_secure_installation

ПРИМЕЧАНИЕ: РЕКОМЕНДУЕТСЯ ВЫПОЛНЯТЬ ВСЕ ЧАСТИ ЭТОГО СКРИПТА ДЛЯ ВСЕХ MySQL
СЕРВЕРОВ В ПРОИЗВОДСТВЕ! ПОЖАЛУЙСТА, ВНИМАТЕЛЬНО ЧИТАЙТЕ КАЖДЫЙ ШАГ!

Для входа в MySQL для его защиты потребуется текущий пароль root.
Если MySQL только установлен и пароль root не задан, оставьте поле пустым и нажмите Enter.

Enter current password for root (enter for none): <-- НАЖМИТЕ ENTER
OK, successfully used password, moving on...

Set root password? [Y/n] <-- НАЖМИТЕ ENTER
New password: <-- введите_пароль_root_sql
Re-enter new password: <-- повторите_пароль_root_sql
Password updated successfully!
Reloading privilege tables..
... Success!

Remove anonymous users? [Y/n] <-- НАЖМИТЕ ENTER
... Success!

Disallow root login remotely? [Y/n] <-- НАЖМИТЕ ENTER
... Success!

Remove test database and access to it? [Y/n] <-- НАЖМИТЕ ENTER
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reload privilege tables now? [Y/n] <-- НАЖМИТЕ ENTER
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

[root@server1 ~]#

Важно: используйте надёжный пароль для root и храните его в безопасном месте.

4. Установка PHP5 и PHP-FPM (коротко)

После включения репозиториев можно установить php-fpm и пакеты PHP (включая модули для работы с MySQL):

yum --enablerepo=remi install php php-fpm php-mysql php-cli php-common

Затем включите и запустите php-fpm:

chkconfig php-fpm on
service php-fpm start

Проверьте работу php-fpm — он должен слушать unix-сокет или TCP-порт (в зависимости от конфигурации /etc/php-fpm.d/www.conf):

netstat -pl | grep php-fpm

Если php-fpm использует unix-сокет (например /var/run/php-fpm/php-fpm.sock), убедитесь, что права доступа и владелец совпадают с пользователем, под которым работает Nginx.

5. Установка и базовая настройка Nginx (коротко)

Установите nginx:

yum install nginx

Включите автозапуск и запустите nginx:

chkconfig nginx on
service nginx start

Пример конфигурации virtual host для Nginx с поддержкой php-fpm (основная идея):

  • слушать 80 порт
  • корень сайта /usr/share/nginx/html или /var/www/html
  • перенаправлять запросы .php на php-fpm через fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; или 127.0.0.1:9000

Проверьте синтаксис конфигурации nginx:

nginx -t

6. Проверка результата

  1. Создайте тестовый файл /usr/share/nginx/html/info.php с содержимым:
  1. Откройте в браузере http://ваш_сервер/info.php — вы должны увидеть страницу phpinfo с информацией о PHP и соединении с MySQL.

  2. Попробуйте подключиться к MySQL локально через mysql CLI и создать тестовую БД/пользователя.

Когда этот подход не подходит

  • Если вы используете современные приложения, рекомендую установить PHP 7+ вместо PHP5 — PHP5 больше не поддерживается.
  • Если нужна максимальная совместимость с пакетами CentOS 6, рассмотрите MariaDB как замену MySQL.
  • В окружениях с высокой доступностью и контейнерами стоит использовать отдельные контейнеры/сервисы для MySQL, PHP-FPM и Nginx.

Альтернативные подходы

  • Использовать MariaDB (совместимая замена MySQL) из официального репозитория MariaDB.
  • Устанавливать PHP через сборку из исходников или через SCL (Software Collections) для более новой версии PHP на CentOS 6.
  • Разделить роли: Nginx как обратный прокси, Apache с PHP-FPM как backend (редко нужно).

Схема принятия решения (простая)

flowchart TD
  A[Нужен веб-сервер + PHP] --> B{Нужен PHP5?}
  B -- Да --> C[Следовать этому руководству]
  B -- Нет --> D{Нужен PHP7/8?}
  D -- Да --> E[Установить PHP7 из Remi или SCL]
  D -- Нет --> F[Рассмотреть контейнеры / managed services]

Роли и чеклист (кто что проверяет)

  • Администратор системы:

    • Проверил включение репозиториев EPEL и Remi.
    • Установил и запустил mysql, nginx, php-fpm.
    • Настроил автозапуск через chkconfig.
  • Девелопер/QA:

    • Разместил info.php и проверил phpinfo.
    • Выполнил подключение к MySQL из приложения.
  • Инженер по безопасности:

    • Выполнил mysql_secure_installation и проверил правила брандмауэра.
    • Убедился, что root MySQL доступен только с localhost при необходимости.

Критерии приёмки

  • Nginx запущен и успешно отвечает на HTTP-запросы.
  • PHP-файлы обрабатываются через php-fpm (phpinfo показывает FPM и сокет/порт).
  • MySQL принимает локальные соединения и защищён базовыми настройками (пароль root установлен, тестовые анонимные пользователи удалены).

Быстрая отладка (troubleshooting)

  • nginx не стартует: проверьте nginx -t на наличие синтаксических ошибок.
  • 502 Bad Gateway при обращении к PHP: проверьте, что php-fpm запущен и путь в fastcgi_pass соответствует реальному сокету/порту.
  • Невозможно подключиться к MySQL: проверьте service mysqld status и netstat -tap.

Безопасность и рекомендации

  • Обновите систему и пакеты безопасности: yum update.
  • Для продакшена используйте более новые версии ОС и PHP.
  • Ограничьте доступ к административным портам через брандмауэр.

Полезные команды-ссылки (шпаргалка)

  • Проверить сетевые слушатели: netstat -tap
  • Проверить процессы: ps aux | grep php-fpm
  • Проверить конфигурацию nginx: nginx -t
  • Перезапустить сервис: service nginx restart

Факто-бокс

  • Целевая ОС: CentOS 6.5
  • Веб-сервер: Nginx (стандартная сборка из yum)
  • PHP: PHP5 (через Remi)
  • БД: MySQL 5 (стандартные пакеты)

Краткий глоссарий

  • PHP-FPM — FastCGI Process Manager для PHP: отвечает за обработку PHP запросов отдельными рабочими процессами.
  • EPEL/Remi — сторонние репозитории RPM, содержащие дополнительные пакеты для CentOS.

Итог

Следуя этому руководству, вы получите базовую связку Nginx + PHP5 (через PHP-FPM) + MySQL на CentOS 6.5. Для продакшена рекомендуются дополнительные меры безопасности, регулярные обновления и рассмотрение использования современных версий PHP и СУБД.

Важно: оцените необходимость PHP5 — для новых проектов лучше сразу планировать миграцию на PHP7/8.

Поделиться: 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 быстро