Articles of php fpm

SOA:是否使用PHP FPM来提供没有NGINX的web服务stream量是一个好主意?

我正在使用PHP开发面向服务的体系结构。 我的团队成员提出,由于每个服务仅服务于HTTP通信,仅以JSON(无静态资产等)提供响应,所以最好只运行FPM并使负载平衡器直接将通信量发送到实例的IP地址和FPM暴露的端口。 我以前只听说过一起运行PHP-FPM和Nginx。 所有的在线文献都build议一起运行NGINX和FPM,但是不能解释为什么。 NGINX提供的唯一好处是能够提供静态资产和PHP产生的输出吗? 如果NGINX以另一种方式增加价值,那么它在做什么,在哪里可以find支持文档。

(坏)nginx + php-fpm优化(由我们的提供者完成)审查

我问我们的托pipe服务提供商在我们的托pipe服务器上进行nginx + php-fpm优化。 我得到了这个答案: 嗨,没有太多的优化可以在Nginx内完成,因为它是线程化的,并不使用许多资源。 我检查了你的phpconfiguration,发现内存限制是128M,pm.max_children是50.这意味着PHP可以在2G服务器上使用高达6.5G的内存。 我已经将max_children减less到了15,以便服务器不能耗尽内存。 你想让我在你的其他服务器上这样做吗? 首先我想在nginx中有很多可能的优化,比如我读过这篇文章http://www.softwareprojects.com/resources/programming/t-optimizing-nginx-and-php-fpm-for-高交通网站-2081.html,并检查是否至less有一些优化应用,基本上都没有。 另外我觉得有很多可能的PHP-Fpm优化(例如在这篇文章中http://www.if-not-true-then-false.com/2011/nginx-and-php-fpm-configuration-and – 优化提示和技巧/ )。 再一次,基本上没有一个是适用的。 上面的文章中提到的优化有用吗? 最后,我认为由于2GB内存和128MB memory_limit最多可以使用15个孩子的逻辑是完全的废话,因为通常一个php-fpm线程在我们的应用程序中占据了30MB左右。 所以,我应该从平均使用量来计算最大的孩子数量,对吗? 此外,如果我只有一个单一的应用程序在networking服务器(和数据库是不同的一个,没有其他服务正在运行在这台机器上),我可以使用静态数量的PHP-FMP线程,我可以吗?

在Debian上的VirtualHost中设置php_value挤压Apache 2.4.10 + mod_proxy_fcgi + php-fpm?

将我们的服务器更新到Debian Jessie(8.3)后,我将Apache 2.4.10从mpm_worker / mod_php切换到mpm_event / proxy_fcgi / php-fpm。 我为所有虚拟主机configuration了切换,如下所示: # cat conf-enabled/php5-fpm.conf <FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/" </FilesMatch> 我也禁用了mod_php。 因此,Apache不会让我在VirtualHosts文件中有php_admin_value / php_value / php_flag指令。 Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration 我读了一些关于.user.ini文件,但是听起来不像我需要设置的指令会被支持,而且我只是成功地从我的站点中删除了所有的.htaccess文件,这似乎是一个落后(和不兼容)的方法。 另一个常见的build议是为每个VirtualHost创build一个独特的池,但是这个问题有两个原因: 设置的复杂性 – 现在,configuration是非常简单的 从套接字切换到TCP? 我正确的是,我需要一个独特的TCP端口每池? 我还需要一个独特的套接字每池? 内存分配! 这台服务器没有我想要的那么多的RAM。 在服务器上访问次数较less的网站上有一堆php-fpm实例可能会浪费,这似乎很浪费。

PHP-FPM + PHP-5.2.14 + NGINX – 给404

我一直在努力让PHP通过PHP-FPM工作。 我们的一台服务器被slowloris打了,是Apache不能处理它。 我得到了NGINX运行一切正常,并传递数据返回到Apache,但现在我试图去纯NGINX至less大部分的东西。 我从源代码安装了PHP-5.2.14,并用PHP-FPM修补了5.14,并configuration了ff: './configure' '-enable-fastcgi' '–enable-fpm' '–build=x86_64-redhat-linux-gnu' '–host=x86_64-redhat-linux-gnu' '–target=x86_64-redhat-linux-gnu' '–program-prefix=' '–prefix=/usr' '–exec-prefix=/usr' '–bindir=/usr/bin' '–sbindir=/usr/sbin' '–sysconfdir=/etc' '–datadir=/usr/share' '–includedir=/usr/include' '–libdir=/usr/lib64' '–libexecdir=/usr/libexec' '–localstatedir=/var' '–sharedstatedir=/usr/com' '–mandir=/usr/share/man' '–infodir=/usr/share/info' '–cache-file=../config.cache' '–with-libdir=lib64' '–with-config-file-path=/etc' '–with-config-file-scan-dir=/etc/php.d' '–disable-debug' '–with-pic' '–disable-rpath' '–with-pear=/usr/share/pear' '–with-bz2' '–with-curl' '–with-exec-dir=/usr/bin' '–with-freetype-dir=/usr' '–with-png-dir=/usr' '–enable-gd-native-ttf' '–without-gdbm' '–with-gettext' '–with-gmp' '–with-iconv' '–with-jpeg-dir=/usr' '–with-openssl' '–with-png' '–with-pspell' '–with-expat-dir=/usr' '–with-zlib' '–with-zlib-dir=/usr/include' '–with-layout=GNU' '–enable-exif' '–enable-ftp' '–enable-magic-quotes' '–enable-sockets' '–enable-sysvsem' […]

