УДК 004.45
Самокиш А.В. студент 4 курса
факультет информационных систем и технологий Поволжский Государственный Университет Телекоммуникаций и Информатики
Россия, г. Самара
Samokish A. V. 4 year student Faculty of Information Systems and Technologies Volga State University of Telecommunications and Informatics
Russia, Samara city НАСТРОЙКА РЕЖИМА РАБОТЫ PHP КАК PHP-FPM Аннотация
В данной статье рассматривается настройка режима работы PHP как PHP-FPM. Описаны основные директивы и этапы настройки.
Ключевые слова: PHP, PHP-FPM, Nginx, Apache, FastCGI, root.
CONFIGURING THE OPERATING MODE OF PHP AS PHP-FPM Annotation
This article discusses how to configure the PHP operating mode as PHP-FPM. Describe the basic guidelines and stages of customization. Keywords: PHP, PHP-FPM, Nginx, Apache, FastCGI, root.
FastCGI Process Manager, "Менеджер процессов FastCGI". Это альтернативная реализация FastCGI режима в PHP с несколькими дополнительными возможностями, которые обычно используются для высоконагруженных сайтов.
Изначально PHP-FPM представлял собой набор патчей, устранявших ряд проблем, мешающих полноценно использовать PHP в режиме FastCGI. С версии PHP 5.3 набор патчей включён в ядро, а дополнительные возможности PHP-FPM включаются флагом при компиляции.
PHP-FPM используется в основном в связке с Nginx, без установки Apache.
Приступим к настройке PHP-FPM(Nginx) для третьего сайта.
Для начала установим php-fpm:
[root@testserver www]# yum install php-fpm
После чего произведем его запуск:
[root@testserver www]# service php-fpm start
Starting php-fpm: [ OK ]
Отключаем веб-сервер Apache, т.к. в данный момент оба веб-сервера(Apache и Nginx) используют для своей работы порт 80. [root@testserver www]# service httpd stop
Stopping httpd: [ OK ]
Запускаем Nginx и убеждаемся, что apache освободил порт 80: [root@testserver www]# service nginx start Starting nginx: [ OK ]
В директории с конфигурационными файлами Nginx (/etc/nginx/conf.d/) создадим конфигурационный файл для третьего сайта sub2.site1.ru.conf, который будет содержать директивы: server {
server_name sub2.site1.ru;
access_log /var/log/nginx/sub2.site1 .ru-access.log; error_log /var/log/nginx/sub2.site1.ru-error.log; root /var/www/www-root/data/www/sub2.site1.ru; location / {
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?q=$uri&$args; }
location ~ .php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/www-
root/data/www/ sub2. site1.ru$fastcgi_script_name; }
}
Описание некоторых используемых директив:
- server_name - эта директива определяет имя хоста.
- root - данная директива устанавливает каталог, где находятся файлы сайта для обработки ^тх(аналогична DocumentRoot).
- fastcgi_index - задаёт имя файла, который при создании переменной $fastcgi_script_name будет добавляться после URI, если URI заканчивается слэшем.
- fastcgi_pass - задаёт адрес FastCGI-сервера. Адрес может быть указан в виде доменного имени или IP-адреса и порта.
- fastcgi_param - задает параметр, который будет передаваться FastCGI-серверу. В качестве значения можно использовать текст, переменные и их комбинации. Директивы наследуются с предыдущего уровня при условии, что на данном уровне не описаны свои директивы fastcgi_param.
В файле конфигурации Nginx (/etc/nginx/nginx.conf) раскомментируем строку "include /ete/nginx/conf.d/*.conf;", чтобы подключить созданный файл конфигурации sub2.site1.ru.conf. Перезапускам Nginx:
[root@testserver www]# service nginx restart Stopping nginx: [ OK ]
Starting nginx: [ OK ]
Проверим результат проведенной работы:
PHP Version 5.3.3
System Linux testserver.ru 2.6.32-042stabl23.2 #1 SMP Men Apr 17 17:27:00 MSK 2017 X86 64
Build Date Mar 22 2017 12:23:01
Config u re Comm and './configure' '—bLilld = x36 64-redhat-linux-gnu' '—host=x06 64-redhat-llnux-gnu' '—1target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/u5r' '—exec-prefix =/usr' '—blndir=/usr/bin' '—sbindir=/usr/sbin' '—sysconfdir=/etc' '—datadir=Aisr/share' '—includedir—/usr/include '—Iibdir=/usr/lib64' '—I i b ex ec d i r=/u sr/l ibexec' '—local stated i r=/va r' 1 —sh a red st ated i r=/va r/l i b1 '—mandir=Aisr/share/man' '—¡nfodir=/usr/sh a re/info' '—cache-file=../config.cache' '—with-llbdir=lib64' '—wlth-config-file-path=/etc' '—with-config-file-scan-dir=/etc/php.d' '—disable-debug' '— with-pic' '-disable-rpath' '—without-pear1 '—with-bz2" '—with-exec-dir=/Lisr/bln' '—with-freetype-dir=/usr' '—w it h -p n g -d i r=/u sr' ' - w ¡t h-x p m -d i r=/u sr' '—enable-gd-nat v/e-ttf' '—without-gdbm' '—with-gettext' '—with-gmp' '—with-icon v' '—■with-jpeg-dir=/usr1 '—with-openssl' '—with-pcre-regex=/usr' '— with-zlib' '—with-layout—GNU' '— enable-exif' '—enable-ftp' '—enable-magic-quotes' '—enable-sackets' '—enable-sysvsem' '—enable-sysvshm' '—enable-sysvmsg' '—wlth-kerheros' '—enable-u cd-snmp-hack' '—enable-shmop' '—enable-calendar' '—with out-sq lite' ■—with-libxml-dir=/usr' ■—enable-xml '—with-system-tzdata' '— enable-fpm' '—with Quint ysql '—without-gd' '—disable-dom' '—disable-dba' '—without-unixODBC '—disable-pdo' '—disable-xmlreader' '— disable-xmlwriter1 '— without-sqlite3' '—disable-phar' '—disable-fileinfo' '—disable-json' '—without-pspell' '—disable-wddx' '—without-curl' '—disable-posix' '—disable-sysvmsg' '—disabie-sysvshm' '—disable-sysvsem'
Server API FPM/FastCGI
Virtual Directory Su pport disabled
Con fig u ration File (php.ini) Path /etc
Loaded Config u ration File /etc/php.ini
Scan this dir for additional .ini files /etc/php. d
Additional .ini files parsed /etc/php.d/curl.inl, /etc/php.d/fileinfo.lnlr /etc/php.d/json.ini, /etc/php.d /mysql.ini, /etc/php.d/mysqli.ini, /etc/php.dl/pdo.Ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo sqllte.ini, /etc/php.d/phar.ini, /etc/php.d/sqlite3.ini, /etc/php.d /zip.in!
PHP API 20090626
PHP Extension 20090626
Zend Extension 220090626
Рис. 1 - Конфигурация PHP(PHP-FPM) Значение FPM/FastCGI в строке Server API указывает на то, что сайт в текущий момент работает в режиме модуля PHP-FPM(Nginx FastCGI).
Использованные источники:
1. Хоккинс, С. Администрирование Web-сервера Apache и руководство по электронной коммерции - Вильямс, 2000. - 330 с.
2. Айвалиотис, Д. Администрирование сервера Nginx - ДМК Пресс, 2013. -288 с.