Как установить Apache и PHP как FastCGI на CentOS 6
Протокол FastCGI снимает некоторые ограничения CGI. Так, он не запускает процессы для запросов, используя созданные ранее для обработки входящих запросов. Разберемся, как установить Apache и PHP как FastCGI пошагово.
Подготовьте систему:
yum install gcc libjpeg-devel libpng-devel libmcrypt \ libmcrypt-devel pcre pcre-devel libcurl-devel \ freetype freetype-devel mysql mysql-devel libxml2 libxml2-devel \ bzip2-devel bzip2-libs curl curl-devel libtool libtool-ltdl libtool-ltdl-devel
Установите репозиторий EPEL:
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Установите httpd, php-common, mod_fcgid, php-cgi и php, а затем у далите файл конфигурации модуля mod_php:
yum -y install httpd php-common mod_fcgid php-cgi php
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.bkp
Откройте файл /etc/httpd/conf.d/fcgid.conf в текстовом редакторе:
nano /etc/httpd/conf.d/fcgid.conf
Скопируйте в этот файл следующие строки:
DirectoryIndex index.php
PHP_Fix_Pathinfo_Enable 1
Откройте файл /etc/php.ini и расскомментируйте строку cgi.fix_pathinfo=1:
nano /etc/php.ini
cgi.fix_pathinfo=1
Добавьте пользователя:
useradd user
Создайте директорию /var/www/php-cgi, а затем добавьте в нее папку для сайта (мы назовем ее directory):
mkdir /var/www/php-cgi
mkdir /var/www/php-cgi/directory
Создайте в папке сайта файл /var/www/php-cgi/directory/php.cgi:
nano /var/www/php-cgi/directory/php.cgi
Скопируйте в него строки:
#!/bin/sh
PHPRC=/etc/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=500
exec /usr/bin/php-cgi
Установите права и владельца:
chmod 755 /var/www/php-cgi/directory/php.cgi
chown -R user:user /var/www/php-cgi/directory
Создайте папку для файлов сайта (мы назовем ее directory01) и добавьте в нее файл index.php:
mkdir -p /var/www/vhosts/directory01
nano /var/www/vhosts/directory01/index.php
Добавьте в файл строку, сохраните изменения и поменяйте пользователя:
<?php echo phpinfo(); ?>
chown -R user:user /var/www/vhosts/directory01
Создайте файл конфигурации с расширением .conf в папке /etc/httpd/conf.d (мы назовем его file.conf):
nano /etc/httpd/conf.d/file.conf
Добавьте в файл виртуальный хост:
<VirtualHost 91.121.227.80 >
DocumentRoot /var/www/vhosts/directory01
ServerName vpsLyf1N.s-host.com.ua
ServerAlias www.vpsLyf1N.s-host.com.ua
<IfModule mod_fcgid.c>
SuexecUserGroup user user
<Directory /var/www/vhosts/directory01>
Options +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/php-cgi/directory/php.cgi
Order allow,deny
Allow from all
</Directory>
</IfModule>
</VirtualHost>
Подставьте свои значения в строки <VirtualHost [ваш-IP]>, DocumentRoot /var/www/vhosts/[ваша папка], ServerName ваш домен], ServerAlias [www.ваш домен], <Directory /var/www/vhosts/[ваша папка]>, FCGIWrapper /var/www/php-cgi/[ваша папка]/php.cgi.
Сохраните файл и перезапустите httpd:
service httpd start
Откройте в адресной строке браузера ваш-IP/index.php и вы увидите, что FastCGI установлен: