我们在RHEL6上使用nginx和php-fpm设置web服务器。 这台机器已经安装了Wordpress,运行良好。 我们有wordpress设置去wptest.domain.local。 然后,我们在启用了站点的名为servername.domain.local的地方创build了一个新站点,我们希望托pipe各种工具。 PHP工作正常,我们没有与Wordpress的问题。 但是,当试图达到phpmyadmin,我们得到这个错误 2012/09/14 16:22:13 [error] 10065#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.15, server: servername, request: "GET /phpmyadmin/setup/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "servername" 这里是我们的网站configuration: server_name servername severname.domain.local; access_log /srv/www/severname/logs/access.log; error_log /srv/www/severname/logs/error.log; root / srv / www / severname / public_html; 位置 / […]
nginx通过fastcgi连接到php-fpm,使用位置块中的标准/etc/nginx/fastcgi_params 。 当从命令行使用cgi-fcgi -bind -bind连接到/.status(php-fpm.ini :: ping.path)时,结果会按预期返回(X-Powered-By set,response body等)。 当用nginx请求时,结果会回到空(X-Powered-By集合,没有主体长度或内容)。 nginx返回200,因为它得到了“有效”的响应。 看着tcpdump,我在FCGI头文件中隔离了对奇偶校验的请求(减去shell设置的用户相关的envvariables)。
我们正在运行一个使用iuscommunity回购的CentOS 6节点,并且想将以前安装的php53u升级到php54。 但是,这引起了php53u&php54之间的依赖冲突。 有没有人有这个问题的想法? –> Running transaction check —> Package php54-fpm.i686 0:5.4.5-1.ius.el6 will be installed –> Processing Dependency: php-common = 5.4.5-1.ius.el6 for package: php54-fpm-5.4.5-1.ius.el6.i686 —> Package php54-gd.i686 0:5.4.5-1.ius.el6 will be installed —> Package php54-mbstring.i686 0:5.4.5-1.ius.el6 will be installed —> Package php54-pecl-apc.i686 0:3.1.11-2.ius.el6 will be installed –> Processing Dependency: php54 >= 5.3.5-1 for package: php54-pecl-apc-3.1.11-2.ius.el6.i686 –> […]
我有多个运行WordPress的虚拟网站,但是这个开始抛出错误,我无法find问题。 阿帕奇说: [Tue Jul 30 14:13:40 2013] [error] [client 82.100.0.70] FastCGI: comm with server "/var/www/uzivatel/www.domena.xy.php5-fcgi" aborted: idle timeout (30 sec) [Tue Jul 30 14:13:40 2013] [error] [client 82.100.0.70] FastCGI: incomplete headers (0 bytes) received from server "/var/www/uzivatel/www.domena.xy.php5-fcgi" 但是PHP-FPM日志是可以的(它在请求之后的几毫秒内生成): – – 30/Jul/2013:14:13:10 +0200 "GET /index.php" 200 /var/www/uzivatel/webs/www.domena.xy/index.php 793.871 35072 37.79/30.23 有代码200,所以页面似乎被正确创build,但Apache的行为就像从fastcgi服务器没有回应。 但有趣的部分是,当我切断页面生成之前,apache正确地返回到客户端。 但是如果我插入<?php die(); ?> 在标签之后,会发生同样的错误。 […]
我有两个服务器是Ubuntu 12.04和Ubuntu 14.04。 当我在新服务器中使用Ubuntu 14.04并启用在/etc/php5/fpm/php-fpm.conf中find的php-fpm日志文件,其内容如下: error_log = /var/log/php5-fpm.log 我注意到,我在Ubuntu 12.04中find的大部分日志都不是在14.04中编写的。 例如,如果我重新启动我的Ubuntu 12.04中的php5-fpm,重新启动日志正在写入,但是,这不会发生在14.04。 我在14.04错过的另一个日志如下: [23-Aug-2014 16:23:03] NOTICE: [pool web42] child 118098 exited with code 0 after 12983.480191 seconds from start [23-Aug-2014 16:23:03] NOTICE: [pool web42] child 147653 started [23-Aug-2014 17:27:31] WARNING: [pool web8] child 76743, script '/var/www/mysite.com/web/wp-comments-post.php' (request: "POST /wp-comments-post.php") executing too slow (12.923022 sec), logging […]
我有两个站点,我在Ubuntu 12.04上使用PHP-FPM 5.4从apache 2.2 vhosts运行。 到目前为止,我一直在使用服务器范围的(stock)mod_fastcgiconfiguration,但是现在我想把它分成两个FPM池,这样我就可以为每个configuration使用不同的PHP设置(例如,一个是dev站点,所以启用了错误显示)。 我已经根据文档设置了两个具有不同名称和套接字位置的FPM池,禁用全局fastcgiconfiguration,将其复制到我的虚拟主机中,并将其更改为指向每个虚拟主机的不同池,如下所示: <IfModule mod_fastcgi.c> <FilesMatch \.php$> SetHandler php-script </FilesMatch> Action php-script /php5.fcgi virtual Alias /php5.fcgi /var/fastcgi/php5.fcgi FastCGIExternalServer /var/fastcgi/php5.fcgi -socket /var/run/php5-fpm-www.sock <Directory "/var/fastcgi"> Order allow,deny <Files "php5.fcgi"> Order deny,allow Deny from all Allow from env=REDIRECT_STATUS </Files> </Directory> </IfModule> 实际上有4个虚拟主机,因为每个主机名都具有常规和SSL风格,并且每个虚拟主机指向一个FPM池。 我碰到的问题是,Apache抛出一个错误说: FastCgiExternalServer: redefinition of previously defined class "/var/fastcgi/php5.fcgi" 这应该怎么做?
我在Linux Mint LMDE上。 我只是收到了nginx从1.6.3升级到1.8.0的版本,现在我的所有网站都有空白页面 在这里我的configuration: server { listen 80; root /var/www/phpmyadmin; index index.php; server_name phpmyadmin.loc; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; } location ~ /\.ht { deny all; } } 这是phpmyadmin的基本configuration 当我进入我的索引时,我获得了访问日志。 127.0.0.1 – – [07/May/2015:11:53:51 +0200] "GET / HTTP/1.1" 200 31 "-" […]
目标是让PHP知道正确的面向web的server_port。 设置是: 在端口443上的nginx反向代理到在端口80上的清漆反向代理到在端口8008上的nginx并运行php-fpm作为fastcgi。 击中80或443都工作正常,除了$ _SERVER ['SERVER_PORT']在PHP总是显示8008默认情况下。 我可以硬编码一个fastcgi_param server_port,但它只会是正确的80或443,但不是两个。 # default fastcgi_param SERVER_PORT $server_port; # harcode to 80 fastcgi_param SERVER_PORT 80; 我怎样才能得到正确的面向外部的服务器端口可用于PHP?
我正在运行一个Web服务的负载testing。 这是一个运行在php-fpm和nginx上的使用fastcgi的php应用程序。 MySQL后端仅用于小型读取。 我总是看到一种奇特的模式:性能稳定,随着stream量的增加,性能会有所增加,但在高峰时刻性能会变得不稳定:CPU使用率不断波动。 这里是我看到的performance模式(用nmon可视化): 这个下降总是与我的负载testing工具locust.io在完成升级到我为testing设置的最高级别时的短暂停顿相符。 我的假设 :在这短暂的时刻, php-fpm主人认为负载已经消失,开始杀死工人; 在一会儿的交通恢复之后,它的响应速度不够快。 我不太明白的是,为什么它永远无法摆脱它:我看到负载均衡器背后的所有4个应用程序服务器无限期的波动。 这是我的php-fpm池configuration: [www] user = www-data group = www-data listen = /var/run/php5-fpm.sock listen.group = www-data listen.mode = 0660 pm = dynamic pm.max_children = 100 pm.start_servers = 40 pm.min_spare_servers = 40 pm.max_spare_servers = 100 pm.max_requests = 10000 我已经证实,这不是数据库的问题 – 我看到MySQL读取从站的数量翻倍后,完全相同的行为。 这是什么原因造成的? 我怎么能阻止它? 编辑: 这是一个图表,展示了我所看到的。 请注意,失败率通常会在user_count达到峰值时出现峰值,然后逐渐下降。
位于/var/log/php-fpm.log中的FPM日志文件的权限为rw——- (600)。 其他日志文件有rw-r–r– 。 我如何configuration文件权限为644?