Настройка работы PHP в режиме FastCGI (Apache)
Автор: Латыпов Э.Ф.
Журнал: Экономика и социум @ekonomika-socium
Рубрика: Информационные и коммуникативные технологии
Статья в выпуске: 7 (38), 2017 года.
Бесплатный доступ
В рамках данной статьи рассматривается конфигурирование PHP в режим FastCGI(Apache).
Веб-сервер
Короткий адрес: https://sciup.org/140124447
IDR: 140124447
Текст научной статьи Настройка работы PHP в режиме FastCGI (Apache)
Изначально, Common Gateway Interface, "общий интерфейс шлюза" – это стандартный протокол, который описывает, как веб-сервер должен запускать прикладные программы (скрипты), как должен передавать им параметры HTTP-запроса, как программы должны передавать результаты своей работы веб-серверу. Прикладную программу, взаимодействующую с веб-сервером по протоколу CGI принято называть шлюзом, хотя более распространено название CGI - скрипт или CGI - программа.
FastCGI – это дальнейшее развитие технологии CGI, которая является более производительной и безопасной, а также снимает множество ограничений CGI-программ.
FastCGI программа работает следующим образом: в качестве процесса программа единожды загружается в память (независимо от HTTP-сервера), а затем входит в цикл обработки запросов от HTTP-сервера. Один и тот же процесс обрабатывает несколько различных запросов один за другим, что отличается от работы в CGI-режиме, когда на каждый запрос создается отдельный процесс, выключающийся после окончания обработки.
Приступим к настройке работы сайта в режиме FastCGI(Apache).
Для начала необходимо установить модуль FastCGI: [root@testserver www]# yum install mod-fcgid
Далее нужно создать нового пользователя и группу, от которого будут запускаться процессы PHP FastCGI.
[root@testserver www]# groupadd www-root // создаем группу [root@testserver www]# useradd www-root // создаем пользователя [root@testserver www]# passwd www-root // устанавливаем пароль для пользователя
[root@testserver www]# useradd -g www-root www-root // добавляем пользователя www-root в группу www-root
Создадим каталог /var/www/php, в котором расположим враппер (программный модуль, перехватывающий поток ввода-вывода и изменяющий его в соответствии с заложенной программой) php-cgi со следующим содержанием: #!/usr/bin/php-cgi
Изменим владельца содержимого каталога /var/www/php/ и всех файлов, расположенных в нем. Файл враппера и директория, в которую он входит должна принадлежать тому пользователю, от которого будут запущены процессы PHP FastCGI(в данном случае это пользователь/группа www-root/www-root). Для этого выполним команду: [root@testserver www]# chown -R www-root:www-root /var/www/php/
ServerAlias
SuexecUserGroup www-root www-root
Options +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/php/php-cgi .php
Order allow,deny
Allow from all
В директиве
Перезапустим Apache после чего проверим результат проведенной работы (рис. 1):
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:26:48 |
Configure Command |
'./configure' '-build=x86_64-redhat-linux-gnu' ’-host-x86 64-redhat-linux-gnu' ' -target-x86 64-redhat-linux-gnu’ '--program-prefix-' '-prefix-/usr' '-exec-prefix=/usr' '-bindir-/usr/bin' '-sbindir-/usr/sbin' '-sysconfdir=/etc' '-datadir=/usr/share' '--includedir=/usr/include' '-Iibdir=/usr/lib64' '-libexecdir—/usr/libexec’ '-localstatedir—/var’ ’-sharedstatedir—/var/lib’ '-mandir-/usr/share/man' ’-infodir-/usr/share/info' ’-cache-file-../config.cache’ '-with-libdir=lib64' '-with-config-file-path=/etc' '-with-config-file-scan-dir-/etc /php.d' '-disable-debug' ’-with-pic' '-disable-rpath' ’-without-pear’ ’-with-bz2’ '-with-exec-dir=/usr/bin' '-with-freetype-dir=/usr' ’-with-png-dir—/usr' ’-with-xpm-dir-/usr' '-enable-gd-native-ttf '-without-gdbm' '-with-gettext' '-with-gmp' '-with-iconv' '-with-jpeg-dir=/usr' '-with-openssl' '-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-kerberos' '-enable-ucd-snmp-hack' '-enable-shmop' ’-enable-calendar’ '-without-sqlite' '-with-libxml-dir-/usr' '-enable-xml’ '-with-system-tzdata' '-enable-force-cgi-redirect' ’-enable-pcntl’ ’-with-imap-shared’ '—with-imap-ssl' '-enable-mbstring=shared' ’-enable-mbregex''-with-gd=shared' '-enable-bcmath=shared' ’-enable-dba-shared' ’-with-db4=/usr' '-with-xmlrpc-shared' ’-with-ldap-shared’'-with-ldap-sasl' '-with-mysql=shared,/usr' ’-with-mysqli-shared,/usr/lib64/mysql/mysql_config’ ’-enable-dom—shared’ ’-with-pgsql—shared’ ’-enable-wddx—shared’ ’-with-snmp—shared,/usr' '-enable-soap—shared’ '-with-xsl—shared,/usr' ’-enable-xmlreader=shared' '-enable-xmlwriter-shared' '-with-curl-shared,/usr' ’-enable-fastcgi’ ’-enable-pdo-shared' '-with-pdo-odbc=shared,unixODBC,/usr' ’-with-pdo-mysql—shared,/usr/lib64/mysql/mysql_config’ ’-with-pdo-pgsql=shared,/usr’ ’-with-pdo-sqlite—shared,/usr' ’-with-sqlite3-shared,/usr' '-enable-json-shared' '-enable-zip-shared''-without-readline’ ’-with-libedit’ ’-with-pspell-shared' '-enable-phar=shared' ’-with-tidy—shared,/usr' '-enable-sysvmsg—shared' ’-enable-sysvshm—shared' ’-enable-sysvsem—shared’ '-enable-posix=shared' ’-with-unixODBC=shared,/usr' ’-enable-fileinfo-shared' ’-enable-intl-shared’'-with-icu-dir=/usr' ’-with-enchant-shared,/usr' '-with-recode-shared,/usr' |
Server API |
CGI/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/curl.ini, /etc/php.d/fileinfo.ini, /etc/php.d/json.ini, /etc/php.d/phar.ini, /etc/php.d/zip.ini |
Рис. 1 – Конфигурация PHP(php-fcgi)
Значение CGI/FastCGI в строке Server API указывает на то, что сайт в текущий момент работает в режиме FastCGI(Apache).
Список литературы Настройка работы PHP в режиме FastCGI (Apache)
- Хоккинс, С. Администрирование Web-сервера Apache и руководство по электронной коммерции /С. Хоккинс -Вильямс, 2000. -330 с.
- Аулдс Ч. Администрирование веб-сервера Apache Linux, второе издание /Ч. Аулдс. -Крэйг Хант лаборатория Линукс, 2002. -624 с.