Articles of php fpm

Apache mpm-worker + mod_fcgid + php5_cgi部分和零星地向下

最近,由于内存问题,我已经从Apache mpm-prefork(PHP模块)更改为mpm-worker(PHP-FPM)。 我正在运行一个相当大的PHP应用程序,每个prefork进程需要20-30M左右。 总的来说,服务器运行稳定而且快速。 但是,有时几分钟内某些用户不能使用该页面。 工作假设1(=粗略的想法)是其中一个进程(通常为2,有时达到5或6)挂起,每个分配给该进程的客户端(例如50%的客户端)收到错误消息。 工作假设2是MaxRequestsPerProcess负责。 在500次调用之后,进程试图closures,mod_fcgid没有正常地杀死,而当进程正在等待kill时,进一步的客户被分配给(并被拒绝)进程。 但是我不能真正想象Apache会如此愚蠢。 我的问题是:除了一些错误日志没有什么 [warn] mod_fcgid: process ???? graceful kill fail, sending SIGKILL 我正在想什么来追踪这个问题。 它似乎是零星的,我还没有设法挑起它。 服务器性能(CPU / RAM)不会成为问题,因为最近几周总体负载已经在较低的范围内。 感谢任何提示。 对我的假设的任何意见(这并没有帮助我find解决scheme,但 – 我试图禁用MaxRequestsPerProcess,但不知道是否有帮助)? 我将非常感谢一些想法如何跟踪这个问题。 Apacheconfiguration <Directory /var/www/html> … # PHP FCGI <FilesMatch \.php$> SetHandler fcgid-script </FilesMatch> Options +ExecCGI </Directory> <IfModule mod_fcgid.c> FcgidWrapper /var/www/php-fcgi-starter .php # Allow request up to 33 […]

nginx varnish nginx php-fpm:php的_SERVER的实际ip

这是具体的问题。 一个Nginx服务器(称为N1)侦听:80,并通过proxy_pass转发清漆Varnish在127.0.0.1:6081侦听,并转发到8080上的Nginx(N2)。N2与php-fpm套接字进行通信。 N1 <> V <> N2 <>点 N1: location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://varnish/; proxy_redirect off; } 目前 $ _SERVER ['REMOTE_ADDR'] =='127.0.0.1' 期望 $ _SERVER ['REMOTE_ADDR'] =='真正的远程地址'

在一台服务器上同时使用mod_php(Apache)和php-fpm(nginx)

是否有可能在同一台服务器上使用Apache+mod_php和nginx+php-fpm ? 我知道这两个服务器不能共享相同的端口,但可以在一台服务器上运行两个不同的PHP模块吗? 我打算使用一些网站与Apache和一些与Nginx(用于性能testing)。 两者都通过YUM安装。

PHP文件下载(源代码),而不是运行Nginx和PHP5-FPM

