PHP的全名是“PHP:HYPERTEXT PREPROCESSOR”。是一種多平臺無縫運行的服務器端嵌入式腳本語言,它融合了C、JAVA和PERL等編程語言,由于它是一種免費的軟件,具有自由軟件的性質,版本更新速度快,移植速度快,豐富的函數庫功能,因而很快得到大家的喜歡,特別是PHP提供加密函數庫,特別適合給安全性較高的電子商務網站的要求,在Apache環境下構建的PHP網站已經作為當前的流行的Web網站之一。
PHP能夠作為Apache Web服務器的模塊執行,使得它的執行效率要高于普通的CGI程序,而且能比CGI或者Perl更快速地執行動態網頁。
PHP的工作原理如下(如下圖1所示):

圖1 PHP的工作原理
我們如果創建了一個PHP應用程序,實際上相當于創建了一個PHP腳本文件。在服務器將輸出信息發送到客戶端之前,網絡服務器會率先將文件中的PHP語言進行加工處理。如果服務器不支持PHP,通常情況下,網絡服務器會直接將超文本文件送到客戶的瀏覽器上以表示對HTTP的要求作出應答;如果服務器支持PHP,則在服務器響應一個對PHP文件的請求時,會進行下列處理:首先在一個PHP文件內,標準的HTML編碼會被直接送到瀏覽器上,而內嵌PHP程序卻是先被網絡服務器解釋執行。如果是標準輸出的話,輸出信息也將作為標準的HTML而被送至瀏覽器。
PHP可以安裝在Unix/Linux環境下,也可以安裝在Windows環境下。目前網站使用最多的、也是最理想的便是PHP+MySQL+Apache基于Unix/Linux下的服務器策略。
本文中所說的Linux就選用大家比較熟悉的Red Hat Linux操作系統。
作為一個領先的開放源代碼操作系統,紅帽企業Linux提供了適用于從臺式計算機到大型數據中心的系列產品:紅帽企業 Linux AS 適用于高端的,用于關鍵業務處理的系統,紅帽企業 Linux ES 適用于小到中型服務器,紅帽企業 Linux WS 適用于技術/設計工作站,紅帽企業 Desktop適用于安全,可管理的客戶機環境。
我們采用最新的紅帽企業 Linux AS4的環境中使用Apache來構建PHP網站,作為學習環境使用,在安裝redhat AS4時選擇為系統“定制軟件包”,在定制安裝中選擇“全部”,會安裝包括在紅帽企業 Linux AS4中的所有軟件包。Apache 2.0服務器版本、PHP 4.3.9以及MySQL 4.1.x等軟件都已經安裝成功。
我們也可以到http://www.apache.org/網站下載Apache最新版本, http://www.php.net/網站下載PHP新版本以及http://www.mysql.com/下載Linux的MySQL最新版本分別進行安裝,由于篇幅有限,這里就不介紹如何分別編譯、配置和安裝了。
紅帽企業 Linux AS4中使用 “HTTP 配置工具”來配置 Apache HTTP 服務器 的一般步驟如下所述:
1)在「主」標簽下配置基本設置。
2)根據實際需要,點擊「虛擬主機」標簽來配置默認設置。在「虛擬主機」標簽下,配置默認的虛擬主機。如果你想為不止一個 URL 或虛擬主機提供服務,則添加額外的虛擬主機。
3)在「服務器」標簽下配置服務器設置。
4)在「性能微調」標簽下配置連接設置。
5)把所有必要的文件復制到 DocumentRoot 和 cgi-bin 目錄中。
6)退出程序并保存你的設置。
1、基本設置
使用「主」標簽來配置基本服務器設置。

圖2
在「服務器名稱」文本字段中輸入有權使用的完整域名。該選項和 httpd.conf 中的 ServerName 指令相對應。ServerName 指令設置萬維網(WWW或WEB)服務器的主機名。服務器名稱不一定非要是它的 IP 地址。在這里服務器名稱設為 www.ghq.com。
在「網主電子郵件地址」文本字段中輸入萬維網服務器維護者的電子郵件地址。該選項和 httpd.conf 中的ServerAdmin 指令相對應。如果配置服務器的錯誤頁要包含電子郵件地址,該地址將會被用戶用來向服務器的管理員提交問題。默認的值是:root@localhost。
使用「可用地址」文本字段來定義服務器接受進入連接請求的端口。該選項和 httpd.conf 中的Listen 指令相對應。紅帽默認配置 Apache HTTP 服務器 在端口 80 上監聽非安全萬維網通訊。
為了簡單明了,這里我們不配置虛擬主機。[next]
2、服務器設置
「服務器」標簽允許配置基本的服務器設置。默認設置在多數情況下都是適用的。

