前言
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 FastCGI PHP を停止します。
kill `cat $SEMFILE`
rm $SEMFILE
exit 0
fi
'restart')
if [ -e $SEMFILE ]
then
echo FastCGI PHP を停止します。
kill `cat $SEMFILE`
sleep 5
fi
echo 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 プロセスが終了するまでに応答できるリクエストの数 (リソースを解放するために使用されます)。 上記 2 つの設定はハードウェア構成に基づいています。デフォルト値は 8,500 です。 一般的に、PHP_FCGI_CHILDREN > 最大同時アクセス数は 10
PHP_FCGI_MAX_REQUESTS 設定が小さすぎると、アクセス数の多い Web サイトで PHP プロセスの再起動により負荷が増加することがよくあります。
#echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range (Linux のみ)
--user=65534 --group=65534 は、実行する php プロセスのユーザーとグループで、通常は次のように設定されます。誰もいないユーザー FreeBSD は 65534/65534、Linux は 99/99
最後に、S05php ファイルを実行可能ファイルとして設定し、FastCGI/PHP を実行します:
chmod 755 S05php
./S05php start
開始すると、PHP_FCGI_CHILDREN 1 php プロセスが ps -ax リストに表示されます。
vhost に対応する Docroot ディレクトリに info.php ファイルを作成します。内容は次のとおりです:
phpinfo();
?>
ブラウザを使用して、 vhost info.php ファイルを開くと、PHP 情報ページが表示されるはずです。
メモ
S05php スクリプトを書いてくれた CCF フォーラムの所有者 hunreal のおかげで、とても使いやすくなりました。
他に知りたいことがある場合は、Zeus PHP サポート ページにアクセスして詳細を入手してください。
注: 転載または抜粋の出典を示してください (中国の FreeBSD ユーザー グループ http://www.cnfug.org)

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
