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

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

Jul 21, 2016 pm 04:09 PM
php server unix web 前言 安裝 支援 語言

前言
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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles