Articles of php fpm

为什么静态与dynamic进程pipe理对php-fpm的内存使用量影响很大?

我最近将一个客户端迁移到运行Nginx + PHP-FPM的EC2实例。 当我第一次设置服务器时,我已经设置了pm=static和40个工作进程。 一个星期左右之后,我决定尝试pm=dynamic ,最多200人,最less30人。 我注意到,在静态设置下,40个进程占用了大约2.3GB的内存,而在dynamic的情况下,我看到只有1.2GB内存的60个进程的峰值。 从New Relic看到下面的图表,我的注释是红色的。 你可以看到,在11月25日白天,我从静态更改为dynamic,并重新启动php-fpm。 之后我们可以看到48个进程只占用990MB,60个进程只占用了1.2GB的内存。 什么可能导致这种静态和dynamicpipe理之间的差距? 难道是dynamic的,我已经把最大的请求设置为50? 也许静态内存的使用是由于内存泄漏,而不是内部使用php-fpm?

SPDY&Nginx上传问题

我有这样的设置:使用php-fpm和http://blueimp.github.io/jQuery-File-Upload/的Nginx服务器 当我尝试上传约10MB后的文件失败。 SPDY激活时会发生这种情况。 当SPDYclosures时,上传工作正常。 有谁知道这个问题的解决方法/修复?

nginx用php-fpm下载php文件而不是在mac os x上执行它们(本地环境)

我无法让PHP文件在本地开发机器上执行。 我似乎已经成功安装了nginx,而且php-fpm似乎也正确安装,并且正在运行,但不能完全解决为什么PHP文件正在被下载而不是被执行。 在经历了许多小时的挫折之后 ,我想最好先问问以前可能做过的人! 我已尽力提供所有的信息,但如果有什么可能有用的或我错过了, 请不要犹豫,在评论中提问 。 请注意:仔细阅读我遇到的问题。 我之所以这么说,是因为我已经阅读了几乎所有可能与Google有关的问题,并尝试了几种不同的方法,修复,build议,重新安装,configuration等等。每个人都无法提供帮助修复甚至debugging我遇到的问题。 换句话说,这绝对不是一个重复的问题。 我花了几个小时阅读确保! 我已经使用https://github.com/josegonzalez/homebrew-php成功安装了nginx和php-fpm 。 良好的信任brew doctor确认一切都是最新的,我有一切必要的安装(XQuartz,Xcode命令行工具等)。 下面是一些文件的摘录,在试图了解我的设置时可能会有帮助: php-fpm日志 tail -f /usr/local/var/log/php-fpm.log [24-Dec-2013 00:05:59] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root [24-Dec-2013 00:05:59] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root [24-Dec-2013 00:05:59] NOTICE: […]

工作Nginx fastcgi_cache php-fpmcaching和静态文件cachingconfiguration?

Nginx的wiki非常含糊,解释如何正确设置nginx的php-fpm与fastcgi_caching的网站有cookies即wordpress,drupal,vbulletin等。 我从http://vbtechsupport.com/796/下载了一个名为centmin的修改后的nginx bash shell安装脚本,同时安装了nginx v1.0.2,php 5.3.6 php-fpm,mariadb 5.2.6 mysql,memcached 1.4.5服务器并通过shell脚本自动攻击基准testing,缺less设置fastcgi_caching用于cachingphp的configuration参数。 它也缺less安装程序来caching本地服务文件的静态文件。 当静态文件驻留在同一个磁盘上时,是否有使用proxy_cache的意义? 任何人有一些提示和信息链接到信息阅读教程正确的设置为PHP(PHP-FPM)fastcgi_caching以及caching本地驻留的静态文件? 谢谢

在php-fpm confs中设置php值而不是php.ini

我想在php-fpm conf文件中设置通常在php.ini中设置的值。 我正在使用nginx。 我已经创build了以下设置,但我不确定这是否可行。 php_value[memory_limit] = 96M php_value[max_execution_time] = 120 php_value[max_input_time] = 300 php_value[php_post_max_size] = 25M php_value[upload_max_filesize] = 25M 你觉得如果这样可以吗? 当一个值在php.ini和php-fpm conf文件中设置时会发生什么? php-fpm覆盖了ini之一? 最后,这不是一个问题,我可以为所有虚拟主机设置不同的值? 我的意思是php.ini似乎是一个全局设置,而这是主机的依赖。 不同的主机可以运行不同的内存限制等?

是否有可能使用不同的池选项(禁用xdebug /禁用xdebug)来设置PHP-FPM

我有一个LEMP环境,并且需要将所有开发子域从分段中分离(使用xdebug分段进行开发)。 dev.projectX.mydomain.tld staging.projectX.mydomain.tld 因此,我设置了两个池php-dev和php-stage,但似乎只能在php.ini中启用扩展! 这是我的pool.conf(dev) [php-dev] listen = 127.0.0.1:9101 listen = /var/run/php-fpm/a1-php-dev.socket listen.backlog = -1 listen.allowed_clients = 127.0.0.1 user = nginx group = nginx request_slowlog_timeout = 3s slowlog = /var/log/php-fpm/slowlog-php-dev.log pm = dynamic pm.max_children = 20 pm.start_servers = 10 pm.min_spare_servers = 4 pm.max_spare_servers = 16 pm.max_requests = 500 pm.status_path = /status request_terminate_timeout = 120s rlimit_files […]

为weberver用户设置$ PATH

我试图用包括web服务器用户(即www-data)在内的所有用户为编辑/etc/profile , /etc/environment等不同的方法添加$PATH 。在任何情况下,它都可以在terminal中运行, PHP中的命令。 例如terminal中的echo $PATH显示可用的path,包括我添加的; 但是,PHP中的shell_exec('echo $PATH')显示了没有添加path的原始path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 我怎样才能设置全球$ PATH可以由networking服务器用户使用? 我在Ubuntu / Debian上使用nginx。 我试图编辑/etc/init.d/nginx ,我认为这是nginx的起点,但是没有效果。

与php5-fpm的神秘错误

我遇到了一个非常困难的情况,最新的php5-fpm(来自debphp)和Ubtuntu 12.04LTS上的nginx 1.4.3。 总之,我无法启动php5-fp ,我在syslog中一直收到这个错误: kernel: [1213013.564441] init: php5-fpm main process (7357) terminated with status 78 kernel: [1213013.564496] init: php5-fpm main process ended, respawning ….. (repeated several times) kernel: [1213014.143911] init: php5-fpm respawning too fast, stopped 我的/var/log/php5-fpm.log根本没有被填充。 在/run (或/var/run )中没有php5-fpm.sock和php5-fpm.pid 。 我的/etc/php5/fpm/php-fpm.conf如下:(这个文件似乎不是现在加载,因为我试图把一些伪造的信息,但没有造成任何改变) ;;;;;;;;;;;;;;;;;;;;; ; FPM Configuration ; ;;;;;;;;;;;;;;;;;;;;; include=/etc/php5/fpm/*.conf ;;;;;;;;;;;;;;;;;; ; Global Options ; ;;;;;;;;;;;;;;;;;; […]

Nginx + php-fpm – 运行时每个php-fpm进程70-100%cpu

我有以下情况发生: 我们正在使用8核,8gb ram,2.6 ghz的linode(使用nginx + php-fpm) – 我们获得了非常高的cpu使用率图表(我们不想成为如此糟糕的VPS邻居)… 我们的网站一次只有不到100个用户 – 所以这种情况也令人难以置信 – 我们的CPU使用率非常高。 我们正在使用一个非常未知的,可能是CPU密集型的PHP智慧,可怕的框架,而不是众所周知的,有据可查的,精心制作的其他框架,如WordPress或Drupal,其中有大量关于caching的文档(以及插件处理caching)在一个nginx + php_fpm平台上的php。 因此,我们有大约6个开放的php-fpm进程,当运行时,单独消耗大量(30+,通常接近99%)的CPU数量 – 而且我并没有真正想到如何阻止他们使用如此之多的CPU 。 我不知道是哪个php脚本导致这些尖峰,因为它们一直在发生……通常只有1或2个正在运行 – 但是当所有6个运行时,我们最大化所有8个cpus。 我的pool.d / www.conf文件具有以下设置: pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6 我们做了这个设置,因为按照我解释的方式,我们的记忆实际上是惊人的(htop显示472/7000 + mb使用,没有交换等),我们可以处理更多的进程,并打破等待获得的线处理 – 但不幸的是,因为在运行时我们的CPU上每个进程都过于激烈 – 我们最终将通过车顶驱动CPU – 所以我们无法处理足够的进程。 这个问题 – 我们可以做些什么来减lessphp-fpm cpu使用的过程,这样我们可以增加php-fpm池configuration文件中的设置 – […]

使用PHP FPM的Apache2 fcgid(不是FastCGI)

Apache2有一个内置的fastcgi替代品,叫做fcgid。 这很好,但它缺less我用来连接到PHP-FPM的FastCgiExternalServer指令。 我怎样才能做同样的apache2 fcgid模块? 我的目标是使用php-fpm与Apache2(在debian挤压)。