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 ,给

posted @ 2010-09-15 09:34  冰封的心  阅读(223)  评论(0)    收藏  举报