浏览到网站上的页面时,正在下载页面而不是运行Nginx Config – user www-data www-data; worker_processes 4; events { worker_connections 2048; } http { include mime.types; default_type application/octet-stream; access_log off; sendfile on; tcp_nopush on; tcp_nodelay off; keepalive_timeout 10; gzip on; gzip_comp_level 2; gzip_proxied any; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; server { listen 80; server_name localhost; location / { root /home/bil/public_html/webiste.net/public/; index […]

NginX导致PHP文件被执行两次

我处于一个困难的地方,试图弄明白为什么会这样。 出于某种原因,当我打开我的网站的index.php文件正在执行。 我已经能够通过添加file_put_contents('runs.txt', 'executed'.PHP_EOL, FILE_APPEND);将其缩小到NginX / PHP-FPM file_put_contents('runs.txt', 'executed'.PHP_EOL, FILE_APPEND); 到index.php的顶部,并使用网站和命令行执行它。 如果我从命令行执行它,它只输出一个executed ,而如果我从网站(通过NginX) executed它输出两个executed 。 该脚本也没有redirect到自身,因为它只是返回200响应代码。 除了通过执行脚本两次使用更多的内存之外,还通过使CSRF再次生成来消除CSRF保护,因此CSRF是无用的。 下面是我的nginxconfiguration文件: nginx.conf user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log […]

长时间轮询的php5-fpm优化

我正在用PHPdevise一个聊天应用程序。 我使用php-fpm环境下的nginx。 问题是,多个客户端连接后,PHP脚本变得非常慢。 我只有几个(5-10)客户端连接,长轮询被设置为30秒。 Nginx可以立即提供图片或样式等静态内容,但对于PHP脚本来说,加载需要将近5秒的时间。 我使用XDebug来剖析代码,但它告诉我,加载了5秒的脚本只花了100ms,这是令人困惑的。 我认为php5-fpm队列传入的请求,这导致这样的延迟。 有什么我应该知道关于php5-fpmconfiguration使用长轮询时? 我想强调的是,当有5个客户正在使用聊天时,会变得非常慢。 类似的问题: http : //forum.nginx.org/read.php?3,198958 ( 一个长时间运行的PHP脚本阻止所有其他的PHP请求 ) 这也可能是连接: http : //www.matt-knight.co.uk/2011/concurrent-php-sessions/

突然错误与wordpress与nginx(未捕获SyntaxError:意外的input结束)

我已经在我的VPS上安装了Wordpress,并且使用apache2平稳运行。 但是最近,我意识到它消耗了太多的RAM(7-8会话〜600MB),所以我决定改用Nginx。 改变几天后,工作正常,没有任何问题,但突然昨天,pipe理页面布局被破坏。 我看着控制台日志,发现了这个问题:Uncaught SyntaxError:意外的input结束,文件是wp-admin / load-scripts.php。 您可以像访问该文件一样 http://vietnammechkey.com/wp-admin/load-scripts.php?c=0&load%5B%5D=jquery-core,jquery-migrate,utils,json2&ver=3.8.2 [Nginx] http://vietnammechkey.com:8888/wp-admin/load-scripts.php?c=0&load%5B%5D=jquery-core,jquery-migrate,utils,json2&ver=3.8.2 [Apache2] 如果我使用Apache2,文件将会更长,如果我使用nginx,文件将会被分类 注意:Wordpress完美地在Apache2上运行。

更新了php5-fpm,不能再使用socket了

今天早些时候,我更新了一个服务器上的软件包。 其中一个包是php5-fpm的更新,这似乎破坏了我使用unix:/var/run/php5-fpm.sock能力unix:/var/run/php5-fpm.sock 。 免责声明 :我最近才开始使用Linux; 我不完全明白这里发生了什么。 我已经回顾了很多其他的问题,但一直没能find答案我的问题,这是我得到一个502错误的网关错误,如果我尝试使用php5-fpm.sock而不是传递到127.0.0.1:9000 。 以下是一些基于其他问题的相关细节: 我的php5-fpm进程正在运行。 我的/etc/php5/fpm/pool.d/www.conf文件有listen = /var/run/php5-fpm.sock 我的服务器块有fastcgi_pass = unix:/var/run/php5-fpm.sock php5-fpm.sock 确实存在于/var/run/ 。 当升级php5-fpm时,它问我是否想覆盖我的www.conf。 我检查了差异,维护者文件和我的唯一变化是维护者的listen = 127.0.0.1:9000设置为默认值。 select覆盖并完成升级php5-fpm之后,我打开/etc/php5/fpm/pool.d/www.conf并将listen = /var/run/php5-fpm.sock改为listen,就像它已经事先设置。 然后我重新启动了php5-fpm,然后按照nginx的顺序。 我现在得到一个502时,访问该域名,并在一个完整的损失。 如果我在我的主机文件中将www.conf和fastcgi_pass中的listen更改为127.0.0.1:9000 ,则一切正常。 如果有问题,我正在使用Ubuntu 12.04LTS。 非常感谢您的帮助。

PHP-FPM和ProxyPass禁用使用FilesMatch的可能性?

我使用PHP-FPM和mod_proxy_fcgi来提供PHP文件。 该系统是快速的和完美的工作,除非我不能使用Apache的FilesMatch指令。 那么这是有道理的,因为proxypass被定义为接pipe任何PHP文件。 有没有可能使FilesMatch以某种方式工作?

什么是(如果有的话)可能的情况,黑客可以find多个站点托pipe在一个VPS?

让我澄清:说我有一个VPS主机托pipe10个站点。 出于某种原因,其中一个网站变得有名,黑客想知道它在哪里被托pipe,还有多less其他网站在这个网站上。 我认为第一个就像findIP一样简单,但是实际上并没有黑客攻击这个站点,有人知道在这个IP中托pipe了多less个域名? 如果你想知道为什么我问,我主要在7个商业网站和1个个人网站提供一些编程技巧,我主要收集/find在互联网上。 虽然这个网站是最安全的(没有用户input,最新的软件…),我不禁想象这些脚本小子是否会试图find方法来获取我的其他域名可能会把我的客户的网站置于危险之中。