Nginx с php на Debian Lenny

Установим и настроем Nginx с PHP на примере Debian Lenny. Все делается довольно быстро и просто.

Первым делом устанавливаем nginx, php и инструменты для сборки:
# apt-get install nginx php5-cli php5-cgi build-essential

Правим /etc/nginx/sites-available/default находим/раскомментируем строки:

location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
}

Далее, нам нужен spawn-fcgi , будем брать его от lighttpd:
# cd /tmp
# wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.bz2
# tar -xvjf lighttpd-1.4.18.tar.bz2
# cd lighttpd-1.4.18
# ./configure
# make

Инсталяцию делать не надо, нам нужен только spawn-fcgi
# cp src/spawn-fcgi /usr/bin/spawn-fcgi
правим /usr/bin/php-fastcgi

#!/bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -f /usr/bin/php5-cgi

Выставляем права
# chmod 755 /usr/bin/php-fastcgi
правим /etc/init.d/init-fastcgi

#!/bin/bash
PHP_SCRIPT=/usr/bin/php-fastcgi
RETVAL=0
case "$1" in
start)
$PHP_SCRIPT
RETVAL=$?
;;
stop)
killall -9 php
RETVAL=$?
;;
restart)
killall -9 php
$PHP_SCRIPT
RETVAL=$?
;;
*)
echo "Usage: php-fastcgi {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL

Выставляем права и стартуем
# chmod 755 /etc/init.d/init-fastcgi
# /etc/init.d/init-fastcgi start

Проверяем:
# netstat -tulpn | grep :9000

Получаем:

tcp  0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1351/php5-cgi

ставим в автозагрузку
# update-rc.d init-fastcgi defaults

Рестартуем Nginx:
# /etc/init.d/nginx restart

Создаем тестовый файл для проверки работы php – /var/www/nginx-default/info.php:

<?php
phpinfo();
?>

Проверяем в браузере. Все должно работать.

Удачи в настройках.

© shadow_alone