您的位置:首页 > 运维架构 > Nginx

Nginx+PHP配置相关进程的简要介绍

2011-04-11 10:24 656 查看
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配置的详细介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: