首頁  >  文章  >  後端開發  >  在Zeus Web Server中安裝PHP語言支援_PHP教程

在Zeus Web Server中安裝PHP語言支援_PHP教程

WBOY
WBOY原創
2016-07-21 16:09:44887瀏覽

前言
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代码输入状态,输入


按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
kill `cat $SEMFILE`
rm $SEMFILE
exit 0 exit 0 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
start/S05
chmod 755 S05php
start
一但啟動後就會在ps -ax清單中顯示出PHP_FCGI_CHILDREN 1個php進程。
到你的vhost對應的Docroot目錄中建一個info.php文件,內容為:

phpinfo();

?>

使用瀏覽器存取vhost中的info .php文件,應該可以看到PHP的info頁面了。

 

附註

感謝CCF的壇主hunreal寫出的S05php腳本,它真的非常好用!

如果還有什麼想了解的可以到 Zeus PHP支援 頁得到更多的資訊。

註:任何轉載或摘抄請註明文章出處(中文FreeBSD使用者群組 http://www.cnfug.org)

  http://www.bkjia.com/PHPjc/314467.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314467.html
TechArticle前言Zeus是一個運行於Unix下的非常優秀的Web Server,而PHP則是Unix下一個非常優秀的後台腳本語言。 這兩個產品都是為非常喜歡的產品。為什...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn