Научная статья на тему 'НАСТРОЙКА РАБОТЫ PHP В РЕЖИМЕ FASTCGI (APACHE)'

НАСТРОЙКА РАБОТЫ PHP В РЕЖИМЕ FASTCGI (APACHE) Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
94
6
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
FASTCGI / APACHE / ВЕБ-СЕРВЕР / PHP / WEB-SERVER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Латыпов Э.Ф.

В рамках данной статьи рассматривается конфигурирование PHP в режим FastCGI(Apache).

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SETTING UP PHP WORK IN THE FASTCGI MODE (APACHE)

This article discusses how to configure PHP in FastCGI (Apache) mode.

Текст научной работы на тему «НАСТРОЙКА РАБОТЫ PHP В РЕЖИМЕ FASTCGI (APACHE)»

УДК 004.4

Латыпов Э. Ф. студент 4 курса

факультет информационных систем и технологий Поволжский Государственный Университет Телекоммуникаций и Информатики

Россия, г. Самара

Latypov E.F. 4year student Faculty of Information Systems and Technologies Volga State University of Telecommunications and Informatics

Russia, Samara city НАСТРОЙКА РАБОТЫ PHP В РЕЖИМЕ FASTCGI (APACHE) Аннотация: В рамках данной статьи рассматривается конфигурирование PHP в режим FastCGI(Apache).

Ключевые слова: FastCGI, Apache, Веб-сервер, PHP.

SETTING UP PHP WORK IN THE FASTCGI MODE (APACHE) Annotation: This article discusses how to configure PHP in FastCGI (Apache) mode.

Keywords: FastCGI, Apache, Web-server, PHP.

Изначально, Common Gateway Interface, "общий интерфейс шлюза" -это стандартный протокол, который описывает, как веб-сервер должен запускать прикладные программы (скрипты), как должен передавать им параметры HTTP-запроса, как программы должны передавать результаты своей работы веб-серверу. Прикладную программу, взаимодействующую с веб-сервером по протоколу CGI принято называть шлюзом, хотя более распространено название CGI-скрипт или CGI-программа.

FastCGI - это дальнейшее развитие технологии CGI, которая является более производительной и безопасной, а также снимает множество ограничений CGI-программ.

FastCGI программа работает следующим образом: в качестве процесса программа единожды загружается в память (независимо от HTTP-сервера), а затем входит в цикл обработки запросов от HTTP-сервера. Один и тот же процесс обрабатывает несколько различных запросов один за другим, что отличается от работы в CGI-режиме, когда на каждый запрос создается отдельный процесс, выключающийся после окончания обработки.

Приступим к настройке работы сайта в режиме FastCGI(Apache). Для начала необходимо установить модуль FastCGI: [root@testserver www]# yum install mod-fcgid Далее необходимо отредактировать конфигурационный файл /etc/httpd/conf.d/fcgid.conf, добавив директиву: PHP_Fix_Pathinfo_Enable 1

Она позволяет использовать специальную обработку SCRIPT_NAME,

которая даст возможность PHP предоставлять дополнительную информацию о пути.

Раскомментируем директиву cgi.fix_pathinfo=1 в php.ini. Далее нужно создать нового пользователя и группу, от которого будут запускаться процессы 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/ После этого необходимо отредактировать конфигурационный файл /etc/httpd/conf/httpd.conf, добавив VirtualHost для нового сайта: <VirtualHost 127.0.0.1:80> ServerName sub1.site1.ru ServerAlias www.sub1.site1.ru

DocumentRoot /var/www/www-root/data/www/sub1.site1.ru

<IfModule mod_fcgid.c>

SuexecUserGroup www-root www-root

<Directory /var/www/www-root/data/www/sub1.site1.ru>

Options +ExecCGI

AllowOverride All

AddHandler fcgid-script .php

FCGIWrapper /var/www/php/php-cgi .php

Order allow,deny

Allow from all

</Directory>

</IfModule>

ErrorLog /var/www/log/sub1.site1.ru/error.log CustomLog /var/www/log/sub1.site1.ru/access.log combined ServerSignature Off </VirtualHost>

В директиве <IfModule mod_fcgid.c> дополнительно указали директорию с файлами сайта, а также задали директорию FCGIWrapper с созданным враппером /var/www/php/php-cgi.

Перезапустим Apache после чего проверим результат проведенной работы (рис. 1):

PHP Version 5.3.3

System

Build Date

Configure Command

Server API

Virtual

Directory

Support

Configuration File (php.ini) Path

Loaded

Configuration

File

Scan this dir for additional .ini files

Additional .ini files parsed

Linux test5erver.ru 2.6.32-042stabl23.2 #1 SMP Mon Apr 17 17:27:00 MSK 2017 x86 64

Mar 22 2017 12:26:13

'./configure1 '—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/5bin' '-ByBconfdir=/etc' '-datadir=/u5r/share' '-¡ncljdedir=/usr/include' '-Iibdir-/usr/lib64' '--libexecdir=/usr/libexec' '—localstatedir=/var' '--5haredstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/5hare/info' '--cache-file=../config.cache' '-with-libdir=lib64' '-with-config-file-path=/etc' ,-with-config-file-scan-dlr»/etc /php.d' '-disable-debug' '—with-pic' -disable-rpath '-without-pear' '—with-bz2' '-with-exec-dir-/usr/bin' '-yvith-freetype-dir=/u5r' -with-png-dir-/usr' '-wrth-xpm-dir=/u5r' '--enable-gd-native-ttf' '--without-gdbrrT '—with-gettext' '-with-gmp' '—with-iconv' '-uvlth-jpeg-dir=/u5r' '-with-openssl' ■—with-pcre-regex=/usr' '-with-zlib' '-wrthlayout-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-sqllte' '—n¥Íth-libxml-dir-/usr' '--enable-xml' '—with-system-tzdata' '-enable-force-cgi-redirect' '-enable-pcntl' '-with-imap=shared' -wrth-imap-ssl' '-enable-mb5tring=5hared' '-enable-mbregex' '-with-gd=5hared' '-enable-bcmath-shared' '-enable-dba=shared' '-with-dbd-/usrp '--with-xmlrpc=shared' '-wrth-ldap»=shared1 '--with-ldap-sasl' —with-mysql-shared./usr' '—with-mysqli—shared,/usr/lib€4/mysq^mysql config1 '-enable-dom=shared' '-wrth-pgsql=shared' enable-wddx=shared' '-mith-5nmp=shared,/u5r' enable-soap=shared' -with-xsl=shared,/usr' '-enable-xmlreader=5hared' '-enable-xmlwriter=shared' '-with-curl.=shared,/usr' '-enable-fastcgi' '--enable-pdo=shared' '--with-pdo-odbc=5liared,unixODBC,/usr' p-wrth-pdo-mysql=shared,/usr/lib64/mysql/mysql config' '-with-pdo-pg5ql=5hared,/usr' '-with-pdo-sqllte-shared./usr' "—with-sqlite3=5hared,/u5r' '-enable-jsan^shared' '-enable-zip-shared' '-without-readline1 '—wrth-libedit' '—witb-pspell—shared' '—enable-phar—shared' '—with-tidy=shared,/u5r' '-enable-sysvmsg—shared' '--enable-5y5vshm=shared' '-enable-sysvsem-shared' '-enable-posix=shared' '-with-jnixODBC=5hared,/usr' '-enable-fileinfo=shared' '-enable-intl=shared' '-with-icu-dir=/u5r' '-with-enchant^shared,/usr' '-with-recode»=shared,/usr'

CGI/FastCGI

disabled

/etc

/etc/php.ini

/etc/php.d

/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).

Использованные источники:

1. Хоккинс, С. Администрирование Web-сервера Apache и руководство по электронной коммерции [текст]/ С. Хоккинс - Вильямс, 2000. - 330 с.

2. Аулдс Ч. Администрирование веб-сервера Apache Linux, второе издание [текст]/ Ч. Аулдс. - Крэйг Хант лаборатория Линукс, 2002. - 624 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.