Настройка режима работы PHP как PHP-FPM
Автор: Самокиш А.В.
Журнал: Экономика и социум @ekonomika-socium
Рубрика: Информационные и коммуникативные технологии
Статья в выпуске: 7 (38), 2017 года.
Бесплатный доступ
В данной статье рассматривается настройка режима работы PHP как PHP-FPM. Описаны основные директивы и этапы настройки.
Короткий адрес: https://sciup.org/140124449
IDR: 140124449
Текст научной статьи Настройка режима работы PHP как PHP-FPM
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 ]
} location ~ .php$ { include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
}
Описание некоторых используемых директив:
-
- server_name – эта директива определяет имя хоста.
-
- root - данная директива устанавливает каталог, где находятся файлы сайта для обработки Nginx(аналогична DocumentRoot).
-
- fastcgi_index – задаёт имя файла, который при создании переменной $fastcgi_script_name будет добавляться после URI, если URI заканчивается слэшем.
-
- fastcgi_pass – задаёт адрес FastCGI-сервера. Адрес может быть указан в виде доменного имени или IP-адреса и порта.
-
- fastcgi_param – задает параметр, который будет передаваться FastCGI-серверу. В качестве значения можно использовать текст, переменные и их комбинации. Директивы наследуются с предыдущего уровня при условии, что на данном уровне не описаны свои директивы fastcgi_param.
Перезапускам 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 Mon Apr 17 17:27:00 MSK 2017 x86_64 |
Build Date |
Mar 22 2017 12:28:01 |
Configure Command |
' ./c onfi g u re' '—b u i 1 d=x8 6_6 4-red h at-li n u x-g n u1 '—host = x8 6_64-red h at-lin ux-g n u' '—target=x86_64-redhat-linux-gnu' '—program-prefix=' '—prefix=/u5r' '—exec-prefix=/usr' '—bindir=/usr/bin' '—sbindir=/usr/sbin’ ’—sysconfdir=/etc' '—datadir=/usr/share' '—includedir=/usr/inelude' '--Iibdir=/usr/lib64' '—libexecdir=/usr/libexec' '--localstatedir=/var' '—shared stated ir=/var/lib' ’—mandir=/usr/share/man' '—infodir=/usr/share/info' '—cache-file=../config.cache' '—with-libdir=lib64' '--with '—without-gdbm' '—with-gettext' '—with-gmp' '—with-iconv' '—with-jpeg-dir=/usr' '—with-open ssl' '—with-pcre-regex=/usr' '—with-zlib' '—with-layout=GNU' '-enable-exif '-enable-ftp' '-enable-magic-quotes' '—enable-sockets' '—enable-sysvsem' '—enable-sysvshm' '—enable-sysvmsg' '—with-kerb eros' '—enable-ucd-snmp-hack' '—enable-shmop' '-enable-calendar' '—without-sqlite' '—with-libxml-dir=/usr' '-enable-xml' '—with-system-tzdata' '—enable-fpm' '—without-mysql' '—without-gd' '—disable-dom' '—disable-dba' '—without-unixODBC ’—disable-pdo' '—disable-xmlreader’ ’—disable-xmlwriter' '—without-sqlite3' '—disable-phar' '—disable-fileinfo' '—disable-json' '—without-pspell' '—disable-wddx' ’—without-curl’ ’—disable-posix' '—disable-sysvmsg' '—disable-sysvshm’ ’—disable-sysvsem' |
Server API |
FPM/FastCGI |
Virtual Directory Support |
disabled |
Configuration File (php.ini) Path |
/etc |
Loaded Configuration File “ |
/etc/php.ini |
Scan this dir for additional .ini files |
/etc/php.d |
Additional .ini files parsed |
/etc/php.d/curll.iinii, /etc/php.d/fi leinfo.ini, /etc/php.d/json Jni, /etc/php.d /mysql.inir /etc/php.d/mysqli.ini, /etc/php.d/pdo.inir /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini, /etc/php.d/sq Iite3.ini, /etc/php.d /zip.ini |
PHP API |
20090626 |
PHP Extension |
20090626 |
Zend Extension |
220090626 |
Рис. 1 – Конфигурация PHP(PHP-FPM)
Значение FPM/FastCGI в строке Server API указывает на то, что сайт в текущий момент работает в режиме модуля PHP-FPM(Nginx FastCGI).
Список литературы Настройка режима работы PHP как PHP-FPM
- Хоккинс, С. Администрирование Web-сервера Apache и руководство по электронной коммерции -Вильямс, 2000. -330 с.
- Айвалиотис, Д. Администрирование сервера Nginx -ДМК Пресс, 2013. -288 с.