我需要在我的CentOS 5.5 VPS上安装php-mcrypt,当我尝试yum安装php-mcrypt时,它说它被设置为更新,这意味着它已经安装。 我查看了/ usr / lib / php / modules,找不到.so文件。 无论如何,我想更新它,但百胜给出了以下错误,我在Nginx上运行PHP-FPM。 Last login: Thu Apr 21 12:13:30 2011 from cpc2-seve18-2-0-cust438.13-3.cable.virginmedia.com [root@infinity ~]# yum install php-mcrypt Setting up Install Process Resolving Dependencies –> Running transaction check —> Package php-mcrypt.i386 0:5.1.6-15.el5.centos.1 set to be updated –> Processing Dependency: php-api = 20041225 for package: php-mcrypt –> Processing […]
最近,我为Ubuntu LoCo团队的WordPress博客设置了一个带有512MB / 1ghz CPU,Nginx + php-fpm + Varnish + APC + Percona的MySQL服务器+ CloudFlare Pro的Ubuntu 12.04 VPS。 博客每天点击3〜4k左右,使用大约180MB和8〜20%的CPU。 一切似乎都快速工作…页面加载非常好,比我们的竞争对手快16倍…但是有一个问题。 当我们上传一个图片时,WordPress不会调整它的大小,所以我们可以在图片中插入完整的图片。 如果imagem有,比方说,30kb,它调整罚款…但如果图像有100kb +,它不会… 在nginx错误日志中我看到这个: upstream timed out (110: Connection timed out) while reading response header from upstream, client: 150.162.216.64, server: www.ubuntubrsc.com, request: "POST /wp-admin/async-upload.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "www.ubuntubrsc.com", referrer: "http://www.ubuntubrsc.com/wp-admin/media-upload.php?post_id=2668&" 这似乎与这个问题有关,但我不知道。 当超时发生的时候,当我试图查看post的时候,我开始明白: upstream timed out […]
我看到一个奇怪的问题,我的php.ini没有被使用,如果我没有明确地把它传递给php-fpm启动时。 这是我使用的暴发户脚本: start on (filesystem and net-device-up IFACE=lo) stop on runlevel [016] pre-start script mkdir -p /run/php end script expect fork respawn exec /usr/local/php/sbin/php-fpm –fpm-config /etc/php/php-fpm.conf 如果PHP以上述方式启动,我的php.ini从不使用,即使它在Configuration File (php.ini) Path 。 这是来自phpinfo()的相关部分: Configuration File (php.ini) Path /etc/php/ Loaded Configuration File (none) Scan this dir for additional .ini files (none) Additional .ini files parsed (none) 如果我修改暴发户脚本的最后一行,明确指出php-fpm为php.ini […]
突然之间,我们的服务器开始变得非常奇怪,CPU使用率非常高,RAM使用率也很低。 我从来没有见过这个,我不知道该怎么做。 我觉得如果我能让系统开始使用更多的可用内存,CPU使用率会更低,但我似乎无法调整它来做到这一点。 这是使用PubNub的一个WordPress单一网站w / CometChat。 CPU的扣球几个星期前开始,有时它的平均负载是10有时是40 + …我似乎没有能够追查原因。 我应该有足够的资源来处理我们收到的stream量。 8个2.4Ghz内核和24GB内存! 我会很感激任何人可以提供帮助。 这是一些相关的数据…(我最近试图平息事情) nginx.conf user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 4096; multi_accept on; accept_mutex_delay 50ms; } http { ## # Basic Settings ## sendfile on; #tcp_nopush on; #tcp_nodelay on; keepalive_timeout 5; keepalive_requests 100000; reset_timedout_connection on; types_hash_max_size 2048; server_tokens off; # server_names_hash_bucket_size 64; […]
我们有一个运行8个cpu内核的16个gode linode,我试图debugging一个问题,当我尝试一个负载testing时,服务器开始在一个非常基本的WordPress站点上发出大约250个请求。 我只打在网站的头版fyi。 当我login到服务器并查看Htop上的服务器统计数据时,我发现所有核心都被挂钩,并且php5-fpm进程的垃圾负载也是如此。 testing完成后,这些过程仍然存在,我最终必须重新启动php-fpm才能使服务器恢复正常运行。 我今天在做日志的时候看到了这个。 [23-Dec-2013 12:19:03] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 27 total children [23-Dec-2013 12:19:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and […]
我们最近将我们的Apache 2.4.7模式从mpm_pre-fork切换到mpm_event。 从那以后,我们一直无法让我们的Files指令工作。 <Files "*.php"> Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0" </Files> 我确实设法解决这个混乱的问题: <Files ~ "((^$)|(php))"> 但是,根据我的正则expression式知识,这将在文件名中的任何位置匹配“php”文件。 我发现需要匹配这个其他问题的“空”情况。 我们也尝试了使用相同结果的FilesMatch 。 这些都不能从我从Apache 2.4文档中得知。 有没有其他人看到这样的问题? 更新 :我把服务器回滚到mpm_preforker和mod_php没有任何改变。 然后我清除了Apache和PHP,重新安装为mpm_preforker,它再次工作。 然后我升级到mpm_event和php-fpm,稍后停止工作。 我正试图隔离它打破的地方,并发布我发现的东西。 更新2 :这似乎与fastcgi或php-fpm的东西有关。 我有两个<Files>指令,一个用于生成唯一标头的html和一个用于php指令: <Files *.html> Header always set X-Aaron-files "html match" </Files> <Files *.php> Header always set X-Aaron-files "php match" </Files> 如果我去一个虚构的php文件,那么我得到一个404消息与php-match头。 但如果我去一个真正的php文件,然后服务器执行PHP文件,但不会返回标头指示一个php文件匹配。
任何人有任何想法如何在tittle做到这一点? 或者至less有类似的东西(启用/禁用php.ini中常见的function) 我的泳池现在看起来像这样 [amar] listen = 127.0.0.1:11000 user = amar group = amar request_slowlog_timeout = 5s slowlog = /var/log/slowlog-amar.log pm.max_children = 5 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 500 include = /etc/php5/fpm/fpm.d/common.conf 它位于fpm.d / pools中,包含在默认的php5-fpm.conf中 我发现了一些关于php_define的东西,但是我不知道如何实现这个 TY。
我有一个根源于login应用程序的服务器上下文。 如果login成功,login应用程序会处理login,然后在同一台服务器上将redirect返回到“/ app”。 该应用程序被植根于其他地方,由此处显示的位置块处理: location ^~ /app { alias /usr/share/nginx/www/website.com/content/public; location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/tmp/php5-fpm.sock; include fastcgi_params; } } 这工作得很好,但是传递给PHP的$ uri仍然包含/app ,尽pipe我使用的是别名而不是root。 正因为如此, try_files指令不能成为404除非我在/usr/share/nginx/www/website.com/content/public链接app -> ./ 。 在那里build立链接显然是愚蠢的,如果这个链接永远丢失了,那么没有明显原因的网站就会死掉。 接下来我尝试了… 是完全删除了try_files指令。 这使我可以在我的/public文件夹中的app链接,PHP没有问题的位置和执行文件。 我用它来从PHP中转储我的$_SERVER全局,当浏览器URI是/app时,发现"SCRIPT_FILENAME" => "/usr/share/nginx/www/website.com/content/public/index.php" /app "SCRIPT_FILENAME" => "/usr/share/nginx/www/website.com/content/public/index.php" /app "SCRIPT_FILENAME" => "/usr/share/nginx/www/website.com/content/public/index.php" 。 这是完全正确的 。 基于我的fastcgi_params下面,这使我相信try_files $request_filename =404; 应该工作,但没有骰子。 nginx仍然没有find该文件,并返回404。 所以现在,它只会在没有任何try_files指令的情况下工作。 […]
有几个讨论抱怨PHP-FPM高内存使用率,没有任何实际的方法来克服。 当我用大量的testing来探究这个问题时,问题与PHP-FPM时代的年龄有关。 想象一下,我们有pm.max_children = 10,并有一个消耗10M内存的PHP脚本。 一个预计需要100MB的MB。 这对前10个过程是正确的。 处理20个PHP脚本后,系统内存使用量为200MB,这意味着在前10个进程中消耗的内存还没有被释放。 这将增加内存使用量,直到PHP-FPM进程重置时达到pm.max_requests 。 注意:这只是一个大致简化的示例,而不是实际的行为。 在现实世界中,这有时会发生。 通常,在PHP脚本的末尾,PHP所消耗的内存将被自动释放。 在PHP-FPM中,这个内存sometimes (我不知道什么时候)不会被释放。 这意味着用于处理类似的脚本(使用10MB内存) pm.max_children = 10 pm.max_requests = 100 你不需要100MB或1000MB的内存; 但介于两者之间。 换句话说,一些PHP previous processes脚印留在PHP-FPM孩子PHP-FPM 。 与此理论相一致, PHP-FPM的高内存使用率将通过减lesspm.max_requests来克服,但这不是最终的解决scheme,我们需要find一种方法来释放以前PHP进程对PHP-FPM儿童。 任何想法?
看看我的PHP-FPM统计页面,看起来只有一个进程正在处理所有的连接。 我的猜测是,请求正在执行如此之快,到目前为止,它不需要使用另一个进程。 会是这样吗? 以下是我在PHP-FPM统计信息页面中看到的内容: pool www process manager static start since 432796 accepted conn 90399 listen queue 0 max listen queue 1 listen queue len 128 idle processes 63 active processes 1 total processes 64 max active processes 6 max children reached 0 这就是我的PHP-FPMconfiguration看起来像: [General] pid = /var/run/php5-fpm.pid error_log = /var/log/php5-fpm.log syslog.ident = php-fpm syslog.facility […]