Gentoo 中以 FastCGI 方式运行 PHP
PHP 的 FastCGI 使你的所有 php 应用软件通过 modfastci 运行,而不是 modphpsusexec 。FastCGI 应用速度很快是因为他们持久稳定。不必对每一个请求都启动和初始化。好处是 PHP 脚本运行速度提升 3-30 倍;并不需要对现有的PHP代码做任何的更改;PHP 解释程序被载入内存而不用每次需要时从存储器读取,极大的提升了依靠脚本运行的站点的性能;同时速度的提升并不会增加 CPU 的负担。
php
很简单,打开 fpm 这个 USE 标记即可。
# echo "dev-lang/php fpm" >> /etc/portage/package.use
# emerge -av dev-lang/php
配置很简单,我本机版本是 php5.4,那么编辑文件 /etc/php/fpm-php5.4/php-fpm.conf
,修改 listen address
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock
nginx
打开 fastcgi USE 标记
# echo "www-servers/nginx fastcgi" >> /etc/portage/package.use
# emerge -av www-servers/nginx
编辑 /etc/nginx/nginx.conf
location ~ .*\.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
lighttpd
打开 php USE 标记
# echo "www-servers/lighttpd php" >> /etc/portage/package.use
# emerge -av www-servers/lighttpd
编辑 /etc/lighttpd/mod_fastcgi.conf
server.modules += ("mod_fastcgi")
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/var/run/php-fpm.sock",
)
)
)
fastcgi.map-extensions = ( ".php3" => ".php", ".php4" => ".php", ".php5" => ".php" )
apache
首先需安装 www-apache/mod_fastcgi_handler
# emerge -av www-apache/mod_fastcgi_handler
同时 PHP 需要打开 apache2 USE 标记
# echo "dev-lang/php apache2" >> /etc/portage/package.use
# emerge -av dev-lang/php
编辑文件 /etc/apache2/modules.d/70_mod_php5.conf
,告诉 apache2,php-fpm sock 的路径
<IfModule mod_mime.c>
# AddHandler application/x-httpd-php .php .php5 .phtml
# AddHandler application/x-httpd-php-source .phps
AddHandler fcgi:/var/run/php-fpm.sock .php .php5
</IfModule>
编辑文件 /etc/apache2/modules.d/20_mod_fastcgi_handler.conf
<IfDefine FASTCGI_HANDLER>
LoadModule fastcgi_handler_module modules/mod_fastcgi_handler.so
</IfDefine>
编辑文件 /etc/conf.d/apache2
,在 -D php5
后面添加 -D FASTCGI_HANDLER
,告诉 apache2 以 fastcgi-handler 模式启动,如下是我的配置
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PHP5 -D FASTCGI_HANDLER"
参考资料