优化VestaCP phpfcgid模板配置进程多内存耗尽500错误

SSH 中使用 htop 命令(需安装),可查看到此状态 ▼

如果你在使用 htop 命令时,出现错误提示 “-bash: htop: command not found”,解决方法请看这篇教程 ▼

CentOS 7如何yum安装htop?详解Linux使用htop命令方法

不少网络营销人都使用VestaCP面板(CentOS 7)建站做SEO。让电商网站稳定运营至关重要,如此才能达到理想网络推广的效果。假如VPS内存耗尽,出现500错误时,可以在SSH使用 htop 命……

大量的PHP-CGI进程,造成内存很快被耗光,问题就出在VestaCP在CentOS的phpfcgid模板中,使用了未优化的配置。

请参阅 /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh 文件的第13行:

export PHP_FCGI_CHILDREN=20

但是,这样的设置违反了Apache在PHP子进程管理文档中的警告:

PHP child process management (PHP_FCGI_CHILDREN) should always be disabled with mod_fcgid, which will only route one request at a time to application processes it has spawned; thus, any child processes created by PHP will not be used effectively. (Additionally, the PHP child processes may not be terminated properly.) By default, and with the environment variable setting PHP_FCGI_CHILDREN=0, PHP child process management is disabled.

因为在Apache的mod_fcgid模块里,PHP-CGI进程只能响应一个请求并一次运行,PHP-CGI子进程的效率非常低。

所以,应该直接禁用PHP子进程管理的设置 ▼

PHP_FCGI_CHILDREN=0

同时,如果你已经有生成的虚拟主机,则需要修改所有网站的配置文件 ▼

/home/用户名/web/域名/cgi-bin/fcgi-starter

打开 fcgi-starter 配置文件后,将以下内容▼

export PHP_FCGI_CHILDREN=20

修改成 ▼

export PHP_FCGI_CHILDREN=0

还有,VestaCP 没有设置闲置进程的终止机制:

要解决这个问题,只需在mod_fcgid配置文件 /etc/httpd/conf.d/fcgid.conf 中添加以下设置 ▼

FcgidIdleTimeout 120

设置完成后,重新启动Apache服务 ▼

service httpd restart

在服务重新启动后,之前HTOP中显示的数百个PHP-CGI进程将不再显示。

通常,单个Vesta CP用户的单个PHP-CGI进程消耗30至40M内存,完全满足Linux主机的需求。

因此,网络营销人想要做好SEO,对Vesta CP和模板的配置优化非常重要 ^_^

可以看看以下VestaCP面板的相关教程 ▼

CentOS 7系统VestaCP面板如何安装Monit监控程序?

本教程重点介绍:如何在CentOS 7服务器上运行的VestaCP面板中安装Monit监控程序? CentOS 7系统VestaCP面板,Monit配置如何设置?什么是Monit?Monit是一个用于管理和监控Uni……

如何在CentOS 7系统Vesta CP面板配置Monit进程?

之前陈沩亮博客有分享过CentOS 6 安装和配置Monit的教程 ▼

如何设置monit.conf文件?Monit配置文件示例说明

如何设置monit.conf文件?Monit配置文件示例说明本文是 LINUX 系统的 MONIT监控程序的配置文件示例说明,你只需修改域名、“xxx”、pidfile的路经,即可立即套用。## ## 陈沩亮博客示例mo……

CentOS 6如何使用Monit监控?Linux安装卸载Monit教程

CentOS 6如何使用monit监控?Linux安装卸载monit教程monit监控程序是Linux操作系统的开源监控工具,它可以帮助您在使用Web浏览器来监视系统进程,当程序或服务失效宕机时,monit可以让它……

但是,在CentOS 7 配置Monit监控程序,和 CentOS 6 有些区别,是不完全一样的。
CentOS 7系统VestaCP面板如何安装Monit监控程序?

本教程重点介绍:如何在CentOS 7服务器上运行的VestaCP面板中安装Monit监控程序? CentOS 7系统VestaCP面板,Monit配置如何设置?什么是Monit?Monit是一个用于管理和监控Uni……

如果你……

VestaCP后台8083端口https无效?安装SSL证书教程

VestaCP 控制面板简单易用:安装VestaCP 控制面板,可以实现自动安装 Let’s Encrypt SSL证书的安全功能,所以深受国外SEO从业人员的欢迎。什么是Let’s Encrypt?Let’s Encrypt是一个S……

VestaCP面板怎么用?安装邮局/添加多域名&文件管理

VestaCP是一个非常简单,但功能强大且高效的Linux网络主机控制面板。默认情况下,它将安装nginx Web服务器,PHP,Mysql,DNS服务器和其他必须运行完整的Web服务器的软件,这些都是建站做SEO……

安装VestaCP提示:Following packages are already installed: httpd centos 7

如果我们的VPS安装的Linux系统是 CentOS 7,同时VPS供应商提供的不是很纯净的CentOS发行版,默认情况下是安装了Apache(CentOS中的httpd)。这样,在安装VestaCP时,就会出现如下提示:……

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注