Articles of php fpm

Nginx经常返回404

我在Ubuntu 14.04中有一个Nginx 1.4的服务器,它运行的是PHP5-fpm。 服务器在私有云服务器中有多个域和子域。 服务器从stream量中获得一致的点击量并且很多。 一切都很好,但Nginx经常返回404,而事实上并没有在实际的情况下,尝试之后,它返回的实际输出,而不是404。下面是我的一个从nginxconfiguration的服务器块的一个例子。 server { listen 80; #listen [::]:80; root /var/www/appfolder; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name domain-name; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to […]

Apache2.4 – PHP 5.6和PHP7.1同时运行

我正在寻找运行PHP 5.6和7.1在我的开发服务器,与Apache。 我知道Nginx可以轻松处理这个,但是我真的需要Apache。 这里很confs # My main configuration file, running with PHP7.1 <VirtualHost xx.xx.xx.xx:80> ServerName www.mydomain.com ServerAlias mydomain.com DocumentRoot /var/www/mydomain.com/html </VirtualHost> <VirtualHost xx.xx.xx.xx:80> ServerName xx.xx.xx.xx <Directory /> Deny from all </Directory> </VirtualHost> # PHP 5.6 <VirtualHost xx.xx.xx.xx:80> ServerName foo.mydomain.com DocumentRoot /var/www/foo.mydomain.com/html <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock" </FilesMatch> </VirtualHost> 7.1正在工作,而5.6返回一个404.谢谢!

用nginx启用centos7上的PHP exec

我有一个运行nginx和PHP-FPM 7.1的Centos7.3 Web服务器。 我试图为PHP启用exec,但它不在/etc/php.ini或/etc/php-fpm/php-fpm.conf中的禁用function。 因为它是nginx我不能使用.htaccess强制启用它。

尝试将池用作不同的用户时出现Apache 2.4和PHP7.0-FPM问题

我目前正在试图从PHP 5.6升级到PHP 7.0的开发机器。 我们目前的设置使用PHP-FPM池来使多个站点运行在Apache 2.4实例上,每个站点都有自己的Linux用户。 在PHP 5.6下,一切正常,每个站点都以自己的Linux用户身份运行。 但是,一旦安装了PHP 7.0,事情似乎没有按计划进行。 问题似乎是PHP7.0-FPM带有一个名为/etc/php/7.0/pool.d/www.conf的池,我在/etc/php5/fpm/pool.d没有这个池。 www.conf包含以下代码: ; pool name ('www' here) [www] … user = www-data group = www-data … listen = /run/php/php7.0-fpm.sock … listen.owner = www-data listen.group = www-data … 这基本上是池的默认configuration,我没有改变这个文件中的任何东西。 如果我删除池,我的网站都没有工作,如果我修改user行,他们作为该用户运行,这意味着我所有的网站都使用这个池。 然而,我在/etc/apache2/sites-enabled/subdomain.domain.com.conf虚拟主机中定义的套接字与在/etc/php/7.0/fpm/pool.d/subdomain.domain.com.conf定义的相同/etc/php/7.0/fpm/pool.d/subdomain.domain.com.conf ,它出现在/run/php/php7.0-fpm_subdomain.domain.com.sock 。 我认为这可能是我的Apacheconfiguration的问题,但我似乎无法发现任何错误,即使在线复制了许多教程。 /etc/php/7.0/pool.d/subdomain.domain.com.conf包含以下代码: [subdomain.domain.com] user = myUser group = myUser listen = /run/php/php7.0-fpm_subdomain.domain.com.sock listen.owner = […]

Debian 9使用–with-fpm-acl构buildPHP7.0失败

我需要在PHP-FPM中启用对POSIX ACL的支持。 我可以使用getfacl获取ACL列表,并使用shell中的setfacl -m设置它们,以便我的内核支持它。 我已经下载了PHP7.0_7.0.19的源码 $ cd /tmp/ $ apt-get source php7.0 并更新了debian/rules文件以启用ACL支持: $ cd php7.0-7.0.19/ $ vim debian/rules 然后在第238行( export fpm_config = \ )我已经添加–with-fpm-acl=yes所以这个configuration看起来像: export fpm_config = \ –prefix=/usr –enable-fpm –enable-cli –disable-cgi –disable-phpdbg \ –sysconfdir=/etc/php/$(PHP_NAME_VERSION)/fpm \ –with-fpm-user=www-data –with-fpm-group=www-data \ –with-config-file-path=/etc/php/$(PHP_NAME_VERSION)/fpm \ –with-config-file-scan-dir=/etc/php/$(PHP_NAME_VERSION)/fpm/conf.d \ –with-fpm-acl=yes \ $(COMMON_CONFIG) \ –with-libevent-dir=/usr \ $(CONFIGURE_SYSTEMD) 我跑 dpkg-buildpackage -us -uc […]

服务器达到pm.max_children设置(280),考虑提高它

PHP-FPM进程因为达到pm.max_children而每隔几天就会崩溃 ,我必须手动启动它才能build立站点。 服务器configuration: Total Memory: 7986M CPU: 2 Core 1 PHP Process Taking: 22M PHP-FPMconfiguration: pm = dynamic pm.max_children = 280 pm.start_servers = 15 pm.min_spare_servers = 15 pm.max_spare_servers = 35 pm.max_requests = 1000 检查PHP-FPM日志,发现以下错误。 [02-Aug-2017 23:23:54] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 10 […]

NextCloud和PHP-FPM作为全球别名问题

今天,我决定使用PHP-FPMtesting我的NextCloud安装为全局别名。 我目前使用mod_php7在/ var / www / cloud目录下有一个NextCloud工作实例作为别名,但是我希望切换到没有运气的PHP-FPM! 杰杰奥。 我目前的规格是: Ubuntu服务器16.04 ISPConfig 3.1.6 安装的PHP版本5.6 – 7.0和7.1 NextCloud 12.0.0 因为我想用PHP 7.0启用PHP-FPM,所以我在/etc/php/7.0/fpm/pool.d中用这个configuration文件创build了一个PHP-FPMconfiguration文件: [cloud] listen = /var/lib/php7.0-fpm/cloud.sock listen.owner = www-data listen.group = www-data listen.mode = 0660 user = www-data group = www-data pm = dynamic pm.max_children = 100 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 5 pm.max_requests = […]

游泳池www小孩退出信号6,wordpress http错误

我已经运行了nginx + php7的 Debian Stretch for wordpress网站。 这个问题不是关于wordpress ,而是关于php7.0-fpm (这只是说wordpress显示我当前的PHP问题)。 请不要告诉我“谷歌它”,我半天,尝试所有可能的解决scheme。 没有工作。 在一个WordPress的文章中,当我上传一个文件,我得到一个HTTP错误(注意,这不会发生在插件更新和类似的操作)。 有我尝试从中得到一个错误的文件types: jpg png pdf mp3 还有我试过的文件types,我没有得到一个错误: txt doc docx 这是php7.0-fpm.log当我重新启动php7.0-fpm并尝试上传三个不同的文件: [11-Aug-2017 14:44:32] NOTICE: fpm is running, pid 661 [11-Aug-2017 14:44:32] NOTICE: ready to handle connections [11-Aug-2017 14:44:32] NOTICE: systemd monitor interval set to 10000ms [11-Aug-2017 14:50:35] WARNING: [pool www] child 749 exited […]

NGinX + PHP-FPM微服务死锁

我有许多小型服务在两台服务器上运行: 服务器A)pipe理高安全性服务:用户帐户和个人消息。 服务器B)pipe理低安全性服务:图像上传和公共资料。 问题在这里。 在不可预知的时间间隔内,服务器将开始超时,CPU,内存或磁盘活动不会显着。 我很快发现问题在于服务器A正在运行两个互相依赖的服务。 在这个例子中,我将它们称为服务AA和AB。当服务AB收到请求时,它会使AA以类似于oAuth的方式检索有关用户帐户的数据。 我确定这个问题是PHP-FPM中的一个僵局。 当服务AB接收到n个请求(n是允许产生同时进程的PHP-FPM的数量)之后,它已经设法向同一台机器上的服务发出请求,它将开始排队请求。 显然,如果它已经分配了所有的进程,PHP-FPM将停止处理任何新的请求。 不幸的是,这包括它在同一台服务器上的请求。 因此,服务器将实际上已经死亡(服务器B与它一起)。 起初,我发现解决scheme相当简单:我创build了几个PHP-FPM池,允许应用程序并行运行。 这可以缓解这个问题,因为它现在允许PHP-FPM创build更多的stream程,但是不能解决这个问题。 我不确定问题的确切原因是什么,但是由于问题似乎没有改变:服务器将闲置,但为其中一个服务产生了最大数量的PHP-FPM进程。 我认为现在Nginx已经陷入了僵局。 我不想声明如何nguni工作,但据我所知,如果有n + 1(n仍然是一个池的PHP-FPM进程限制)服务AB的请求 – 这取决于AA – NginX会等待PHP-FPM接受这个请求。 想知道是否有两个不同的服务有“两个请求队列”的选项,或者如果我的方法有什么问题的话。 – 当然,如果有任何诊断/日志,我应该运行/提供。 我会很乐意提供。

定期无法连接到从MySQL的MySQL

我在已经启动并运行了一年以上的centos 7服务器上有一个标准的LEMP设置,没有任何问题。 从昨天起,PHP似乎无法定期连接到mysql(mariadb)。 我们的代码没有更新,服务器上也没有更新。 到目前为止,我已经尝试重新启动mariadb,释放磁盘空间,然后重新启动服务器。 在错误日志中没有什么明显的。 在cron日志中,我得到了一个mysql连接错误,这是由php尝试连接时输出。 我想不出别的办法呢?