- PHP網(wǎng)絡(luò)編程學習筆記
- 宗杰等編著
- 806字
- 2019-01-01 14:11:04
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。
- 一步一步學Spring Boot 2:微服務(wù)項目實戰(zhàn)
- PostgreSQL for Data Architects
- Python爬蟲開發(fā):從入門到實戰(zhàn)(微課版)
- Raspberry Pi 2 Server Essentials
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- AutoCAD VBA參數(shù)化繪圖程序開發(fā)與實戰(zhàn)編碼
- 第一行代碼 C語言(視頻講解版)
- Python機器學習算法: 原理、實現(xiàn)與案例
- Android驅(qū)動開發(fā)權(quán)威指南
- Java語言程序設(shè)計教程
- 零基礎(chǔ)學C語言(第4版)
- 30天學通C#項目案例開發(fā)
- Python趣味創(chuàng)意編程
- Java編程指南:語法基礎(chǔ)、面向?qū)ο蟆⒑瘮?shù)式編程與項目實戰(zhàn)
- Python程序設(shè)計