搭建PHP開發環境:
1、準備並安裝下列軟體:
MySQL 5.1.30: http://dev.mysql.com/downloads/。
Apache 2.2.14: http://httpd.apache.org/. 在安裝過程中,會出現3個文字框,上面兩個輸入你的本機IP(如:127.0.0.1),最下面輸入你的EMAIL。安裝完成後,apache就自動啟動,可以測試apache是否成功啟動。在瀏覽器地址欄裡輸入:http://localhost/或http: //127.0.0.1,如果出現“It works.”,那麼恭喜你,apache已經成功安裝了;同時在電腦右下角的工作列裡有一個綠色的 apache伺服器運行表徵圖。
PHP 5.2.11: http://www.php.net/downloads.php. 下載無需安裝的zip格式的解壓包,不要用那個installer版本的安裝檔案包(用這個的話很多php擴充都沒有安裝,比如php的mysql擴充,導致不能串連mysql資料庫).
Zend Debugger 5.2: http://www.zend.com/en/products/studio/downloads. 選擇Studio Web Debugger.
Eclipse for PHP: http://www.eclipse.org/downloads/. 注意是Galileo Packages based on Eclipse 3.5 SR1的版本。Eclipse的工作空間設為D:/php_workspace。
安裝完後,對Eclipse作一些基本的配置。如果要使開發的應用能有更好的國際化支援,能夠最大程度的支援中文輸出,則最好使使用UTF-8編碼。
然而,Eclipse工作空間(workspace)的預設字元編碼是作業系統預設的編碼,簡體中文作業系統 (Windows XP、Windows 2000簡體中文)的預設編碼是GBK或GB18030,在此工作空間中建立的工程編碼是GBK或GB18030,工程中建立的文字檔也是GBK或GB18030。如果要使建立立工程、檔案直接使UTF-8,則需要做以下工作:
開啟Window->Preferences->General->Workspace,將"Thext file encodiing"最好設成UTF-8,以後建立立工程其屬性對話方塊中的Text file encoding即為UTF-8。
修改各種檔案的編碼:在Window->Preferences->General->Content Type中,Text下面有各種檔案格式,選擇相應的檔案格式,在下面的Default encoding輸入框中
輸入UTF-8,點Update即可。對PHP開發,最好將HTML和PHP檔案編碼設為UTF-8。
2、讓apache載入php模組:
conf/httpd.conf,在尾部添加下列內容,表示載入php模組,要注意版本要吻合。
PHPIniDir "D:/PHP/"<br />LoadModule php5_module "D:/PHP/php5apache2_2.dll"<br />AddType application/x-httpd-php .php
這裡注意一下,如果你的apache是2.0版的你就填寫LoadModule php5_module "D:/php/php5apache2.dll"。
3、添加虛擬目錄和預設首頁:
預設網站主目錄為Apache的htdocs目錄。由於要在D:/php_workspace下放置所有的Eclipse工程,因此為了能夠訪問到各個工程 下面的php檔案,需要建立一個虛擬目錄指向eclipse工程所在目錄。修改httpd.conf,在檔案結尾添加:
Alias /Workspace/ "D:/php_workspace/"<br /><Directory "D:/php_workspace/"><br /> Options Indexes MultiViews<br /> AllowOverride None<br /> Order allow,deny<br /> Allow from all<br /></Directory>
這樣做的好處是,所有php工程都共用一個apache配置,通過http://localhost/Workspace/ProjectDirectory即可訪問相應工程下面的php檔案。
4、PHP配置:
(1)把D:/php下的php.ini-recommended,改名為php.ini。
(2)設定下面的項目:
zend.ze1_compatibility_mode = Off //是否支援PHP4,最好關閉它,否則用PHP5處理Zip檔案會出錯<br />post_max_size = 20M //POST資訊最大容量<br />magic_quotes_gpc = Off //是否使用魔法引號<br />extension_dir = "D:/PHP/ext" //PHP擴充<br />upload_max_filesize = 20M //上傳檔案大小<br />max_execution_time = 6000 //頁面最大執行時間(秒)<br />max_input_time = 600 //指令碼解析時間上限(秒)<br />memory_limit = 20M //指令碼分配最大記憶體<br />output_buffering = On //是否開啟輸出緩衝區<br />implicit_flush = On //及時輸出緩衝區內容
(3)開啟出錯訊息提示:為了在開發時能更好地進行調試,開啟php.ini中的display_errors和display_startup_errors變數。display_errors 變數的目的很明顯,
它告訴PHP是否顯示錯誤。另外,變數error_reporting 的預設值是 E_ALL。這個設定會顯示從不良編碼實踐到無害提示到出錯的所有資訊。E_ALL 對於開發過程來說有點太細,
因為它在螢幕上為一些小事(例如變數未初始化)也顯示提示,會搞糟瀏覽器的輸出。如果只想看到錯誤和不良編碼實踐,但是不想看到無害的提示,可設成以下值:
error_reporting = E_ALL & ~E_NOTICE
(下列配置可選)依賴於Apache正在做的工作,在PHP中開啟錯誤報表可能沒法工作,因為在電腦上可能有多個PHP版本。有時很難區分Apache正在使用哪個PHP版本,因為Apache只能查看一個 php.ini 檔案。不知道 Apache 正在使用哪個 php.ini 檔案配置自己是一個安全問題。但是,有一種方法可以在 Apache 中配置 PHP 變數,從而保證設定了正確的出錯層級。而且,最好知道如何在伺服器端設定這些組態變數,以否決或搶佔 php.ini 檔案,從而提供更進階別的安全性。要做在 php.ini 檔案中已經做過的事,請把下列各行添加到 httpd.conf,覆蓋任何 php.ini 檔案:
php_flag display_errors on<br />php_value error_reporting 2039
這會覆蓋在 php.ini 檔案中為 display_errors 已經設定的標誌,以及 error_reporting 的值。值 2039 代表 E_ALL & ~E_NOTICE。如果願意採用 E_ALL,請把值設為 2047。
同樣,還是要重啟 Apache。
(4)找到Dynamic Extensions項,這裡是PHP擴充設定部分,啟用下列常用擴充(去掉以下幾項前面的“;”).
extension=php_bz2.dll<br />extension=php_curl.dll<br />extension=php_dba.dll<br />extension=php_dbase.dll<br />extension=php_gd2.dll<br />extension=php_imap.dll<br />extension=php_ldap.dll<br />extension=php_mbstring.dll<br />extension=php_mime_magic.dll<br />extension=php_mysql.dll //MySQL擴充<br />extension=php_mysqli.dll<br />extension=php_pdo.dll //PDO擴充<br />extension=php_pdo_mysql.dll //PDO_MySQL擴充<br />extension=php_sockets.dll<br />extension=php_xmlrpc.dll<br />extension=php_xsl.dll<br />extension=php_zip.dll
(5)解壓出Zend Debugger,把與PHP版本相對應的ZendDebugger.dll拷貝到PHP安裝目錄下,修改php.ini,添加以下內容:
[zend]<br />zend_extension_ts=D:/PHP/ZendDebugger.dll<br />zend_debugger.allow_hosts=127.0.0.1<br />zend_debugger.expose_remotely=always
把解壓出來的dummy.php放到httpd DocumentRoot目錄以及D:/php_workspace/下,用於在Eclipse裡測試Debugger是否連通(Debug Configurations->PHP Web Page->Test Debugger),
成功會出來一個success message。(通過修改worksapce的對應網站目錄,Configure "Default PHP Web Server",也可以放到網站的子目錄下)。
(6)這一步不是必須的:為防止以後出問題,把PHP下的php5ts.dll、libmysql.dll、以及ext/php_mysql.dll、ext/php_mysqli.dll(如果使用了這個擴充)三個檔案拷貝到Windows/system32下。
注意很多時候出現一些與代碼無關的很難解決的問題時,十之八九就是因為擴充沒有正確載入的原因(即使php.ini中的extension_dir指向了ext目錄),這主要
是因為PHP模組由Apache來載入,這是兩個不同的軟體,經常會出現一些協作上的問題。這時就要把你使用到的擴充從ext下拷貝到system32下。
5、配置Eclipse指向PHP模組:
開啟Eclipse的Window->Preferences->PHP->PHP Executables->Add,添加
Name: PHP 5.2.11
Executable Path: D:/PHP/php.exe
PHP ini file(optional): D:/PHP/php.ini
PHP debugger: Zend Debugger
6、配置Eclipse中的php檔案訪問URL:
開啟Window->Preferences->PHP->PHP Server,編輯Default PHP Web Server條目,將URL改為http://localhost/Workspace,注意URL欄中添加了Workspace,
這個是在httpd.conf中添加的目錄別名。
7、測試:
配置完後重啟apache,然後建立一個PHP Project命名叫FirstPHPTest, 當然使用的是我們的D:/php_workspace作為Eclipse的workspace目錄。在工程中建立
PHP File, 比如使用的phpinfo.php。內容為
<?php<br /> phpinfo();<br />?>
當在phpinfo.php上右鍵 Run As->PHP Web Page。