php-fpm调用oom-killer

我看到一个问题,PHP-FPM完美工作了几天,然后决定填满所有的内存+交换和调用OOM杀手。 发生这种情况后,服务器是完全死了,你甚至不能SSH进去了。 必须重启才能恢复正常。 我想知道为什么会发生这种情况,如果有一个修复或解决方法,如限制它可以使用的内存量或重新启动过程,如果它开始使用太多。 我已经捕获了内核转储发生的最后几次。 http://pastebin.com/raw.php?i=rX6jYDe0 http://pastebin.com/raw.php?i=f2qx5GcS 我的php-fpm.conf http://pastebin.com/raw.php?i=27hvN27q 我的www.conf: http://pastebin.com/raw.php?i=VgYtut9j 让我知道如果还有什么我可以给你更多的信息,为什么这可能会发生。

Nginx为所有.HTML请求提供一个特定的PHP脚本

总之,我需要运行一个特定的PHP文件, patch.php ,每次有人要求在这个网站上的HTML页面… 我们最近从Apache服务器转移到Nginx服务器,一切都很好。 然而,这个看起来像是年代久远的网站有一个非常奇特的模式: 所有页面上的所有链接链接到.html文件,但html文件缺less页眉和页脚 我不确定这个网站以前是如何工作的,但是我看到要解决这个问题的方法是简单地告诉nginx,任何时候有人要求一个html文件,简单地为他们提供一个php文件,包括头文件,他们想要的页面,和页脚。 但是我迄今为止的尝试并没有成功。 从这个问题,我做了以下几点: location ~\.(htm|html)$ { root /home/www-dev/domain.com/web; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index patch.php; #the patch file I want to run for all html include fastcgi_params; } 这比我的第一次尝试要好得多,但是不起作用 – 奇怪的是,它告诉我“访问被拒绝” – 这不是通常的错误页面,但所有权和权限是正确的,所以我不认为这是相关的。 所以,我真的很想知道我在做什么错了—先谢谢了!

nginx使用重写为dynamic404图像

我想获得一个dynamic的404响应取决于请求的url: foo.jpg不存在 http://example.com/img/style/thumbnail/foo.jpg 应该显示 http://example.com/img/notfound/thumbnail.jpg 具有404头状态 我得到了正确的重写部分,但我似乎无法得到它与404状态代码返回。 我用下面的代码尝试了这个,但没有成功: location ~ /img { if (!-f $request_filename){ rewrite "^(.*img\/)style\/([a-zA-Z\_\-[0-9]*)\/?(.+)" $1notfound/$2.jpg; #so far so good. Now i want to return the rewrite result as a 404 response error_page 404 = $request_filename; return 404; } } 这给了我默认的nginx 404错误页面,而不是重写的URL与404状态码。 我如何告诉nginx使用404错误页面的重写结果?

apc“open()/ www / cache / xxx失败。 没有这样的文件或目录“的错误

我认为这是因为APC,因为我只使用APC系统进行caching。 这里是完整的日志: 2013/04/23 19:15:05 [error] 539#0: *1305213 open() "/var/www/cache/e4ce8db565491cdcf27ab61a441xxxx" failed (2: No such file or directory), client: 2.83.130.yyy, server: zzz.com, request: "GET /cache/e4ce8db565491cdcf27ab61a441xxxx HTTP/1.1", host: "zzz.com", referrer: "http://zzz.com/aPHPfile" configuration:nginx,php5-fpm

如何减lessCentOS 6.4中的php-fpm RAM使用情况?

我在我的服务器上安装了LEMP堆栈。 我的服务器有1GB的RAM空载。 我已经安装了php-fpm,它看起来像使用我的服务器的大部分内存。 我使用下面的命令来获取正在运行的程序列表: ps aux 而这个命令产生的结果是: [user@server]$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 19232 1348 ? Ss Aug23 0:00 init root 2 0.0 0.0 0 0 ? S Aug23 0:00 [kthreadd/145] root 3 0.0 0.0 0 0 ? S Aug23 0:00 [khelper/145] root […]

我如何开始与supervisord的php7.0-fpm?

我正在尝试用php7.0-fpmbuild立一个dockerized的ubuntu 16.04lts与apache2和nginx 我用过的命令,但没有工作 [program:php-fpm7.0] command = /usr/sbin/php-fpm7.0 –daemonize –fpm-config /etc/php/7.0/fpm/php-fpm.conf autostart=true autorestart=true priority=5 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 和 [program:php-fpm7.0] command = /usr/sbin/php-fpm7.0 -c /etc/php/7.0/fpm/php-fpm.conf autostart=true autorestart=true priority=5 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 和 [program:php-fpm7.0] command = /usr/sbin/php-fpm7.0 -c /etc/php/7.0/fpm autostart=true autorestart=true priority=5 stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 下面是当我尝试作为容器运行时来自docker的错误日志 从apache2容器 2016-06-26 20:04:21,488 CRIT Set uid to user 0 […]