圖3
「鎖文件」的值和LockFile 指令相對應。在服務器使用 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 編譯時,該指令把路徑設為鎖文件所用的路徑。它必須貯存在本地磁盤上。
「PID 文件」的值和PidFile 指令相對應。該指令設置服務器記錄進程 ID(PID) 的文件。該文件應該只能夠被根用戶讀取。多數情況下,應該使用默認值。
「核心轉儲目錄」的值和CoreDumpDirectory 指令相對應。Apache HTTP 服務器在轉儲核心前會試圖轉換到該目錄中。默認值是 ServerRoot。
「用戶」的值和 User 指令相對應。它設置服務器回答請求所用的 userid。用戶的設置決定服務器的訪問權限。該用戶所無法訪問的文件,網站來賓也不能夠訪問。默認的 User 是 apache。
Group 的值與 Group 指令相對應。Group 指令和 User 指令很相似。它設置服務器回答請求所用的組群。默認組群也是 apache。
3、調整性能
點擊「調整性能」標簽來配置使用的服務器子進程的最大數量,以及客戶連接方面的 Apache HTTP 服務器選項。這些選項的默認設置在多數情況下是恰當的。改變這些設置會影響你的萬維網服務器的整體性能。

圖4
把「最多連接數量」設為服務器能夠同時處理的客戶請求的最多數量。服務器為每個連接創建一個 httpd 子進程。進程數量達到最大限度后,直到某子進程結束,Web服務器才能夠接受新客戶連接。如果不重新編譯 Apache,該選項設置的值將不能超高 256。該選項與 MaxClients 指令相對應。
「連接超時」定義的服務器在通信時等候傳輸和回應的秒數。特別是,「連接超時」定義服務器在接收 GET 請求時要等多久,在接收 POST 或 PUT 請求的 TCP 包時要等多久,以及在回應 TCP 包的 ACK 之間要等多久。「連接超時」被默認設為 300 秒,這在多數情況下都是適用的。該選項與 TimeOut 指令相對應。
把「每次連接最多請求數量」設為每個持續連接所允許的最多請求次數。默認值為 100,這應該在多數情況下都適用。該選項與 MaxRequestsPerChild 指令相對應。
如果選擇了「允許每次連接可有無限制請求」選項,MaxKeepAliveRequests 指令的值就會是 0,這會允許無限制的請求次數。
如果取消選擇了「允許持久性連接」選項,KeepAlive 指令就會被設為 false。如果選擇了它,KeepAlive 指令就會被設為 true,并且KeepAliveTimeout 指令的值會被設為「下次連接的超時時間」中選定的值。該指令設置的超時秒數是服務器在回答了一項請求之后,關閉連接之前,等待下一個請求時會等候的秒數。一旦接收到請求,服務器就會改用「連接超時」中的值。
把「持續連接」設為一個較大的數值可能會導致服務器速度減慢,這要依據試圖連接該服務器的用戶數量而定。該選項的數值越大,等候前一個用戶再次連接的服務器進程就越多。
4、保存設置
如果不想保存所做的 Apache HTTP 服務器 配置,點擊 HTTP 配置工具窗口右下角的「取消」按鈕,會被提示確認。如果點擊了「是」來確認該選擇,設置就不會被保存。
如果你想保存你所做的 Apache HTTP 服務器 配置,點擊 HTTP 配置工具窗口右下角的「確定」按鈕。一個對話框就會出現。如果你點擊了「是」,你的設置就會被保存在 /etc/httpd/conf/httpd.conf 中。
如果這是第一次使用 HTTP 配置工具,我們會看到一個警告配置文件已經被手工修改的對話框。如果 HTTP 配置工具檢測到 httpd.conf 配置文件已被手工修改,它會把手工修改的文件保存為 /etc/httpd/conf/httpd.conf.bak。
Apache的配置文件httpd.conf位于/etc/httpd/conf目錄下如圖5所示,其中的主機名和網頁存放的目錄位置等都有相應的配置如圖6所示。

圖5

圖6
[next]
紅帽企業 Linux AS4中默認的 /etc/php.ini 配置文件已經把過去使用的默認值 "development" 改為使用 "production" 為默認值。這個軟件包現在使用 "apache2handler" SAPI 與 Apache httpd 2.0 集成,而不是使用 "apache2filter" SAPI。如果從以前的發行版本升級,SetOutputFilter 會被從 /etc/httpd/conf.d/php.conf 文件中刪除。
Php.ini文件在/etc目錄下(如圖7),打開文件內容如圖8所示,其中有engine=On項,表示PHP語言模塊已經集成在Apache中即啟動Apache服務,PHP也就啟動了。

圖7

圖8
Php.conf配置文件在/etc/httpd/conf.d目錄下如圖9所示,打開文件內容如圖10所示,Apache啟動時加載Php的libphp4.so模塊,接著讓Apache服務器能夠識別PHP網頁,需要用戶定義它的擴展名,這樣當Apache服務器加載以下擴展名的網頁時,就會作為PHP網頁來處理。

圖9

圖10
首先編輯一個test.php文件,內容如圖11所示,將該文件保存在/var/www/html目錄中;然后啟動Apache 服務如圖12,在瀏覽器上輸入http://192.168.1.68/test.php,調出頁面如圖13所示,至此在Apache服務器的構建PHP網站就算完成了。

圖11

圖12

圖13