• php超文本预处置器 v8.2.9

  • 大小:16.34M更新时间:2025-07-29 16:01
  • 类别:下载工具

php讲解器是一款帮助用户在PHP目录下找到PHP.exe,用户可以运行.PHP程序的一款软件,很多用户都了解,软件的开发不能离开各种编译器,讲解器之类的东西,记者带来的这款软件就像C++的编译器,不过C++需要手工,而PHP是全自动的,用户仅需调用这款软件就能轻松的使得软件自动生成HTML代码。假如用户开发了PHP应用程序,但却不可以够正常运行,那样这款php讲解器可以让用户的应用程序代码转变为HTML代码,如此就可以正常运行了。

PHP打开502解决方法

1. php.ini的memory_limit 过小(假如有个别php程序进程需要占用很大内存时这个需要注意)

2. php-fpm.conf中max_children或者max_requests 设置不合理(设置过小会由于没足够的cgi进程处置请求,设置过大会出现一会儿有响应正常,一会儿等很长时间才有响应的状况,通常情况下children按 照内存计算,譬如说1G设置64,2G128。这个依据实质状况自行调整。另外查询目前的PHP FastCGI进程数是不是够用的命令为:netstat -anpo |grep “php-cgi” | wc -l 假如实质用的“FastCGI进程数”接近预设的“FastCGI进程数”,那样,说明“FastCGI进程数”不够用,需要增大。)

3. 查询nginx错误日志,发现 pstream sent too big header while reading response headerfrom upstream ,则检查client head buffer,fastcgi buffer size是不是过小,可设置为32K。

4. php程序实行时间过长而超时,检查nginx和fastcgi中各种timeout设置。(nginx 中的 fastcgi_connect_timeout 300;fastcgi_send_timeout 300 :fastcgi_read_timeout300; keepalive_timeout ; php-fpm中的request_terminate_timeout,php.ini中的max_execution_time)

5. php-fpm有一个参数 max_requests ,该参数指明了每一个children最多处置多少个请求后便会被关闭。在很多处置请求下,假如该值设置过小会致使children频繁的自杀和打造而浪费 很多时间,若所有些children差不多都在这时自杀,则重建前将没children响应请求,于是出现502。可以将该值设置大一些或者是0[无限]。

以上差不多是经常见到的502的问题缘由与解决方法,其实解决问题的最好的方法还是自己去看nginx和fastcgi的errorlog。

最后借用网上的万金油说法做个总结: php-cgi进程数不够用、php实行时间长、或者是php-cgi进程死掉,都会出现502错误。

502错误是所有用nginx跑php的运维职员不想看见的

nginx出现502有不少缘由,但大多数缘由可以归结为资源数目不够用,也就是说后端php-fpm处置有问题,nginx将正确的推广客户端请求发给了后端的php-fpm进程,但由于php-fpm进程的问题致使不可以正确分析php代码,最后返回给了推广客户端502错误。

服务器出现502是什么原因连接超时大家向服务器发送请求因为服务器目前链接太多,致使服务器方面没办法给于正常的响应,产生此类显示错误

因此假如你服务器并发量很大,那只能先增加机器,然后按以下方法优化会获得更好成效;但假如你并发不大却出现502,一般都可以归结为配置问题,脚本超时问题。

1.php-fpm进程数不够用

用netstat -napo |grep "php-fpm" | wc -l查询一下目前fastcgi进程个数,假如个数接近conf里配置的上限,就需要调高进程数。

但也不可以无休止调高,可以参考服务器内存状况,可以把php-fpm子进程数调到100或以上,在4G内存的服务器上200就能。

2. 调高调高linux内核打开文件数目

可以用这类命令

echo 'ulimit -HSn 65536' /etc/profile

echo 'ulimit -HSn 65536' /etc/rc.local

source /etc/profile

3.脚本实行时间超时

假如脚本由于某种缘由长期等待不返回,致使新来的请求不可以得到处置,可以适合调小如下配置。

nginx.conf里面主如果如下

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

php-fpm.conf里如如果如下

request_terminate_timeout =10s

4.缓存设置比较小

修改或增加配置到nginx.conf

proxy_buffer_size 64k;

proxy_buffers 512k;

proxy_busy_buffers_size 128k;

5. recvfailed while reading response header fromupstream

可能是什么原因机房互联网丢包或者机房有硬件防火墙禁止访问该域名

但非常重要的是程序里要设置好超时,不要用php-fpm的request_terminate_timeout,

最好设成request_terminate_timeout=0;

由于这个参数会直接杀掉php进程,然后重启php进程,如此前端nginx就会返回104: Connection reset by peer。这个过程是非常慢,总体感觉就是网站非常卡。

May 01 10:50:58.044162[WARNING] [pool www] child 4074, script'/usr/local/nginx/html/quancha/sameip/detail.php' execution timed out, terminating

May 01 10:50:58.046818 [NOTICE] [pool www] child 4082 started

说一千道一万非常重要的就是程序里控制好超时,gethostbyname、curl、file_get_contents等函数的都要设置超时时间。

另一个就是多说,这个东西是增加了网站的交互性,但用的多了反应就慢了,假如你网站超时且用了多说是,可以关闭它。

6、自己遇见502的解决方法:

调整增大php 和Nginx 的backlog数。

PHP-FPM高负载的解决方法

这里只不过介绍了php-fpm的优化办法的,但通常情况下和nginx组合用的时候,单独优化其中一项的话,用途不是特别的大,同时还需要对nginx进行优化.nginx的做法办法参考:http://blog.haohtml.com/archives/6213.上面的优化前和优化后的图,看得出前后差距还是特别的大的.

致使nginx 502 bad gateway的PHP-CGI

NGINX频爆502 BAD GATEWAY的错误,看了网上的课程,仍没彻底解决。

现在我总结的解决502 BAD GATEWAY的方法有:
1.视服务器的性能,在php-fmp.conf里增加max_children的值,我现在用的

2.用reload参数定时重载php-fpm。这个重要原因是php脚本实行时间过长导致的,重载php-fpm能杜绝这个问题。怎么样彻底解决php-cgi脚本占用很多内存从而致使502错误的产生还值得进一步探讨,现在该做法不失为一种好方法。

具体的做法是,用crontab让php-fpm平滑重启,从而不影响PHP脚本的运行。

*/10* * * * /usr/local/php/sbin/php-fpm reload

=================== 优化设置=========================

When you running a highload websitewith PHP-FPM via FastCGI, the following tips may be useful to you : )

假如你高负载网站用PHP-FPM管理FastCGI,这类方法或许对你有用:)

1.Compile PHP’s modules as less as possible, the simple the best ;

1.尽可能少安装PHP模块,最简单是最好(快)的

2. Increas PHP FastCGI child number to 100 and even more.Sometime, 200 is OK! ;

2.把你的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就能

注:我的1g测试机,开64个是最好的,推荐使用重压测试获得最好值

3.Using SOCKET PHP FastCGI, and put into /dev/shm on Linux;

3.用socket连接FastCGI,linux操作系统可以放在/dev/shm中

注:在php-fpm.cnf里设置/tmp/nginx.socket就能通过socket连接FastCGI了,/dev/shm是内存文件系统,放在内存中一定会快了.记得这个时候也要在nginx里的配置里进行修改,维持一致.

location~ .*/.?$

{

#

将Nginx与FastCGI的通信方法由TCP改为UnixSocket。TCP在高并发访问下比UnixSocket稳定,但Unix Socket速度要比TCP快。

fastcgi_pass unix:/tmp/php-cgi.sock;

#fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fcgi.conf;

}

4. Increase Linux “max open files”, using the following command:

# echo ‘ulimit -HSn 65536′ /etc/profile

# echo ‘ulimit -HSn 65536 /etc/rc.local

# source /etc/profile

4.调高linux内核打开文件数目,可以用这类命令

echo ‘ulimit -HSn 65536′ /etc/profile

echo ‘ulimit -HSn 65536′ /etc/rc.local

source /etc/profile

注:我是修改/etc/rc.local,加入ulimit -SHn 51200的

5.Increase PHP-FPM open file description rlimit:

# vi /path/to/php-fpm.conf

Find “1024”

Change 1024 to 4096 or higher number.

Restart PHP-FPM.

5.增加 PHP-FPM 打开文件描述符的限制:

# vi /path/to/php-fpm.conf

找到

“1024”

把1024更改为4096或者更高.

重启PHP-FPM.

6. Using PHP code accelerator,e.g eAccelerator, XCache. And set “cache_dir” to /dev/shm on Linux.

6.用php代码加速器,比如eAccelerator, XCache.在linux平台上可以把`cache_dir`指向/dev/shm

TAG标签:php解释器下载(1)

转载请说明来源于当快软件园(https://www.lrvxg.com)

本文地址:https://www.lrvxg.com

郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com

查看全部