如何配置 apache2/mpm-worker + fcgid?

如何配置 apache2/mpm-worker + fcgid?

那里有好的教程吗?

目前我正在使用效率不高的 apache2/mod_php。

答案1

您运行的是哪个发行版其实并不重要,但这是我为 CentOS 服务器使用的设置,但应该能够轻松转换到您使用的任何版本。为了获得最佳效果,您需要使用 Apache2 的 Worker MPM,而不是 Prefork MPM。

假设您已经通过分发包或从源代码。安装 mod_fastcgi 后,您需要确保它配置为通过 Apache2 加载,我这样做了,包含/etc/httpd/conf.d/mod_fastcgi.conf

LoadModule fastcgi_module modules/mod_fastcgi.so

接下来我创建了另一个文件/etc/httpd/conf.d/任何.conf(姓名任何任何你想要的,对我来说是wordpress.conf):

<Directory "/path/to/app/docroot">
    Options +ExecCGI
    AddHandler php5-fastcgi .php
    Action php5-fastcgi /cgi-bin/php.fcgi
    DirectoryIndex index.php index.html
    AllowOverride All
</Directory>

这意味着在你的cgi-bin目录中(对我来说,/var/www/cgi-bin/我需要创建php.fcgi脚本并chmod 755包含它。我的包含:

#!/bin/bash
### Set PATH ###
PHP_CGI=/usr/bin/php-cgi
PHP_FCGI_CHILDREN=0
PHP_FCGI_MAX_REQUESTS=1000
### no editing below ###
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec $PHP_CGI

当然,如果您的系统与 PHP_CGI 路径不同,请更新它。您还可以更改 PHP_FCGI_CHILDREN 值,我看到有人建议将其设置为 4,但我将其保留为 0,并且性能良好。

此时您应该能够重新启动 Apache2 来重新读取配置,如果您设置一个简单的 phpinfo() 页面来查询,您应该看到它显示设置ServerAPI说明CGI/FastCGI

答案2

什么发行版?

这是在 Ubuntu 上从 mod_php 迁移到 mod_fcgid 的教程:

相关内容