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

Использование PHP5-FPM с Apache2 на OpenSUSE 12.1 - Страница 2

6 Настройка Apache

Чтобы Apache работал с PHP-FPM, нам нужна следующая конфигурация:

| AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization |

(Чтобы узнать больше о директиве FastCgiExternalServer, посмотрите на http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer.)

Вы можете поместить это в глобальную конфигурацию Apache (чтобы это было включено для всех виртуальных хостов), например, в /etc/apache2/conf.d/mod_fastcgi.conf, или вы можете разместить это в каждом виртуальном хосте, который должен использовать PHP-FPM. Я хочу использовать PHP-FPM со всеми виртуальными хостами, поэтому я открываю /etc/apache2/conf.d/mod_fastcgi.conf…

vi /etc/apache2/conf.d/mod_fastcgi.conf

… и добавляю следующий раздел в конец:

| [...] AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization |

Директория /usr/lib/cgi-bin/ должна существовать, поэтому мы создаем ее следующим образом:

mkdir /usr/lib/cgi-bin/

Перезапустите Apache после этого:

systemctl restart apache2.service

Теперь создайте следующий PHP файл в корневом каталоге документа /srv/www/htdocs стандартного виртуального хоста Apache:

vi /srv/www/htdocs/info.php

| |

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

Как вы видите, PHP5 работает, и он работает через FPM/FastCGI, как показано в строке Server API. Если вы прокрутите вниз, вы увидите все модули, которые уже включены в PHP5. MySQL не указан, что означает, что у нас еще нет поддержки MySQL в PHP5.

7 Получение поддержки MySQL в PHP5

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

yast2 -i php5-mysql php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm

Теперь перезагрузите PHP-FPM:

systemctl reload php-fpm.service

Теперь перезагрузите http://192.168.0.100/info.php в вашем браузере и снова прокрутите вниз до раздела модулей. Теперь вы должны найти много новых модулей, включая модуль MySQL:

8 phpMyAdmin

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

phpMyAdmin можно установить следующим образом:

yast2 -i phpMyAdmin

Чтобы убедиться, что мы можем получить доступ к phpMyAdmin со всех сайтов, созданных через ISPConfig позже, используя /phpmyadmin (например, http://www.example.com/phpmyadmin) и /phpMyAdmin (например, http://www.example.com/phpMyAdmin), откройте /etc/apache2/conf.d/phpMyAdmin.conf…

vi /etc/apache2/conf.d/phpMyAdmin.conf

… и добавьте следующие два алиаса сразу в начале:

| Alias /phpMyAdmin /srv/www/htdocs/phpMyAdmin Alias /phpmyadmin /srv/www/htdocs/phpMyAdmin [...] |

Перезапустите Apache и перезагрузите PHP-FPM:

systemctl restart apache2.service  
systemctl reload php-fpm.service

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

9 Настройка PHP-FPM для использования Unix-сокета

По умолчанию PHP-FPM слушает на порту 9000 на 127.0.0.1. Также возможно сделать так, чтобы PHP-FPM использовал Unix-сокет, что избегает накладных расходов TCP. Для этого откройте /etc/php5/fpm/php-fpm.conf…

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

… и измените строку listen следующим образом:

| [...] ;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock [...] |

Также установите владельца, группу и разрешения сокета следующим образом:

| [...] ; Установите разрешения для unix-сокета, если он используется. В Linux разрешения на чтение/запись ; должны быть установлены, чтобы разрешить подключения от веб-сервера. Многие ; системы, производные от BSD, позволяют подключения независимо от разрешений. ; Значения по умолчанию: пользователь и группа установлены как работающий пользователь ; режим установлен на 0666 listen.owner = nobody listen.group = nobody listen.mode = 0666 [...] |

Затем перезагрузите PHP-FPM:

systemctl reload php-fpm.service

Затем пройдите через вашу конфигурацию Apache и все ваши виртуальные хосты и измените строку FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization на FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization, например, так:

vi /etc/apache2/conf.d/mod_fastcgi.conf

| [...] AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization |

Наконец, перезагрузите Apache:

systemctl reload apache2.service

10 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.