天天看点

fastcgi安装fastcgi安装

这里及以下的web服务器都是以nginx为例子和说明,php以5.3为例子。

fastcgi在服务器上会启动多个进程进行解析,这个时候就需要一个fastcgi的管理器,管理哪个子进程可以结束,哪个进行应该开启了。

fastcgi的进程管理器有两种,spawn-fcgi和php-fpm。其中的spawn-fcgi一般是和lighttp配合使用的。而php-fpm一般会配合nginx来使用。

在下载php-fpm的时候,需要尽量使php版本和php-fpm版本一致或者版本差别最小,否则有可能会出现兼容性的问题。

php需要下面软件的支持,如果没有安装,请自行安装:

php的配置文件存放在 /usr/local/php/lib/php.ini中。

而php-fpm的配置文件存放在 /usr/local/php/etc/php-fpm.conf中

其中的几项配置需要注意:

标签listen_address是配置fastcgi进程监听的ip地址以及端口,默认是127.0.0.1:9000。

标签display_errors用来设置是否显示php错误信息,默认是0,不显示错误信息,设置为1可以显示php错误信息。

标签user和group用于设置运行fastcgi进程的用户和用户组。需要注意的是,这里指定的用户和用户组要和nginx配置文件中指定的用户和用户组一致。

标签max_children用于设置fastcgi的进程数。根据官方建议,小于2gb内存的服务器,可以只开启64个进程,4gb以上内存的服务器可以开启200个进程。也可以根据服务的内存数来估计需要开启多少fastcgi进程数。大概一个fastcgi进程占20m的内存。

标签request_terminate_timeout用于设置fastcgi执行脚本的时间。默认是0s,也就是无限执行下去,这个参数设置好了可以用于保证不会有执行时间过长的php阻塞住fastcgi进程。

标签rlimit_files用于设置php-fpm对打开文件描述符的限制,默认值为1024。这个标签的值必须和linux内核打开文件数关联起来,例如要将此值设置为65535,就必须在linux命令行执行'ulimit -hsn 65536'。

标签max_requests指明了每个children最多处理多少个请求后便会被关闭,默认的设置是500。

为什么会需要这个参数设置呢?php和fastcgi都是c写的,一些php模块什么的有可能实际上存在着内存泄露等问题,所以一般php作为守护进程一直执行是不大可取的行为。既然php有可能有内存泄露的问题,那么如果fastcgi进程一直执行着,那么就有可能导致机器的内存出现吃爆的现象。所以在执行一段时间之后,我们是希望fastcgi能自动重启动。这个参数就是做这个用的。

标签allowed_clients用于设置允许访问fastcgi进程解析器的ip地址。如果不在这里指定ip地址,nginx转发过来的php解析请求将无法被接受。