我有一个configuration了MPM worker和php fast cgi的apache2服务器。 最近apache日志告诉我,MaxClients经常到达,即使它已经非常高。 我的服务器现在不断下降,我在日志中看到了一堆这样的行: [Sun Mar 06 04:25:40 2011] [error] [client 50.16.83.115] FastCGI: comm with (dynamic) server "/var/local/fcgi/php-cgi-wrapper.fcgi" aborted: (first read) idle timeout (20 sec) [Sun Mar 06 04:25:40 2011] [error] [client 50.16.83.115] FastCGI: incomplete headers (0 bytes) received from server "/var/local/fcgi/php-cgi-wrapper.fcgi" 我可以看到我的php-cgi进程非常大(平均大约70mb)。 这里是我的MPM worker的apacheconfiguration:KeepAlive ON KeepAliveTimeout 2 <IfModule mpm_worker_module> StartServers 5 MinSpareThreads […]
编辑:增加了一些configuration和澄清多less是“多”,按anthonysomerset的要求。 编辑2:添加fastcgi_cache到nginxconfiguration,如由SleighBoybuild议。 我为一个朋友的网站运行一个服务器,时不时会有大量的stream量,大约有200-300个并发用户。 在尖峰之间,服务器有大约70-80个并发用户,并且没有麻烦地处理stream量。 该网站运行在与Debian Squeeze,Nginx,PHP5-FPM + APC(128MB),MySQL 5,memcached(128MB)和Varnish(1GB)的服务器上的W3 Total Cache。 parentesis中的数量是我为它们各自的caching分配了多less。 内存永远不会超过1.8 GB afaik,但可能会有点超额预定。 虽然通常不会造成任何问题 造成这个问题的原因总是PHP5-FPM利用100%的CPU一段时间,然后只是崩溃,导致nginx吐出502错误。 日志build议增加最大的孩子数量,但我想我已经达到了服务器可以处理多less个孩子的限制。 我一直在使用pm.max_requests (0(无限)),但是现在将其设置为1000,以查看重新产生的孩子现在是否可以提供帮助。 /etc/php5/fpm/pool.d/www.conf [万维网] listen = /var/run/php5-fpm.sock user = www-data group = www-data 下午=dynamic pm.max_children = 200 pm.start_servers = 20 pm.min_spare_servers = 20 pm.max_spare_servers = 60 pm.max_requests = 1000 /etc/nginx/nginx.conf 用户www-data; worker_processes 8; pid /var/run/nginx.pid; 事件{ worker_connections […]
有几个讨论抱怨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儿童。 任何想法?
我目前正在尝试在我的网站上使用HTTPS,并从受信任的CA获得试用证书。 我已经通过了以下清单: 根据CA的指示复制所有的证书文件 使用a2enmod ssl在apache上启用mod_ssl Checked PHP已经启用了OpenSSL 在Apache中使用443做了一个新的虚拟主机 input了SSL指令: SSLEngine on SSLCertificateKeyFile /etc/ssl/ssl.key/server.key SSLCertificateFile /etc/ssl/ssl.crt/api_my_site_com.crt SSLCertificateChainFile /etc/ssl/ssl.crt/apimysite.com-bundle 只检查Apache是用lsof监听端口443 如果我可以连接到443(到服务器的IP,而不是域,试图连接到my-site.com:443给我连接失败)本地和从我自己的PC检查, 但是,当我尝试浏览到https://my-site.com (显然不是真正的域),我得到一个“拒绝连接”的错误。 这是Apachelogging的内容: [Sat Jul 20 22:50:34 2013] [info] Loading certificate & private key of SSL-aware server [Sat Jul 20 22:50:34 2013] [info] Configuring server for SSL protocol [Sat Jul 20 22:50:34 2013] [info] RSA server […]
我在网上search了4个小时,试图find如何在Webmin上获得更新的PHP版本。 没有运气! 理想情况下,你如何在Webmin / Virtualmin上获得PHP 5.5? 如果这还没有可用的最新版本 这是Ubuntu的服务器。 (他们有一个centos的教程,但不是基于.deb的)
我试图在我的Linux服务器(CentOS 7.2)上安装一个WordPress的博客,使用PHP 5.4和MariaDB,但我一直遇到这个错误: Your PHP installation appears to be missing the MySQL extension which is required by WordPress. 一直在寻找与此相关的post: CentOS Linux 5.4 – 您的PHP安装似乎缺lessWordPress所需的MySQL扩展 使用mariadb安装Wordpress时出现错误“您的PHP安装似乎缺lessWordPress所需的MySQL扩展。” 在Rails / public中安装Wordpress – 缺lessmysql扩展 不过,我已经安装了php-mysql: 而且我已经为php.iniconfiguration了MySQL扩展: 但是由于某种原因,MySQL扩展仍然没有在phpinfo()中加载: 这可能是从WordPress的这个错误,任何想法可能会发生什么? 为什么MySQL扩展不能用PHP加载? 也许是因为我在使用MariaDB? 这里的输出是: ls -l /etc/php.d , rpm -ql php-mysql and ls -l /usr/lib64/php/modules/ mysqli扩展程序已安装并启用:
Monit经常重启apache2,基于我的apache2节中的totalmem> 200mtesting。 我不确定我是否真的有问题,或者如果我应该在我的监控configuration中增加totalmemtesting。 这个configuration是好的,直到我们添加了第二个WordPress的网站,当apache2开始触发monit totalmem> 200米条件。 在开始考虑第二个wordpress站点的特殊构build之前,我想知道是否我不应该在monittesting中增加总的限制,然后继续。 我的mont节apache2服务器是从monit安装教程中复制的。 我认为这是一个合理的价值开始,并认为如果我碰到一个Apache内存问题,我会确定一个特定的值为我的特定服务器。 那么现在我已经遇到了这个问题,弄清楚这个价值应该是多less,已经certificate比我想象的更具挑战性。 我还没有find任何东西告诉我如何确定一个特定的服务器configuration应该是什么值。 主机是运行Ubuntu服务器10.04LTS的VPS。 Apache2正在运行一个调查应用程序(mod_php5),两个单独的wordpress安装(mod_php5)和一个Redmine(mod_passenger)的分支。 我们开始设置webdav,用于公司内部的文件共享,但实际上并没有使用它。 [注:我知道(现在),我可以通过切换到REE而不是使用ruby1.8来节省内存。] 服务器获得的stream量非常低 – 每小时约20个页面浏览量,除了机器人和随机黑客嗅探之外的所有应用程序,在可预见的未来不大可能超过每小时1000页面浏览量。 以下是详细信息: $ free -m caching总共使用的空闲共享缓冲区 Mem:496 354 142 0 39 100 – / + buffers / cache:214 282 交换:1023 6 1017 top – 17:36:27 up 34 days,2:23,2 users,load average:0.00,0.00,0.00 任务:总共69次,跑步1次,睡眠68次,停止0次,僵尸0次 Cpu:0.2%us,0.1%sy,0.0%ni,99.7%id,0.0%wa,0.0%hi,0.0%si,0.0%st Mem:共508272k,使用362944k,145328k,40448k缓冲区 交换:共1048572k,使用6284k,1042288k免费,103028kcaching PID用户PR NI VIRT RES […]
我的目标是为一个drupal 6生产站点实现操作码caching的APC。 到目前为止,我已经用一些php文件testing了APC,包括include_once和不包括其他php文件。 还尝试调整shm_size,apc.include_once_override和apc.stat的apc.ini值。 每次重新启动apache。 导致apc.php不显示任何值的任何更改。 (当然除了改变后的apc.ini值是应该显示的) 每次我刷新apc.phptesting页面,开始时间重置为当前时间显示正常运行时间0分钟。 apc.php -testpage显示: General Cache InformationAPC Version 3.1.9 PHP Version 5.2.10 APC Host xxxx.xx.xx Server Software Apache/2.2.3 (CentOS) Shared Memory 1 Segment(s) with 128.0 MBytes (mmap memory, pthread mutex Locks locking) Start Time 2011/07/26 11:53:56 Uptime 0 minutes File Upload Support 1 Cached Files 0 ( 0.0 Bytes) […]
我一直在试图设置一个运行PHP 5.4的imagick模块的Ubuntu 12.04虚拟机。 我在谷歌find的所有结果都说使用ondrej包 ,这在大多数情况下完美地工作。 所有的主要模块安装和运行正是他们应该的方式,但是当我尝试安装imagick它告诉我我错过了依赖。 # apt-get install php5-imagick Reading package lists… Done Building dependency tree Reading state information… Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or […]
关于我的特定APC设置: APC 3.1.9 PHP 5.3.3/fCGI/SuEXEC Apache 2.2.15 CentOS 6.3 我想只保留一个apc.php的副本,可以通过服务器上的任何虚拟主机访问。 推荐的方法是什么? 看来,apc.php不能很好的与Apache的Alias指令。 apc.php只存在于其中一个虚拟主机上,设置为644,似乎并不是谁拥有它:如果我尝试通过别名访问它,我只能得到乱码: 我真的需要为此使用符号链接,还是可以使Apache别名工作?