分享
 
 
 

Zeus中安装PHP

王朝php·作者佚名  2006-11-23
窄屏简体版  字體: |||超大  

前言

Zeus是一个运行于Unix下的非常优秀的Web Server,而PHP则是Unix下一个非常优秀的后台脚本语言。 这两个产品都是为非常喜欢的产品。为什么要写这样的一个Howto呢?是因为有大量的网站脚本是使用PHP开发的, 而这些程序运行在Zeus下也是一个非常好的选择。写这份文档的目的在于能让大家的PHP系统良好的运行于Zeus服务器上。很早的时候我写过一份整合Zeus和PHP的文章,它主要是讲如何将PHP以FastCGI的本地调用方式来运行于Zeus中的, 本份Howto主要是来讲如何让PHP运行于Remote Responders方式下。因为这样会比以local方式有更高的可扩展性和运行效率。

准备工作

首先你应该Zeus安装完成,也不会过多的讲如何安装和配置Zeus服务器本身,因为它的安装和配置实在是太简单了。

如果有可能,最好将ports使用cvsup来升级一下。

对于PHP依赖的相关软件如果能提前装,则从ports中安装好。如MySQL、GD等。 安装fastcgi

注意,如果你安装的PHP的版本会低于4.3.0哪么你才需要这步。新的PHP版本已经内置了fastcgi的库。安装fastcgi的方法非常的简单:

root@~$cd /usr/ports/www/fcgi/

root@/usr/ports/www/fcgi$make;make install;make clean 编译完成后我们可以在/usr/local/lib目录中看到有libfcgi.a文件,同时在/usr/local/include目录中会有fastcgi的所有头文件。

编译PHP

编译PHP可以使用通常的PHP编译选项,下面是我使用的一个配置:

./configure --prefix=/usr/local/php --enable-fastcgi --with-mysql=/usr/local 需要注意的是在PHP 4.3.0以上版本是使用的 --enable-fastcgi 选项,而PHP 4.3.0以前的版本应使用--with-fastcgi参数。

接着就是安装PHP到系统中: make

make install 编译完成后,我们来测试一下安装的php是能正确运行:

root@~$cd /usr/local/php/bin/

root@/usr/local/php/bin$./php 这时将进入php代码输入状态,输入

<? phpinfo(); ?> 按ctrl-d运行后会见到php返回的信息则为正确。

配置FastCGI

/PHP

配置FastCGI

进入Zeus管理控制台,打开需要配置的VHost配置。进入 API Support 中的 FastCGI 设置。在其中设置:

Enabling Support for FastCGI Programs : Enable

在Configuring FastCGI Remote Responders中设置:

Directory name : /usr/local/php/bin/php

Location: Machine name: localhost

Additional methods supported?:None

如果你的PHP应用不在本机,即使PHP没有安装在本机上,哪么也要设置 Docroot path 参数,它可以不存在于相应的目录下。

都设置完成后,点击 Apply 按钮。 配置PHP解析指向

进入 URL Handling 中的 Handlers 设置。在 Adding a Handler 中设置以下参数:File Extension : php

Specify the path and filename of the handler, relative to the document root : /usr/local/php/bin/php

HTTP 404 errors are handled by : The handler

注意,这里的 Specify the path and filename of the handler, relative to the document root 应和你上一步设置的 Directory name 值相同。

都设置完成后,点击 Apply 按钮。

所有的设置完成后使用vhost的commit功能将更 改提交并应用。这样Zeus就设置好了Fastcgi和PHP的相关参数。

配置FastCGI

/PHP启动

在Zeus的rc.d目录中新建一个S05php的文件,内容为: #!/bin/sh

# Script to start and stop the persistent PHP runner for FastCGI.

# Please check paths before use.

# FastCGI PHP binary

FPHPBIN=/usr/local/php/bin/php

# Location to place semaphore

SEMFILE=/tmp/php.pid

PHP_FCGI_CHILDREN=100

PHP_FCGI_MAX_REQUESTS=1000

export PHP_FCGI_CHILDREN

export PHP_FCGI_MAX_REQUESTS

# This is Linux - use /proc to increase the local (ephemeral) port range

#echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

if [ -z "$ZEUSHOME" ]

then

cd `dirname $0`/..

ZEUSHOME=`pwd`

export ZEUSHOME

fi

case "$1" in

'start')

if [ -e $SEMFILE ]

then

echo FastCGI PHP error: already running.Restart FastCGI PHP now

kill `cat $SEMFILE`

sleep 5

fi

if [ ! -x $FPHPBIN ]

then

echo FastCGI PHP error: please check that $FPHPBIN is executable and exists.

exit 1

fi

echo Starting FastCGI PHP.

$ZEUSHOME/web/bin/fcgirunner --user=65534 --group=65534 --pidfile=$SEMFILE 8002 $FPHPBIN

;;

'stop')

if [ -e $SEMFILE ]

then

echo Stopping FastCGI PHP.

kill `cat $SEMFILE`

rm $SEMFILE

exit 0

fi

;;

'restart')

if [ -e $SEMFILE ]

then

echo Stopping FastCGI PHP.

kill `cat $SEMFILE`

sleep 5

fi

echo Starting FastCGI PHP.

$ZEUSHOME/web/bin/fcgirunner --user=65534 --group=65534 --pidfile=$SEMFILE 8002 $FPHPBIN

;;

*)

echo "usage: $0 {start|stop|restart}"

;;

esac

exit 1

在这个脚本中有以下内容需要视系统情况而 修改:FPHPBIN=/usr/local/php/bin/php 应设置为php的路径

SEMFILE=/tmp/php.pid 生成php.pid的路径,该目录必须可写

PHP_FCGI_CHILDREN=100 php进程数目

PHP_FCGI_MAX_REQUESTS=1000 每个php的进程在退出前能够响应的请求数,用于释放资源 上面两个根据硬件配置和网站访问量设置,默认值是8,500。 一般来说 PHP_FCGI_CHILDREN > 访问并发最大值+10

PHP_FCGI_MAX_REQUESTS 如果设置过小,访问量大的网站会因为php进程重起频繁增加负荷。

#echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range 只用于linux

--user=65534 --group=65534 为php进程运行的用户和组,一般设置为nobody用户和组FreeBSD是65534/65534,Linux是99/99

最后,将S05php文件设置为可执行文件,并将FastCGI

/PHP运行起来:

chmod 755 S05php

./S05php start 一但启动后就会在ps -ax列表中显示出PHP_FCGI_CHILDREN+1个php进程。

到你的vhost对应的Docroot目录中建一个info.php文件,内容为: <?

phpinfo();

?> 使用浏览器访问vhost中的info.php文件,应该就可以看到PHP的info页面了。

附注

感谢CCF的坛主hunreal写出的S05php脚本,它真的非常好用!

如果还有什么想了解的可以到 Zeus PHP支持 页得到更多的信息。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有