官术网_书友最值得收藏!

2.2 Apache與PHP的結(jié)合

作為Web應(yīng)用程序開發(fā),Web服務(wù)器和后臺腳本語言的兼容性也是十分重要的。PHP最初就是基于Apache開發(fā)的,所以它與Apache有良好的兼容性。Apache有兩種方式可以運行PHP腳本,一種是模塊方式,另外一種是CGI方式。兩種方式各有自己的特點,下面詳細地介紹兩種運行方式以及它們之間的區(qū)別。

2.2.1 以模塊方式運行PHP

模塊方式是指把PHP解析器作為Apache自身的一部分來運行和解析腳本。模塊方式的PHP一般為一個動態(tài)庫文件,在Linux下是libphp5.so,而在Windows下則是php5apache2.dll。在Apache的配置文件httpd.conf中配置加載相應(yīng)的動態(tài)庫文件,然后運行Apache服務(wù)器程序便可以解析PHP腳本。詳細的配置方法將在2.3節(jié)及以后的章節(jié)中介紹。

安全方面,在PHP以Apache的模塊方式安裝和運行時,它將擁有與Apache用戶(一般是“nobody”用戶)一樣的權(quán)限,但是可以通過Apache認證機制、或者用LDAP和.htaccess等技術(shù)來設(shè)計自己的訪問模型,從而避免此安全問題。

一個經(jīng)常出現(xiàn)的安全性問題就是讓Apache擁有root權(quán)限,或者通過其他途徑賦予Apache更強大的功能。

注意:

如果將Apache用戶的權(quán)限設(shè)置為 root將是一種極其危險的做法,而且很可能會危及整個Web服務(wù)器系統(tǒng)的安全。所以除非是Apache專家,否則決不能使用root權(quán)限來運行Apache

2.2.2 以CGI方式運行PHP

CGI方式就是指把PHP解析器作為一個獨立的程序來運行和解析腳本。這個獨立的程序,在Linux下是二進制可執(zhí)行程序php,而在Windows下則是php-cgi.exe。在Apache的配置文件httpd. conf中配置相應(yīng)的PHP解析器,可使Apache在解析PHP腳本的時候找到解析器。詳細的配置方法將在2.3節(jié)及以后的章節(jié)中介紹。

安全方面,在PHP使用CGI方式安裝和運行時,Apache服務(wù)器對于某些可能的攻擊是開放的。

注意:

不要把PHP解析器放到 cgi-bin目錄,客戶端有可能運行它并造成安全漏洞。

2.2.3 兩種運行方式的比較

以模塊方式和CGI方式在Apache中運行PHP,各有各的優(yōu)缺點,但是就實用性來講,模塊方式更具有安全性與效率性,所以建議Web開發(fā)人員或者網(wǎng)站部署人員使用模塊方式來運行PHP。關(guān)于這兩種方式的詳細比較請參見表2-1。

表2-1 PHP中模塊與CGI比較表

在以CGI方式解析腳本的時候必須在代碼中第一行加解析器的絕對路徑,如#!C:\PHP5\php-cgi.exe。

主站蜘蛛池模板: 浦城县| 汉阴县| 光泽县| 娄烦县| 黄骅市| 利川市| 合肥市| 沙坪坝区| 宣恩县| 勃利县| 涞源县| 神池县| 遵义市| 石渠县| 洛浦县| 金秀| 黑山县| 文安县| 蚌埠市| 综艺| 德州市| 错那县| 大渡口区| 五莲县| 台南市| 宁安市| 延边| 泸定县| 靖西县| 商丘市| 奉新县| 仙游县| 壶关县| 古交市| 凌源市| 会泽县| 亚东县| 九龙城区| 井研县| 通道| 互助|