freebsd上lighttpd fastcgi php5 zend eaccelerator安装记录
装lighttpd是比较简单了,到官网下载压缩包,编译安装就好。网上很多教程,不再赘述
Lighttpd依赖于pcre-devel包,如果没有安装请下载或者从光盘中安装。
php的编译需要注意编译的时候要用enable-fastcgi:
cd /usr/ports/lang/php5
make config
选上FASTCGI
make install clean
cd /usr/ports/lang/php5-extensions/
选上要安装的附加模块I
make install clean
1 PHP加速软件:
一般小型的应用使不使用PHP加速软件都没有问题,但是稍微大一点的应用若没有使用PHP加速软件,性能上就会相差比较大。这类软件比较多,出名的有ZendOptimizer和eAccelator,在FB7的ports中都有,以下为安装前者:
# cd /usr/ports/devel/ZendOptimizer/
# make install clean
# apachectl graceful
注意这里编译安装后,系统提示,需要修改/usr/local/etc/php.ini文件,加入以下内容:
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
安装eaccelerator
# cd /usr/ports/www/eaccelerator/
# cat distinfo
MD5 (eaccelerator-0.9.5.3.tar.bz2) = caf797223739516882f870342f74b935
SHA256 (eaccelerator-0.9.5.3.tar.bz2) = aa4f0e7817e0193d698db71cc858f45461c2820266941ae2034eb1b82c379e45
SIZE (eaccelerator-0.9.5.3.tar.bz2) = 555631
#make install clean
# vi /usr/local/etc/php.ini —> 加入下列此行到 php.ini 檔案中
zend_extension=”/usr/local/lib/php/20060613/eaccelerator.so”
# mkdir /tmp/eaccelerator
# chown www /tmp/eaccelerator
# chmod 0700 /tmp/eaccelerator
但是存在两个问题,一是/usr/local/etc目录下面并没有php.ini文件,需要自己把文件php.ini-dist复制为php.ini; 但紧接着出现第二个问题:zendoptimizer仍然启动不了,报错说找不到libm.so.4文件,我不知道在FB7的ports里面,这算 zendoptimizer的bug,还是compat-6.x的错误,反正我自己在/lib目录下这样做了一个连接解决问题:
# ln -s /usr/local/lib/compat/libm.so.4 /lib/libm.so.4
再次运行上面的测试文件(wen1.php),里面出现如下界面说明安装成功:
好了,配置lighttpd也相对简单,看官网的文章:http://trac.lighttpd.net/trac/wiki/TutorialLighttpdAndPHP
去 ftp://ftp4.jp.freebsd.org/pub/FreeBSD/releases/amd64/7.1-RELEASE/packages/All/ 下载最新的lighttpd安装包。
pkg_add lighttpd.tbz
假设lighttpd安装在/home/lighttpd,配置文件放在/home/lighttpd/conf/lighttpd.conf
网站根目录为/wwwroot/
在/wwwroot/添加一个php文件:
info.php内容phpinfo();
启动lighttpd:
/usr/lcoal/etc/rc.d/lighttpd start
在浏览器中输入http://YOUR_URL/info.php应该会看到phpinfo信息,但是我却没看 到zend Optimizer和eaccelerator!而Configuration File (php.ini) Path显示的路径跟我的php.ini位置相同,运行php -v可以看到zend Optimizer和eaccelerator的信息。有些莫名其妙,可能是编译的时候没加--with-config-file-path造成的。(另 外一台配置正确的apache服务器上看到的Configuration File (php.ini) Path直接指向了php.ini文件。)
实在懒得再编译php,在网上找答案未果。又想到能不能在lighttpd指定php的ini文件路径,因为apache中是可以的。但 lighttpd似乎没有相关设置。偶然间看到php -c的选项,用来指定php.ini(-c <path>|<file> Look for php.ini file in this directory)于是在lighttpd.conf中这样写:
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/var/www/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"max-procs" => 2,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
)
)
)
在/var/www/下建文件php-fastcgi.socket-0 ,给予写的权限。
在/var/www/下建文件php-fastcgi.socket-1 ,给

浙公网安备 33010602011771号