nginx官网没有介绍php的配置,关于Nginx+PHP配置的详细介绍

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

用于程序调试,请将以下的

name="display_errors">0

改为

name="display_errors">1

,以便显示PHP错误信息,否则,Nginx

会报状态为500的空白错误页):

看到配置中有下面

Unix user of processes

www

Unix group of processes

www

我的是nobody所以改成nobody这个值

200

启动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

[[email protected] 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

[[email protected] 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

All relative paths in this config are relative to php's install prefix

Pid file

/usr/local/php/logs/php-fpm.pid

Error log file

/usr/local/php/logs/php-fpm.log

Log level

notice

When this amount of php processes exited with SIGSEGV or SIGBUS ...

10

... in a less than this interval of time, a graceful restart will be initiated.

Useful to work around accidental curruptions in accelerator's shared memory.

1m

Time limit on waiting child's reaction on signals from master

5s

Set to 'no' to debug fpm

yes

Name of pool. Used in logs and stats.

default

Address to accept fastcgi requests on.

Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'

127.0.0.1:9000

Set listen(2) backlog

-1

Set permissions for unix socket, if one used.

In Linux read/write permissions must be set in order to allow connections from web server.

Many BSD-derrived systems allow connections regardless of permissions.

0666

Additional php.ini defines, specific to this pool of workers.

/usr/sbin/sendmail -t -i

1

Unix user of processes

nobody

Unix group of processes

nobody

Process manager settings

Sets style of controling worker process count.

Valid values are 'static' and 'apache-like'

static

Sets the limit on the number of simultaneous requests that will be served.

Equivalent to Apache MaxClients directive.

Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi

Used with any pm_style.

200

Settings group for 'apache-like' pm style

Sets the number of server processes created on startup.

Used only when 'apache-like' pm_style is selected

20

Sets the desired minimum number of idle server processes.

Used only when 'apache-like' pm_style is selected

5

Sets the desired maximum number of idle server processes.

Used only when 'apache-like' pm_style is selected

250

Time limit on waiting execution of single request

Should be used when 'max_execution_time' ini option does not terminate execution for some reason

31s

Set open file desc rlimit

51200

Set max core size rlimit

0

Chroot to this directory at the start

Chdir to this directory at the start

Redirect workers' stdout and stderr into main error log.

If not set, they will be redirected to /dev/null, according to FastCGI specs

yes

How much requests each process should execute before respawn.

Useful to work around memory leaks in 3rd party libraries.

For endless request processing please specify 0

Equivalent to PHP_FCGI_MAX_REQUESTS

51200

Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.

Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)

Makes sense only with AF_INET listening socket.

127.0.0.1

Pass environment variables like LD_LIBRARY_PATH

All $VARIABLEs are taken from current environment

$HOSTNAME

/usr/local/bin:/usr/bin:/bin

/tmp

/tmp

/tmp

$OSTYPE

$MACHTYPE

2

为了让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;

[[email protected] 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

[[email protected] php-5.2.6]# /usr/local/nginx/sbin/nginx

以上就是对Nginx+PHP配置的详细介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值