Nginx php
From Help system
nginx + php + spawn-fcgi
wget http://www.sysoev.ru/nginx/nginx-0.5.30.tar.gz tar -zxf nginx-0.5.30.tar.gz cd nginx-0.5.30 wget http://internap.dl.sourceforge.net/sourceforge/pcre/pcre-6.1.tar.gz tar -zxf pcre-6.1.tar.gz ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=pcre-6.1 make make install cd .. wget http://www.php.net/get/php-5.2.3.tar.gz/from/uk.php.net/mirror tar -zxf php-5.2.3.tar.gz cd php-5.2.3
патчи, если нужно ... и т.д. но --enable-fastcgi обязательно
php -i | grep configure | sed "s/'//g" | sed "s/'//g" './configure' '--prefix=/usr/local/nginx/php' '--enable-fastcgi' make make install cd .. wget http://www.lighttpd.net/download/lighttpd-1.4.16.tar.gz tar -zxf lighttpd-1.4.16.tar.gz cd lighttpd-1.4.16 ./configure make cp src/spawn-fcgi /usr/local/bin/spawn-fcgi cp doc/spawn-php.sh /usr/local/nginx/
В /usr/local/nginx/spawn-php.sh подправить
SPAWNFCGI="/usr/local/bin/spawn-fcgi" FCGIPROGRAM="/usr/local/nginx/php/bin/php-cgi"
и дальше в зависимости от нагрузки.
/usr/local/nginx/spawn-php.sh
Проверить lsof -i tcp:1026, должно быть что-то вроде:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME php-cgi 547 user 0u IPv4 3147032 TCP *:1026 (LISTEN) php-cgi 548 user 0u IPv4 3147032 TCP *:1026 (LISTEN) ... ... php-cgi 549 user 0u IPv4 3147032 TCP *:1026 (LISTEN)
/etc/init.d/nginx
#!/bin/sh
# nginx - this script starts and stops the nginx daemin
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/nginx.conf
# pidfile: /var/run/nginx.pid
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/nginx"
prog=$(basename $nginx)
[ -e /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
echo -n $"Starting $prog: "
daemon $nginx -c /usr/local/nginx/nginx.conf
/usr/local/nginx/spawn-php.sh
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
killall -9 php-cgi
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
fdr_status() {
status $prog
}
case "$1" in
start|stop|restart|reload)
$1
;;
force-reload)
force_reload
;;
status)
fdr_status
;;
condrestart|try-restart)
[ ! -f $lockfile ] || restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
exit 2
esac
/usr/local/nginx/nginx.conf
location ~ \.php$ {
fastcgi_pass 127.0.0.1:1026;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
