【转】nginx+php
./configure ?prefix=/usr/local/nginx ?http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp/ ?http-proxy-temp-path=/usr/local/nginx/proxy_temp/ ?without-http_upstream_ip_hash_module ?without-http_geo_module ?without-http_memcached_module ?without-http_map_module ?without-http_ssi_module ?with-http_ssl_module ?with-openssl=/usr/local/ssl/lib
要注意的是,如果要加SSL支持,需要用openssl 097的版本来编译。http://www.openssl.org/source/openssl-0.9.7m.tar.gz
编译php
./configure ?prefix=/usr/local/php ?enable-mbstring ?with-mysql=/usr/ ?disable-dom ?enable-fastcgi ?with-gd ?with-config-file-path=/usr/local/php/etc/ ?with-zlib-dir=/usr ?with-jpeg-dir=/usr ?with-png-dir=/usr ?without-pear ?without-sqlite ?enable-force-cgi-redirect ?with-freetype-dir ?enable-fpm ?with-fpm-conf=/usr/local/php/etc/fpm.conf ?with-fpm-log=/usr/local/nginx/logs/fpm.log ?with-fpm-pid=/usr/local/nginx/logs/fpm.pid
server {
listen 80;
server_name xxx.net;
charset gb2312;
location / {
root /data/www/xxxx/;
index index.html index.htm index.php;
allow 1.1.1.1;
deny all;
}
location ~ \.php$ {
root /data/www/xxxx/;
include /etc/fcgi.conf;
fastcgi_pass 127.0.0.1:1026;
fastcgi_index index.php;
}
}
其中/etc/fcgi.conf内容为
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with ?enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
用lighttpd的spawn-fcgi和spawn-php.sh
#!/bin/bash
## ABSOLUTE path to the spawn-fcgi binary
SPAWNFCGI=”/usr/local/nginx/sbin/spawn-fcgi”
## ABSOLUTE path to the PHP binary
FCGIPROGRAM=”/usr/local/bin/php-cgi”
## TCP port to which to bind on localhost
FCGIPORT=”1026″
## number of PHP children to spawn
PHP_FCGI_CHILDREN=10
## maximum number of requests a single PHP process can serve before it is restarted
PHP_FCGI_MAX_REQUESTS=1000
## IP addresses from which PHP should access server connections
FCGI_WEB_SERVER_ADDRS=”127.0.0.1″
# allowed environment variables, separated by spaces
ALLOWED_ENV=”ORACLE_HOME PATH USER”
## if this script is run as root, switch to the following user
USERID=nobody
GROUPID=nobody
chongqi
#!/bin/bash
killall -9 nginx php-cgi ; sleep 1 ;/usr/local/nginx/sbin/spawn-php.sh ; nginx