軟件安裝和環境配置
1,Windows Server2003
Windows Server2003安裝完畢,最好能上網通過Windows Update安裝系統所有的補丁,包括其最新的SP補丁包,雖然這對于學習不見得有致命的影響,但還是建議這樣做。由于Windows 2003默認是不安裝IIS的,所以在安裝完畢后還必須通過“添加和刪除程序”來安裝IIS6.0組件。
注意,還必須注意把IIS6.0的“主目錄”-“配置”-“選項”的“啟用父路徑”開通。還要把“Web服務擴展”中的“所有未知ISAPI擴展”設置為“允許”-因為我們的測試環境將讓php與IIS以“ISAPI方式”集成?!霸诜掌鞫说陌募?服務擴展,好像不影響PHP的require等腳本命令。
再次注意,由于我們的ZF學習和代碼調試主要是在Apache環境下進行,所以以上IIS的配置與我們的ZF學習關系不大,只是當我們作為附加知識,需要在IIS下演示ZF的時候才需要這些配置。
2,MySQL for Windows的安裝
數據庫選擇和Windows2003安裝在同一臺機器上。mysql-5.0.41-win32是一個Setup.exe文件,雙擊它,一路做一些選擇,再按“下一步”,安裝完畢。最后選擇立即進入配置過程。對于我們的學習,mySQL如何配置影響不大。數據庫建議選成“myISAM”格式。注意記住用戶root的密碼。
注意在配置nySQL之前,務必關閉服務器上的防火墻和一些殺毒軟件,比如360安全衛士,否則可能引起創建數據庫失敗。如果有問題,可以卸載mySQL后再試。
3,Apache for Windows
我選擇apache_2.2.8-win32-x86-openssl-0.9.8g.msi的Apache for Windows版本。安裝路徑為:C:PRogram FilesApache Software FoundationApache2.2。
3.1 由于IIS服務本身占用了80端口,所以我選擇Apache使用8080端口。這樣一臺機器就能跑2種Web服務,便于我們的測試。在真實的生產環境下,都是禁用或不安裝IIS而讓Apache在80端口下服務的。修改Apache的端口的方法是,用文本編輯器打開C:Program FilesApache Software FoundationApache2.2confhttpd.conf文件,把Listen 80修改為Listen 8080。
注意httpd.conf是Apache的配置文件,以后會經常修改。該文件修改完畢后必須重新啟動Apache服務,配置才能生效。這一點必須特別注意。(誰要愿意,重新啟動機器也行,Apache服務也會重新初始化一次—但相信PHP程序員沒這么傻的)
3.2修改網站默認首頁文件
在httpd.conf以下代碼的DirectoryIndex后加index.php,多個首頁文件用逗號隔開:
DirectoryIndex index.html, index.php
3.3 Apache2.2文件夾下有許多文件夾,其中有2個重要的文件夾:
Conf里包含著配置文件httpd.conf;
Htdocs是默認的存放網頁文件的地方。默認的存放網頁文件的文件夾可以通過httpd.conf的DocumentRoot語句來修改,但我們的測試使用默認的。
3.4 Apache虛擬主機配置
為了測試眾多的應用,我們需要建立虛擬主機,使應用程序分別在獨立的網站內運行。
屏蔽掉默認的網站,即在以下配置語句前加個注釋符號#(也可以刪除該語句):
#DocumentRoot “C:/Program Files/Apache Software Foundation/Apache2.2/htdocs”
然后在該語句下鍵入以下一段語句:NameVirtualHost *:8080
ServerAdmin webmaster@mydomain.com
DocumentRoot “C:Program FilesApache Software FoundationApache2.2htdocs”
ServerName localhost
ErrorLog “logs/localhost-error.log”
CustomLog “logs/localhost-access.log” common
復制代碼就可以在本服務器上以http://localhost:8080/來訪問本地的網站,例如,一個index.php文件內容如下,就可以顯示服務器的基本配置信息:
phpinfo();
?>
配置虛擬主機(以域名phpchina1.com區分):
ServerAdmin any@any.com
DocumentRoot “C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/phpchina1.com”
ServerName phpchina1.com
ErrorLog “logs/phpchina1.com-error.log”
CustomLog “logs/phpchina1.com-access.log” common
復制代碼保存后重啟服務,在局域網某臺機器,或服務器上,在 hosts文件中加入語句
<服務器ip> phpchina1.com
就可以以http://phpchina1.com:8080/*.*的形式訪問網站。
但注意:
在Apache與PHP正確集成以前,是不能訪問PHP文檔的。
在進一步正確配置ZF之前,也不能做ZF的測試。實際上,在運行ZF代碼之前還有幾個重要配置步驟需要做。
4,PHP安裝和配置
我們選用PHP 5.2.5版本。得到php-5.2.5-Win32.zip文件后,解壓到以下文件夾下即可:
C:usrlocalphp-5.2.5.for_Apache2.2php-5.2.5.bin
你的路徑可以與這里不同,我建立這么深層的路徑是因為我的機器安裝的PHP版本很多,才這么組織的。
PHP需要的配置:
PHP的配置通過編輯php.ini來完成。第一次,我們復制
C:usrlocalphp-5.2.5.for_Apache2.2php-5.2.5.bin
下的php.ini-recommended文件生成一個php.ini文件,然后指定extension_dir路徑:
extension_dir = “C:usrlocalphp-5.2.5.for_Apache2.2php-5.2.5.binext”
再打開以下語句的注釋,用于讓ZF支持mySQL數據庫:
extension=php_pdo.dll打開 pdo
extension=php_pdo_mysql.dll 打開 pdo_mysql
為了PHP支持更多擴展,可以把它們的注釋去掉,例如為了支持圖形功能,可以打開
extension=php_gd2.dll
順便注意一下,為了安全,register_globals = Off,默認已經是關閉的了。我們自己開發的PHP擴展也可以拷貝到ext 文件夾下,用extension=myphp_ext.dll的形式調用。
5,Zend Framework:
取得ZendFramework-1.5.1.zip壓縮包,解壓取出里面的library文件夾的內容,把library文件夾拷貝到以下文件夾下:
C:Program FilesApache Software FoundationApache2.2htdocs
最終的文件夾路徑形式是:
C:Program FilesApache Software FoundationApache2.2htdocslibraryZend*.*
6,PHP與Apache、mySQL的集成
在 http.conf 文件最后加語句:#集成mySQL
LoadFile “C:usrlocalphp-5.2.5.for_Apache2.2php-5.2.5.binlibmysql.dll”
#集成 PHP5
LoadModule php5_module “C:usrlocalphp-5.2.5.for_Apache2.2php-5.2.5.binphp5apache2_2.dll”
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#(指定php.ini文件的位置)
PHPIniDir “C:usrlocalphp-5.2.5.for_Apache2.2php-5.2.5.bin”
復制代碼如果是 PHP6,則形如:
LoadModule php6_module “……php6apache2_2.dll”
注意以上裝載模塊語句LoadModule必須加載與當前PHP和Apache版本對應的dll文件。配置錯了是不能工作的。
再次注意:保存http.conf文件后必須重新啟動Apache服務,配置才能生效。
到此為止,應該可以在我們的虛擬主機上運行普通的非Zend Framework的PHP代碼了。遺憾的是仍然不能開始我們的Zend Framework之旅。因為ZF的特別設計,我們還需要對Apache做點額外配置。這也是我前邊不推薦在IIS上跑ZF應用的原因所在,因為Apache經過幾處設置就可以跑ZF應用,而IIS需要借助第三方的軟件才可以。再者,在大家心里,IIS和PHP、ZF并不是黃金搭檔,在程序員的心里,技術也必須門當戶對才行。
預計到下一部分的的最后,我們才能真正見到ZF的第一個示例。
新聞熱點
疑難解答