PHP, Apache · 4 min read · Jan 01, 2026

Использование PHP5-FPM с Apache2 на OpenSUSE 12.1

Использование PHP5-FPM с Apache2 на OpenSUSE 12.1

Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter

Это руководство показывает, как установить веб-сервер Apache2 на сервере OpenSUSE 12.1 с поддержкой PHP5 (через PHP-FPM) и MySQL. PHP-FPM (FastCGI Process Manager) — это альтернативная реализация PHP FastCGI с дополнительными функциями, полезными для сайтов любого размера, особенно для более загруженных сайтов.

Я не даю никаких гарантий, что это сработает для вас!

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

В этом руководстве я использую имя хоста server1.example.com с IP-адресом 192.168.0.100. Эти настройки могут отличаться для вас, поэтому вам нужно заменить их в соответствующих местах.

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

Нам нужно установить mod_fastcgi позже, который доступен в репозитории, который по умолчанию не включен. Мы можем включить его следующим образом:

zypper --gpg-auto-import-keys addrepo --name "Модули третьих сторон для сервера Apache HTTP. (Apache_openSUSE_12.1)" http://download.opensuse.org/repositories/Apache:/Modules/Apache_openSUSE_12.1/ apache-third-party-12.1

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

Чтобы установить MySQL, мы делаем это:

yast2 -i mysql mysql-client mysql-community-server

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

systemctl enable mysql.service   
systemctl start mysql.service

Чтобы обеспечить безопасность установки MySQL, выполните:

mysql_secure_installation

Теперь вам будет задано несколько вопросов:

server1:~ # mysql_secure_installation

ПРИМЕЧАНИЕ: РЕКОМЕНДУЕТСЯ ЗАПУСКАТЬ ВСЕ ЧАСТИ ЭТОГО СКРИПТА ДЛЯ ВСЕХ MySQL
СЕРВЕРОВ В ПРОИЗВОДСТВЕ! Пожалуйста, внимательно прочитайте каждый шаг!

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

Введите текущий пароль для root (нажмите Enter для отсутствия): <– ENTER
Хорошо, пароль успешно использован, продолжаем…

Установка пароля root гарантирует, что никто не сможет
войти в пользователя root MySQL без надлежащей авторизации.

Установить пароль root? [Y/n] <– Y
Новый пароль: <– введите желаемый пароль root для MySQL
Повторите новый пароль: <– подтвердите этот пароль
Пароль успешно обновлен!
Перезагрузка таблиц привилегий..
… Успех!

По умолчанию установка MySQL имеет анонимного пользователя,
что позволяет любому войти в MySQL, не имея
учетной записи пользователя. Это предназначено только
для тестирования и для того, чтобы установка
проходила немного легче. Вы должны удалить их
перед переходом в производственную среду.

Удалить анонимных пользователей? [Y/n] <– Y
… Успех!

Обычно root должен иметь возможность подключаться
только с ‘localhost’. Это гарантирует, что
кто-то не сможет угадать пароль root из сети.

Запретить удаленный вход root? [Y/n] <– Y
… Успех!

По умолчанию MySQL поставляется с базой данных
с именем ‘test’, к которой может получить доступ
любой. Это также предназначено только для тестирования
и должно быть удалено перед переходом в
производственную среду.

Удалить тестовую базу данных и доступ к ней? [Y/n] <– Y

  • Удаление тестовой базы данных…
    … Успех!
  • Удаление привилегий на тестовую базу данных…
    … Успех!

Перезагрузка таблиц привилегий обеспечит, что
все изменения, сделанные до сих пор,
вступят в силу немедленно.

Перезагрузить таблицы привилегий сейчас? [Y/n] <– Y
… Успех!

Очистка…

Все готово! Если вы выполнили все
вышеуказанные шаги, ваша установка MySQL
должна быть теперь защищена.

Спасибо за использование MySQL!

server1:~ #

Теперь ваша настройка MySQL должна быть защищена.

4 Установка Apache2

Apache2 доступен как пакет OpenSUSE, поэтому мы можем установить его следующим образом:

yast2 -i apache2

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

systemctl enable apache2.service

… и запустите Apache:

systemctl start apache2.service

Теперь направьте ваш браузер на http://192.168.0.100, и вы должны увидеть страницу-заглушку Apache2 (не беспокойтесь о 403 ошибке, это происходит потому, что в корневом каталоге документа нет индексного файла (например, index.html)):

Корневой каталог документа по умолчанию для Apache на OpenSUSE — это /srv/www/htdocs/, а файл конфигурации — /etc/apache2/httpd.conf. Дополнительные конфигурации хранятся в каталоге /etc/apache2/conf.d/.

5 Установка PHP5

Мы можем заставить PHP5 работать в Apache2 через PHP-FPM и модуль mod_fastcgi Apache, который мы устанавливаем следующим образом:

yast -i apache2-mod_fastcgi php5-fpm

Перед тем как запустить PHP-FPM, переименуйте /etc/php5/fpm/php-fpm.conf.default в /etc/php5/fpm/php-fpm.conf:

mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

Измените разрешения каталога сессий PHP:

chmod 1733 /var/lib/php5

Затем откройте /etc/php5/fpm/php-fpm.conf…

vi /etc/php5/fpm/php-fpm.conf

… и измените error_log на /var/log/php-fpm.log и раскомментируйте pm.min_spare_servers и pm.max_spare_servers:

| [...] error_log = /var/log/php-fpm.log [...] pm.min_spare_servers = 5 [...] pm.max_spare_servers = 35 [...] |

Затем создайте системные ссылки для автозапуска php-fpm и запустите его:

systemctl enable php-fpm.service   
systemctl start php-fpm.service

PHP-FPM — это демон, который запускает сервер FastCGI на порту 9000, как вы можете видеть в выводе

netstat -tapn
server1:~ # netstat -tapn  
Активные интернет-соединения (серверы и установленные)  
Протокол  Получено  Отправлено  Локальный адрес           Удаленный адрес         Состояние       PID/Имя программы  
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2329/nginx  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1204/sshd  
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      2511/php-fpm.conf)  
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2059/mysqld  
tcp        0      0 192.168.0.100:22       192.168.0.199:1632      ESTABLISHED 1284/0  
tcp        0      0 :::22                    :::*                     LISTEN      1204/sshd  
server1:~ #

Затем включите следующие модули Apache…

a2enmod actions  
a2enmod fastcgi  
a2enmod alias

… отключите mod_php5…

a2dismod php5

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

systemctl restart apache2.service
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.