Nginx+PHP配置有很多的技术应用技巧,网管员在学习的时候都需要注意相关的知识。创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi)在/usr/local/webserver/php/etc/目录中创建php-fpm.conf文件:
rm -f /usr/local/php/etc/php-fpm.conf 我的默认没有这个vi /usr/local/php/etc/php-fpm.conf
输入以下内容(如果您安装 Nginx + PHP 用于程序调试,请将以下的<value name="display_errors">0</value>改为<value name="display_errors">1</value>,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页):
看到配置中有下面
Unix user of processes
<value name="user">www</value>
Unix group of processes
<value name="group">www</value>
我的是nobody所以改成nobody这个值
<value name="max_children">200</value>
启动Nginx+PHP配置-cgi进程,监听127.0.0.1的9000端口,进程数为200(如果服务器内存小于3GB,可以只开启64个进程/参考配置文件中的那个max_children我暂时改为32内部测试机),用户为nobody:
ulimit -SHn 51200
#/usr/local/php/sbin/php-fpm start
Starting php_fpm done
[root@test php-5.2.6]# ps fax|grep fpm
17489 pts/2 S+ 0:00 /_ grep fpm
17453 ? Ss 0:00 /usr/local/php/bin/php-cgi --fpm
17454 ? S 0:00 /_ /usr/local/php/bin/php-cgi --fpm
17455 ? S 0:00 /_ /usr/local/php/bin/php-cgi --fpm
17456 ? S 0:00 /_ /usr/local/php/bin/php-cgi --fpm
[root@test php-5.2.6]# ps fax|grep fpm|wc -l
注:/usr/local/php/sbin/php-fpm还有其他参数,包括:start|stop|quit|restart|reload|logrotate,修改php.ini后不重启php-cgi,重新加载配置文件使用reload
为了让Nginx+PHP配置支持
- location ~ .*/.php?$
- {
- include fcgi.conf;
- #fastcgi_pass unix:/tmp/php-cgi.sock;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- }
增加上面这段到我的server段,在/usr/local/nginx/conf/目录中创建fcgi.conf文件
- vi /usr/local/nginx/conf/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;
- [root@test php-5.2.6]# /usr/local/nginx/sbin/nginx -t
- 2008/09/09 11:12:23 [info] 17512#0: the configuration file
/usr/local/nginx/conf/nginx.conf syntax is ok - 2008/09/09 11:12:23 [info] 17512#0: the configuration file
/usr/local/nginx/conf/nginx.conf was tested successfully - [root@test php-5.2.6]# /usr/local/nginx/sbin/nginx
以上就是对Nginx+PHP配置的详细介绍。