Nginx + PHP-FastCGI
Установка PHP на NGINX
Сегодня рассмотрим пример настройки на рабочую конфигурацию без лишних извращенств.
Читаем далее…
Ставим пакеты
apt-get install nginx php5-cgi libpcre3-dev libbz2-dev
Если нужно по полной вставить php, то можно еще доставить:
apt-get install php5-gd php5-mysql php5-curl php5-snmp
Для пхп нам потребуется сам FastCGI из исходников пакета lighttpd
mkdir ~/src cd ~/src # возможно будет уже и более свежая версия wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.bz2 tar jxvf ./lighttpd-1.4.19.tar.bz2 # необходимые пакеты для установочного скрипта cd ./lighttpd-1.4.19 # может возникнуть ошибка Zlib, тогда выставляем # с параметром --without-zlib ./configure --without-zlib make cp src/spawn-fcgi /usr/bin/spawn-fcgi # И удалим за собой ненужныеболее файлы cd ~/ rm -Rf src/
Одна часть готова.
Теперь научим его запускаться
touch /usr/bin/php-fastcgi nano /usr/bin/php-fastcgi
Дальше вставляем кусок кода в файл
#!/bin/bash #Колиество дочерних процесов PHP_FCGI_CHILDREN=3 # через Н* количество запросов - перезапуск PHP_FCGI_MAX_REQUESTS=1000 exec /usr/bin/php5-cgi
Теперь скрипт запуска ручного и автоматического
touch /etc/init.d/init-fastcgi nano /etc/init.d/init-fastcgi
Далее сам код:
#!/bin/bash PHP_SCRIPT="/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php-fastcgi" RETVAL=0 case "$1" in start) $PHP_SCRIPT RETVAL=$? ;; stop) killall -9 php5-cgi RETVAL=$? ;; restart) killall -9 php5-cgi $PHP_SCRIPT RETVAL=$? ;; *) echo "Usage: sudo /etc/init.d/init-fastcgi {start|stop|restart}" exit 1 ;; esac exit $RETVAL
Делаем файлы исполняемыми
chmod +x /usr/bin/php-fastcgi chmod +x /etc/init.d/init-fastcgi
Добавялем в автозапуск
update-rc.d init-fastcgi defaults
В nginx конфигурации включаем обработку php
location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_pass 127.0.0.1:9000; fastcgi_intercept_errors on; break; }
Ну вот и всё =)
Share this content: