走访网站时出现如下错误,如下图:

是因为服务器版本的不平静,将Nginx的程序迁移到Apache执行

[小说笔者:张宴 本文版本:v1.0 最后修改:二零零六.07.30
转发请申明原来的书文链接:http://blog.s135.com/read.PHP/361/]

fastcgi安装

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

澳门金沙国际 1

 

  前日,有心上人问作者,他将Web服务器换到Nginx 0.6.31  +
PHP 4.4.7(FastCGI)后,有时候访问会油可是生“502
Bad Gateway”错误,如何消除。

php-fpm

fastcgi在服务器上会运转八个进程展开分析,那一个时候就需求二个fastcgi的管理器,管理哪个子进程能够甘休,哪个进行相应打开了。

fastcgi的长河管理器有三种,spawn-fcgi和php-fpm。当中的spawn-fcgi一般是和lighttp合作使用的。而php-fpm一般会同盟nginx来使用。

检查php fastcgi进程数,如下图:

明日,有情侣问作者,他将Web服务器换到Nginx 0.6.31  + PHP
4.4.7(法斯特CGI)后,有时候访问会冒出“502 Bad Gateway”错误,怎么着化解。

  小编让遵照以下多少个步骤去化解,最后在第叁步兵高元帅法斯特CGI的timeout时间净增为300,难点化解:

安装

澳门金沙国际 2

  笔者让遵照以下七个步骤去化解,最终在第②步上校法斯特CGI的timeout时间增添为300,难题化解:

  PS:相比羡慕迅雷的Web服务器,16G内部存款和储蓄器。

下载php和php-fpm源码包

php下载地址:

php-fpm下载地址:

在下载php-fpm的时候,必要尽或者使php版本和php-fpm版本一样恐怕版本差异十分小,不然有恐怕会产出包容性的标题。

输出0则象征fastcgi进度数够大,修改scgi_params文件,如下图:

  PS:相比羡慕迅雷的Web服务器,16G内部存款和储蓄器。


计划安装环境

php供给下边软件的支持,假使没有设置,请自行设置:

gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel

澳门金沙国际 3


  一 、查看当前的PHP 法斯特CGI进度数是或不是够用:

unavailable错误化解办法。编写翻译安装php和php-fpm

[root@localhost local]#tar zxvf php-5.2.13.tar.gz  
[root@localhost local]#gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1
[root@localhost local]#cd php-5.2.13  
[root@localhost php-5.2.13]#./configure  --prefix=/usr/local/php --enable-fastcgi --enable-fpm  
[root@localhost php-5.2.13]#make  
[root@localhost php-5.2.13]#make install  
[root@localhost php-5.2.13]cp php.ini-dist /usr/local/php/lib/php.ini

接下来重启php-fpm和nginx,重新访问即可平日访问。

  ① 、查看当前的PHP 法斯特CGI进度数是还是不是够用:

netstat -anpo | grep “PHP-cgi” | wc -l

配置与优化php-fpm

php的安顿文件存放在 /usr/local/php/lib/php.ini中。

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

个中的几项配置必要小心:

标签listen_address是安插fastcgi进度监听的IP地址以及端口,私下认可是127.0.0.1:柒仟。

<value name="listen_address">127.0.0.1:9000</value>

标签display_errors用来安装是或不是出示PHP错误音讯,暗中认可是0,不出示错误音讯,设置为1得以来得PHP错误新闻。

<value name="display_errors">0</value>

标签user和group用于安装运转法斯特CGI进度的用户和用户组。供给小心的是,那里钦命的用户和用户组要和Nginx配置文件中内定的用户和用户组一致。

<value name="user">nobody</value>
<value name="group">nobody</value>

标签max_children用来安装法斯特CGI的经过数。根据官方提出,小于2GB内部存款和储蓄器的服务器,能够只开启63个进程,4GB以上内部存款和储蓄器的服务器能够开启200个经过。也得以根据劳动的内部存款和储蓄器数来推断供给开启多少fastcgi进度数。大致1个fastcgi进程占20M的内部存款和储蓄器。

<value name="max_children">5</value>

标签request_terminate_timeout用来安装法斯特CGI执行脚本的大运。暗许是0s,也便是最为执行下去,这一个参数设置好了足以用于有限支撑不会有实践时间过长的php阻塞住fastcgi进程。

<value name="request_terminate_timeout">s</value>

标签rlimit_files用来安装PHP-FPM对打开文件讲述符的限量,暗中认可值为1024。这么些标签的值必须和Linux内核打开文件数关联起来,例如要将此值设置为65535,就不能够不在Linux命令行执行’ulimit
-HSn 65536’。

<value name="rlimit_files">1024</value>

标签max_requests指明了种种children最多处理多少个请求后便会被关闭,暗中同意的安装是500。

为啥会须求这么些参数设置呢?php和fastcgi都是C写的,一些php模块什么的有恐怕实际存在着内部存款和储蓄器走漏等题材,所以一般php作为医护进程平素施行是一点都不大可取的一颦一笑。既然php有可能有内部存款和储蓄器走漏的难题,那么只要fastcgi进度平昔执行着,那么就有只怕导致机器的内部存款和储蓄器出现吃爆的现象。所以在推行一段时间之后,我们是梦想fastcgi能自动重运转。这些参数就是做这么些用的。

<value name="max_requests">500</value>

标签allowed_clients用来安装允许访问法斯特CGI进度解析器的IP地址。假若不在那里钦点IP地址,Nginx转发过来的PHP解析请求将不能被接受。

<value name="allowed_clients">127.0.0.1</value>

netstat -anpo | grep “php-cgi” | wc -l

  假诺实在利用的“法斯特CGI进度数”接近预设的“法斯特CGI进度数”,那么,表明“FastCGI进程数”不够用,供给增大。

澳门金沙国际,启动php-fpm

/usr/local/php/sbin/php-fpm  start

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139816.htm

澳门金沙国际 4

  假诺实在运用的“法斯特CGI进度数”接近预设的“FastCGI进度数”,那么,表达“法斯特CGI进度数”不够用,须求增大。



  2、部分PHP次第的实施时间超越了Nginx的等候时间,能够恰到好处扩充nginx.conf配置文件中法斯特CGI的timeout时间,例如:

  ② 、部分PHP程序的执行时间超越了Nginx的等待时间,能够方便增添nginx.conf配置文件中FastCGI的timeout时间,例如:

……
http
{
……
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
……
}
……

……
http
{
……
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
……
}
……

版权注脚:本文为博主原创小说,未经博主允许不得转发。


相关文章