关于lighttpd+fastcgi-php 和 apache2+mod_php的性能众说纷纭
据我个人测试,前者比后者有50%以上的优势,当然可能不具有普遍性.
消耗系统资源上来说,lighttpd要小得多,尤其在amd64位环境下,apache2+mod_php是很耗内存的.
因此我选择了前者搭建服务器运行环境.
安装方式,在FreeBSD下选择从ports安装最方便了.
1.先同步到最新的ports树.
在用户目录下建 ports-supfile 文件,内容为:
*default host=cvsup3.cn.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
ports-all
cvsup -L 2 -g ~/ports-supfile
2. 安装lighttpd
进入相应ports目录
cd /usr/ports/www/lighttpd
编译选项,一般默认就可以了,如果需要ssl,把OPENSSL选上
开始编译
安装
3. 安装php5编译选项, FASTCGI一定要选,其它看着办.
编译 安装
4. 安装php扩展
光php当然不够,有些扩展是必不可少的
cd /usr/ports/lang/php5-extensions
选择你需要的扩展
开始编译,安装
在make过程中,可能会有一些扩展编译失败,没关系,如果这个扩展不是必需的,那么回到
/usr/ports/lang/php5-extensions , 重新 make config ,把该扩展去掉, 再make
5. 通常到这里都不会有什么问题,剩下来的工夫就是lighttpd 和 php的配置了
5.1 lighttpd的配置
配置文件在 /usr/local/etc/lighttpd.conf
配置文档在
http://www.lighttpd.net 都可以找到,这里给出和php相关的配置
fastcgi.server = ( ".php" =>
(( "socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"min-procs" => 1,
"max-procs" => 1,
"max-load-per-proc" => 4,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "64",
"PHP_FCGI_MAX_REQUESTS" => "10000" ),
"bin-copy-environment" => (
"PATH", "SHELL", "USER" ),
"broken-scriptfilename" => "enable",
"idle-timeout" => 20
))
)
bin-path是php-cgi程序所在路径,
如果服务器负荷很重,每天几十万访问量,那么要增大 PHP_FCGI_CHILDREN的值.
5.2 配置php,
配置文件在 /usr/local/etc/php.ini
没什么好说的了,玩php的配这个总会的
5.3 运行lighttpd/usr/local/rc.d/lighttpd start
开机自动启动
/etc/rc.conf 加入