FreeBSD快速安装PHP+eaccelerator,nginx,spwn-fcgin

Posted on 星期六, 四月 17th, 2010 at 12:06

FreeBSD使用nginx+PHP可以达到非常优秀的访问速度。

以下介绍如何快速安装一个可以使用的PHP服务器。

 

请先确认: /usr/ports/目录存在,如果不存在,请先安装ports。

1.安装PHP

cd /usr/ports/lang/php5

make install clean

 

2.安装PHP扩展

cd /usr/ports/lang/php5-extensions
make config
make install clean

 

3.安装MySQL支持(如果在安装PHP的时候选择了MySQL支持,这里可以不用设置)

cd /usr/ports/databases/php5-mysql
make install clean

 

4.安装lighttpd(安装lighttpd是为了取得他的spawn-fcgi程序,所以在安装的时候务必要选上)

cd /usr/ports/www/lighttpd
make install clean

 

5.删除lighttpd保留spwn-fcgin程序

cp /usr/local/bin/spawn-fcgi /tmp/
/usr/sbin/pkg_delete -v lighttpd-1.4.26
cp /tmp/spawn-fcgi /usr/local/bin/spawn-fcgi

 

6.制作PHP 配置文件

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

 

7.编写fastcgi的启动脚本

ee /usr/local/etc/rc.d/php-fcgi
PROVIDES=php-cgi
LIGHTTPD_FCGI=/usr/local/bin/spawn-fcgi
SERVER_IP=127.0.0.1
SERVER_PORT=9000
SERVER_USER=www
SERVER_GROUP=www
PHP_CGI=/usr/local/bin/php-cgi
PGREP=/bin/pgrep
KILLALL=/usr/bin/killall
### No editing below ####
cmd=$1

pcgi_start(){
      echo "Starting $PROVIDES…"
     $LIGHTTPD_FCGI -a $SERVER_IP -p $SERVER_PORT -u $SERVER_USER -g $SERVER_GROUP -C 100 -f $PHP_CGI
}

pcgi_stop(){
    echo "Killing $PROVIDES…"
    $KILLALL $PROVIDES
}

pcgi_restart(){
    pcgi_stop
    pcgi_start
}

pcgi_status(){
        $PGREP $PROVIDES > /dev/null
    [ $? -eq 0  ] && echo "$PROVIDES running" || echo "$PROVIDES NOT running"

}

pcgi_help(){
      echo "Usage: $0 {start|stop|restart|status}"
}

case ${cmd} in
[Ss][Tt][Aa][Rr][Tt]) pcgi_start;;
[Ss][Tt][Oo][Pp]) pcgi_stop;;
[Rr][Ee][Ss][Tt][Aa][Rr][Tt]) pcgi_restart;;
[Ss][Tt][Aa][Tt][Uu][Ss]) pcgi_status ;;
*)      pcgi_help ;;
esac

 

8.启动脚本的执行权限

chmod +x /usr/local/etc/rc.d/php-fcgi 

 

9.安装nginx

cd /usr/ports/www/nginx
make install clean

 

10.允许自动启动nginx

ee /etc/rc.conf
增加 :nginx_enable="YES"

保存

 

11.允许自动启动php-fcgi

ee /etc/rc.local

增加:/usr/local/etc/rc.d/php-fcgi   start

保存

 

12.安装 eaccelerator加速

cd /usr/ports/www/eaccelerator

make install clean

 

13.建立eaccelerator的临时目录

mkdir /tmp/eaccelerator

chown www /tmp/eaccelerator

chmod 0700 /tmp/eaccelerator

 

 

14.PHP中启用eaccelerator

ee /usr/local/etc/php/extensions.ini

紧挨
extension=session.so

下面加上
extension=eaccelerator.so

即可

保存

 

15.配置eaccelerator

ee /usr/local/etc/php.ini

增加:
[eaccelerator]
eaccelerator.shm_size="64"
eaccelerator.shm_prune_period="60"
eaccelerator.shm_ttl="1800"

保存

 

16.建立网站目录

mkdir /www

 

17.配置nginx

ee /usr/local/etc/nginx/nginx.conf

开头的user ……改为:user  www www ; 并且去掉前面的#注释

server配置段中

增加PHP支持

location ~ \.php$ {
            root           html;#此处不要修改
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME /www$fastcgi_script_name;
            include        fastcgi_params;
        }

修改

server
  {
    listen       80;
    server_name  www.iwantso.com;
    index index.html index.htm index.php;
    root  /www;#此处为你的网站根目录。

 

18.做完以上修改后,就可以重启服务器测试了。

 

19.上传PHP文件至/www目录下

 

20.如果PHP无法执行,很可能是eaccelerator问题,可以试着执行以下代码

cd /usr/ports/www/eaccelerator
make deistall
make reinstall

重新安装,一般就可以了。

You can leave a response, or trackback from your own site.

Leave a Reply