程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Windows XP下PHP+MySQL環境搭建

Windows XP下PHP+MySQL環境搭建

編輯:PHP綜合

本教程介紹如何在 Windows XP 機器上設置 apache Web 服務器、PHP 解釋器和 MySQL 數據庫以構成所需的開發環境。

開始之前

關於本教程

本教程會帶您親歷將 Windows XP 機器設置為 PHP 和 MySQL 開發環境的全過程。您將從下載和安裝用於處理 HTTP 請求(您每次將 URL 輸入到浏覽器時提交的請求類型)的 Apache Web 服務器開始。您還將學習如何配置 apache 服務器以便能夠將 Web 站點文檔存儲在您希望存儲的任何位置。您甚至還會學習設置 apache 使用的默認索引文件。

設置好 Web 服務器之後,您將下載和安裝 PHP 腳本語言。除了簡單的下載操作之外,您還必須對 apache 進行配置,使其能夠將請求傳遞給 PHP 引擎。通過 apache,您還將學習如何正確定位腳本文件,以及如何確保它們的安全性。

在 Web 服務器和 PHP 腳本引擎開始運行之後,剩下的任務就是添加數據庫。通常,MySQL 是流行的數據庫選擇,因為它是免費和開源的 —— 我在本教程中使用的就是它。另一個可選方案是 IBM Cloudscape,它也是用 Java 編寫的由標准驅動的關系數據庫。它被設計用來嵌入到當今開發人員使用的諸多 Java 應用程序和服務器內。在本文中,您將學習如何在 Windows 平台上安裝 MySQL,以及如何將 PHP 腳本連接到 MySQL 數據庫。

當您完成了上述操作之後,您將擁有一個完整的開發環境,可以用來測試和開發。

本教程針對 Web 開發人員編寫。如果您已經可以熟練使用 PHP 和數據庫,那麼本教程將指導您開始在 Windows XP 上運行 PHP(無論它是否始終保持和 Internet 的連接)。如果您剛剛開始 Web 編程,本教程將為您提供嘗試 PHP 的練習環境。無論您具有何種專業水平,只要您願意循序漸進,本教程都會讓您學會在 Windows 上使用 PHP。

您還將進行一些常規 Windows 配置,包括設置環境。如果您熟悉 PATH 和其他 Windows XP 環境變量,那麼這完全不成問題;如果您不熟悉這些內容,也可以參考本教程中的相關介紹。

系統需求

您需要的全部軟件和硬件是一台運行 Windows XP 的機器(我使用 SP2,但是我在沒有 SP2 的環境下運行相同的配置也有幾年的時間了)。我將帶您完成全部的下載和安裝過程,因此您無需任何預先存在的軟件。但您需要擁有對機器的管理員訪問權限,因此如果您使用的是共享機器,可能會遇到問題。最後,您在使用本教程的過程中需要 Internet 訪問來下載軟件。然而,一旦您設置好了此環境,就不 需要 Internet 訪問了。

開發、測試、部署

開發環境是什麼?

如果您從事過正式的開發工作,就應該熟悉術語開發環境。根據您公司的復雜程度,這可能意味著從運行著 10 或 15 個 apache 實例的 Sparc 10 高端 UNIX box 到具有 IDE(集成開發環境)的膝上型電腦的任何環境。事實上,不同的人可能對此術語有不同的定義。如果您沒聽說過這個術語,情況可能反而更好 —— 因為您不會像許多開發人員那樣對此術語有很多誤解。針對本教程的目的,我提出了一個簡單的定義:開發環境就是您在其中進行開發的環境。我知道這聽起來像是老生常談 —— 而且我也不應該根據這個術語的字面含義定義它 —— 但是這個定義事實上非常有用。

首先,我假定您是一位開發人員。您編寫一些代碼,或者您希望編寫一些代碼,或者有人雇您編寫一些代碼,總之,您正在編寫代碼。而且,除非必須用算盤計算,否則您就需要在計算機上工作。那麼,這台計算機就是您的開發環境。看到了吧,我告訴過您這非常簡單!

更重要的是,您的開發環境僅 指您的計算機。它不是(例如)您將代碼加載到其中來檢查代碼是否有效的測試服務器。它不是位於一個遙遠的國家的、您的整個公司用來實現絕密部署的服務器群。它也不是用來在主計算機故障時工作的備用機器。它僅指您在其中編寫代碼的計算機。

這裡的意思是說,任何時候當您將代碼移動到另一台計算機、另一個操作系統、另一個具有不同郵編的地區的時候,您都要進行更改。可能您會對您的機器應用一個補丁,但是您無法對目標計算機也應用補丁。可能一台機器運行 apache,而另一台機器運行 iPlanet。無論在何種情況下,兩台計算機永遠不會完全相同。而當我談及開發環境時,我不希望處理更改。因此,開發環境就是您在其中進行操作的機器,而且它和另一地點的其他 機器是不相同的。

您是否認為無需進行任何測試工作?

您和我都清楚:測試很乏味。測試讓人痛苦,速度還慢,實在讓人興奮不起來。但是,它能讓您保住工作。那些測試自己代碼的開發人員能夠在周末盡情玩水橇和購買新房子的原因很簡單,那是因為他們的代碼在部署之後能夠正常工作(請參閱 什麼是部署?,獲得關於部署的更多信息),他們不用擔心代碼會出現問題。

測試的秘密在於一台計算機(您的開發環境)和另一條計算機(您希望您的代碼在其中運行的機器)之間的差別。如果您能夠確定這些差別,並解決它們,測試就會變得很容易。例如,如果您的開發環境是一台運行 Windows XP 的 PC(使用 apache、PHP 和 MySQL),而您計劃在一台運行 apache、PHP 和 PostgreSQL 的 Linux 服務器上運行您的代碼,那麼就應該注意 Windows XP 和 Linux,以及 MySQL 和 PostgreSQL 之間的區別。因為 apache 在 Linux 和 Windows 上差不多相同(PHP 也是如此),所以您無需將注意力放在這些應用程序上。

在理想的情況下,您應該擁有三台完全獨立的機器用於編程:

開發環境:用於在其中編寫代碼的機器,根據您喜歡的代碼編輯器和用戶首選項進行設置。

測試機器:用於測試代碼的機器,完全模仿部署服務器進行設置。惟一的區別是:它是一台私人機器,而且最好獨立於網絡中可能干擾它的其他機器。

部署機器:這是代碼最終在其中運行的機器。此機器僅具有運行代碼所需的軟件,沒有用戶首選項或開發工具(事實上,如果設置正確,它甚至不允許遠程用戶登錄)。
如果以上是您的設置,那麼您真是幸運。通常情況下,您不得不在一台機器上至少結合上述兩種角色。例如,您可能在一台膝上型電腦中進行開發,而在一台 UNIX 服務器上進行測試和部署。在這種情況下,您可能要在一個不同的端口(例如 8080 或 9900)上進行測試設置,以便外部世界無法看到您的測試代碼。

根據您當前的學習目的,在設置好開發環境並使其運行之前,無需過於擔心測試環境。您只需了解您的開發機器中有什麼軟件以及它和目標部署服務器之間的區別。這將幫助您隔離您必須在測試過程中關注的內容。

什麼是部署?

一旦您編寫了工作代碼,您通常必須確保它不僅能夠在您的機器(您的開發環境)上工作,而且能夠在它將要在其中運行的機器中工作。因為大多數開發人員使用的服務器都不在其辦公室,這意味著經過良好測試的代碼要被帶離您的開發環境,然後被部署。這可能會涉及以 FTP 方式將代碼上傳到您的 Internet 服務提供商 (ISP)(一個服務器群,位於一間比您工作的房間冷得多的房間中),或者將一張滿是代碼的 CD 交給系統管理員。無論是什麼情況,這就是您需要將代碼部署到另一台機器的時候。

我在本教程中不會過多涉及部署這個主題,但是您需要理解這是在應用程序開發過程中必須處理的一件事。即使只是設置個人 Web 站點上的博客,仍然需要將位於開發環境中的代碼部署到某個地方,以便全世界都能夠看到它。乍一看,這使開發環境看起來沒什麼用處。計算機和計算機之間的差異突然冒了出來。然而,這恰恰是使開發環境有用的原因。當您進行部署的時候,您已經在本地機器上編寫了代碼,並排除了所有軟件錯誤(Html 被正確編寫且在各種浏覽器中顯示正常;PHP 腳本全都可以執行且是安全的;MySQL 連接工作正常;密碼已被設置)。您還在一台類似部署目標的機器上測試了代碼,並編寫了此過程中的操作指南。因此當您真正部署代碼時,成功率是很高的 —— 事實上,部署操作通常也很乏味。不過就是單擊 Upload 按鈕,Commence FTP 按鈕,或者 Burn 按鈕,剩下的就是等待了。

然而,如果沒有開發環境,這一切就會更像是滾骰子。您上傳的是沒有運行過(因為沒有正確設置開發環境)也沒有測試過(如何測試沒有在最初位置運行過的東西?)的代碼。因此,您不能期望此代碼能夠正常工作。您若突然在一台實際服務器上測試代碼,您的用戶、朋友和家人肯定會得到錯誤和怪異的消息。這可不是開發代碼的方式,因此讓我們(現在一起)摒棄這種方式,回去設置開發環境。

看起來有點正式了,不是嗎?

如果希望構建一個絕佳的 Web 站點,那麼 PHP 為您提供了一個實現此目的的有趣、舒適的腳本工具,這看起來可能有點好過頭了。如果擁有多台服務器和多個測試人員和開發人員的團隊,這自不用擔心。然而,即使在單人生產中,您仍然會希望自己的站點在被上傳到 ISP 時能夠正常運行。如果您記住這些概念(如果不是實際細節的話),那麼您將能夠發現上傳站點時所出現的 bug。您可能還會發現,在知道這些 bug 出現的原因後,您會更加享受這個過程。

 設置 apache Web 服務器

下載 apache

在開始進行 Web 開發之前,需要一個 Web 服務器。雖然存在大量的商業選擇,但是 Apache 仍然是提供 Web 內容方面事實上的標准。而且,apache 易於配置。它不帶花哨的 Web 控制台,我將隨時采用 GUI 上的純文本文件。編輯文本文件非常簡單,您只需 Notepad 或 Wordpad 即可。此外,apache 速度非常快,而 Web 服務器就應該這樣,對嗎?它應該簡單、易於使用且速度快。

要開始,請訪問 Apache Web 站點。 在左側的 Apache Projects 下方,單擊 HTTP Server 鏈接。這會帶您進入主 apache Web 服務器站點。 在這裡,單擊 Download from a mirror 鏈接,此鏈接也位於頁面左側。這將使您進入一個類似圖 1 中顯示的頁面。

圖 1. apache Web 服務器下載頁面 
 <u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載

向下滾動到 Apache 2.0 section;將會顯示類似 "Apache 2.0.54 is the best available version." 之類的內容。現在單擊 Win32 binary 的鏈接。在我寫作本文時,文件名是 apache_2.0.54-win32-x86-no_ssl.msi。將此文件保存到磁盤,確保將它存放在您能夠記住的位置(沒有什麼比完成了全部這些步驟,卻忘記了存放文件的位置更糟的了)。因為您將僅使用此文件來啟動安裝,所以可以將此文件放置到桌面上。

安裝服務器

雙擊下載的文件,啟動 apache 安裝過程。您將首先看到一個漂亮的徽標和一條歡迎消息。單擊 Next 進入下一個屏幕。

您必須接受 Apache 許可條款才能繼續。雖然許多人會告訴您快速浏覽一下這些內容即可,我還是建議您停下來仔細閱讀整個許可條款。您只需細讀這一遍,然後在後續的安裝中快速浏覽即可。對於那些忽視我的許可條款告誡的人來說,apache 許可條款正如事實上那樣沒有約束力。基本上,您能夠對此軟件進行任何操作。更改它、向它添加內容、從其中移除代碼;但是,因為您沒有使用源代碼,所以這對您沒有實際影響。接受這些條款,然後再次單擊 Next 。

下一個屏幕會為您提供一些選項(終於到這一步了)。類似這種個人安裝上的網絡域實際上不那麼重要。您可以將它設為 ISP 的域(例如 grandenetworks.com),或者希望在家庭或辦公室網絡中使用的域(例如 gilead.Net),或者任何符合基本 Internet 格式的內容。服務器名稱應該是和您的計算機的主機名稱相同的名稱。同樣,在個人 Windows XP 安裝上,這實際上也不重要(正如很快將看到的那樣,可以使用 localhost 來訪問此安裝)。接下來設置管理員的電子郵件地址;我使用類似 [email protected] 的格式。最後,決定為所有用戶還是僅當前用戶安裝此軟件。我傾向於為所有用戶安裝程序,萬一我的妻子也決定將編程作為愛好呢(開玩笑的)。此選項還將服務器設置到默認的 HTTP Web 服務器端口 80(這是您希望的)。

如果本文是一篇關於在產品服務器上設置 apache 的教程,那麼我真的應該在這裡花些時間。設置域和服務器名稱對於確保其他機器能夠訪問您的新服務器來說是至關重要的。大多數開發機器是運行在本地網絡中的膝上型電腦或台式電腦,這些網絡通過 DHCP (Dynamic Host Configuration Protocol) 提供 IP 地址。這意味著每次機器啟動時,您可能會擁有不同的 IP 地址,這樣域名和主機名稱基本上就沒用了,至少在其他機器訪問您的 Web 服務器時如此。在本步驟中隨意設置這些值然後繼續。

在下一步中,選擇 Typical 設置,然後繼續。您可能會缺少在 Apache 模塊中進行編譯所需的某些文件,但是您可能暫時並不需要。Typical 設置對於您的當前的學習目的來說足夠了。接下來,選擇安裝 Apache 的文件夾;除非您有一個充分的理由來更改默認地址,否則請接受默認地址。這可使升級和重新安裝更容易。最後,單擊 Install。您將看到幾個進程指示條,在等待的時候,您不妨喝點飲料休息一下。在此過程接近完成時,您將看到彈出幾個命令 shell (快速顯示然後消失的黑色窗口)。您可能還必須讓防火牆或 Internet 安全軟件知道 apache 可以接受傳入端口上的連接。

上述所有操作完成之後,單擊 Finish。刪除安裝文件(可能位於桌面上,如果您遵循上述操作說明的話),現在您已經完成了安裝操作。作為完整性檢查,現在您的系統托盤中應該有一個 apache 小圖標在運行,如圖 2 所示。

圖 2. 系統托盤中的 apache 
<u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載 

設置文檔目錄

默認情況下,apache 為您設置一個存放 Html 和圖像文件的目錄,以便 Web 客戶機能夠訪問它們。如果您將 Apache 安裝在其默認位置,則此 Web 文檔目錄是 C:\Program Files\Apache Group\apache2\htdocs。使用此位置沒什麼不對的地方,但是也沒什麼特別的好處。例如,我通常備份我的 Windows 的 My Documents 目錄。我在此位置存儲我的全部編輯、寫作和編程文件,這就使備份和恢復操作變得非常容易。然而,此實踐將完全忽略您為 Apache 創建的所有 Web 站點文件。我建議您將 C:\Program Files\Apache Group\Apache2\htdocs 添加到您進行備份的目錄,但是這麼做有一些麻煩。甚至更糟,當您升級 apache 時,新的版本可能會刪除或覆蓋此目錄。

我更願意讓 apache 在一個不同的位置查找 Web 文件 —— 自然,此位置位於 My Documents 目錄下。這是一個容易實現的更改。

首先,在 My Documents 下創建一個子目錄;我使用 websites 作為目錄名,因為此名稱的含義是不言自明的。請參閱圖 3 來獲得可視化輔助。

圖 3. My Documents 下的 websites 目錄 
 <u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載

現在您能夠告訴 Apache 在這個備選位置查找 Web 文件了。幾乎所有 Apache 的配置都通過一個簡單的文本文件 httpd.conf 處理,此文件位於 C:\Program Files\Apache Group\apache2\conf 目錄中。打開此文件;它很長,但是我將指導您進行需要的操作。

默認情況下,Windows 使用 Notepad 打開此文件。按下 Ctrl+F 來打開搜索對話框(如果您使用的是其他編輯器,可以使用該應用程序的搜索命令)。在搜索對話框中,輸入 DocumentRoot。您將看到一個類似以下內容的條目:

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Program Files/Apache Group/apache2/htdocs"

DocumentRoot 是 Apache 用來代表其默認 Web 目錄的鍵。要使 apache 查找其他位置,只需使用您自己的目錄替換此條目即可,如下所示:

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Documents and Settings/Brett McLaughlin/My Documents/websites"

請確保路徑包括在引號中。這讓 apache 可以處理長 Windows 路徑名稱。

您還需要在另一個位置進行更改;向下滾動幾行,將看到一個如下所示的注釋:

#
# This should be changed to whatever you set DocumentRoot to.
#

不用說,遵照此說明進行更改:

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/Documents and Settings/Brett McLaughlin/My Documents/websites">

您必須重啟服務器,才能使 Apache 識別這些更改。右擊位於系統托盤中的 Apache 圖標(如圖 2 所示),單擊 Open apache Monitor。然後在此監視器的右側,單擊 Restart。此 Service Monitor 反映了服務器的狀態。現在您只需進行一些測試,來查看 它們是否工作正常。

測試安裝

在啟動 Web 浏覽器之前,我必須和您回顧一個概念。請耐心些,我保證情況不會太壞。當您安裝 apache 時,它會在您的機器的 80 端口上設置商店。這很好,因為當您在 Web 浏覽器中輸入常規 URL 時,浏覽器會自動嘗試連接所請求的機器上的 80 端口。您可以選擇添加一個類似以下內容的端口: http://www.oreilly.com:8080;但是因為您希望連接到默認端口,所以無需指定此額外信息。

這樣,剩下的任務就是在端口號之前輸入內容了。通常情況下,您將輸入類似 radar.oreilly.com 或 www.thepokergeek.Net 之類的內容。您之前可能曾經輸入過一些內容作為服務器名稱(例如 roland.gilead.Net),但是這並不意味著當您在浏覽器中輸入此服務器名稱時,它會起作用。您必須確保輸入的名稱映射到機器的 IP 地址。我在這裡不會過多地介紹這些內容,而只會簡單地告訴您一個小秘密:您總是可以通過 IP 地址 127.0.0.1 訪問您正在使用的機器。這稱為環回地址 ,它將您的請求環回到您的機器上。

當然,我討厭打字,而 127.0.0.1 對於頻繁使用來說有點過長了。您可以使用一個快捷方式來代替它,這個快捷方式是名稱 localhost。它映射到環回地址,如下面的命令輸出所示:

C:\Documents and Settings\Brett McLaughlin>ping localhost

Pinging Cuthbert [127.0.0.1] with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Ping statistics for 127.0.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Documents and Settings\Brett McLaughlin>

請注意,名稱 localhost 映射到 127.0.0.1。將此端口、IP 地址和 locahost 聯系起來,您應在浏覽器地址欄中輸入的地址是 http://localhost。這會從位於端口 80 的本地服務器那裡請求一個頁面。結果應該類似圖 4,盡管您將看到明顯的錯誤。

圖 4. apache 報告一個 403 Forbidden 錯誤 
 <u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載

盡管這不是一個典型的 Web 站點,但是它就是 我們想要的結果。記住,您創建了一個新目錄(C:\Documents and Settings\Brett McLaughlin\My Documents\websites),並引導 Apache 在此目錄中搜索 Web 文件。問題是此目錄中目前沒有任何文件。因此,apache 會報告它不會顯示您的空目錄(一種安全措施)。修正此問題最容易的方法是導航到此目錄,並創建一個簡單的文件:

<Html>
 <head>
  <title>My First Page</title>
 </head>
 <body>
  <h1>My First Page</h1>
  <p>Everything is working now!</p>
 </body>
</Html>

將此文件保存為 C:\Documents and Settings\Brett McLaughlin\My Documents\websites 下的 index.Html 文件。默認情況下,apache 會查找具有此名稱的文件,因此,現在您應該能夠重新加載浏覽器頁面了(或者重新輸入 URL,如果您已經關閉了浏覽器的話)。這次的響應會更有用些,如圖 5 所示。

圖 5. 此頁面指示一切正常
<u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載 

現在,您已經安裝了 apache,並准備好使用了。去吃點東西,休息一下,然後再回來 —— 您接下來將繼續學習 PHP安裝 PHP 解釋器

下載 PHP 5

准備好 apache 之後,就可以開始進行更有趣的工作了。在我看來,PHP 是可用的最好的 Web 編程工具之一。當然,還存在其他選擇和大量的應用程序。如果您正在構建大型的服務器端應用程序,那麼 Java 可能是最佳選擇;如果您是一位真正的黑客,那麼具有最大限度靈活性的 Perl 非常合適;JavaScript、AJax 和 Ruby(尤其是 Ruby on Rails)非常適合高度交互性 Web 站點,例如 Google。但是,如果您只想快速實現一些基本功能,那麼我認為 PHP 是最佳選擇。它易於設置(您馬上就會發現這一點)、能夠和 apache 很好地集成,而且一旦您熟悉了這個環境,就能夠實現更復雜的功能。總之,它的確可以稱得上是一種易於使用的、可訪問的 Web 腳本語言。

當然,無論一種語言如何易於使用,都必須建立開發環境並使其運行。這就是 PHP 的優勢。只需幾個簡短的頁面,您就能夠使腳本在 apache 上運行。首先,訪問 PHP Web 站點, www.PHP.Net。 請確保不要訪問 PHP.com,這是一個完全不同的網站。

您可以在以後浏覽 PHP Web 站點並獲得大量的信息(包括入門教程)。現在,您訪問這個網站的目的是下載軟件,因此請尋找位於頁面頂部的下載鏈接。單擊此鏈接,進入一個類似圖 6 的頁面。

圖 6. 從官方 Web 站點下載 PHP 軟件

<u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載 

尋找 Windows BinarIEs 標題,並找到 PHP 5.0.4 zip package 的鏈接;單擊此鏈接,然後選擇最近的鏡像來下載安裝程序(不要 下載 PHP 5.0.4 Installer,因為它不包括 MySQL 擴展)。將此文件保存到本地機器;因為它是臨時文件,所以我將它放在桌面上。好了,現在可以安裝它了。

Windows 上安裝 PHP

獲得 zip 文件之後,雙擊它來打開此 zip 文件。將此 zip 文件中的所有內容解壓縮到 C:\PHP。

接下來做什麼?哦,您需要簡單地看一下進度條,然後安裝就完成了。打開 C:\PHP ,您應該看到類似圖 7 的內容。

圖 7. 安裝在 C:\PHP 的 PHP 解釋器

<u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載 

下一步是創建一個可用的 INI 文件,此文件會告訴 PHP 在被其他應用程序(例如 apache)調用時如何反應。創建 INI 文件的最佳方式是從模板復制一個文件,然後將其重命名為 php.ini。 在 C:\PHP 中查找名為 php.ini-recommended 的文件。復制此文件並將其粘貼到相同的目錄中;然後將其重命名為 PHP.ini。這就是需要對它進行的所有操作。以後您將回過頭來重新查看這個文件,但是現在,這就是開始運行所需的全部操作。

此過程不會 設置 PHP 使用 apache。因此,讓我們回過頭來看一些其他的文本文件和手動配置。

將 PHP 連接到 apache

啟動文本編輯器,並打開 apache 的 httpd.conf 文件,就像您在之前部分中做的那樣。搜索 ScriptAlias,應該看到類似如下的內容:

#
# ScriptAlias: This controls which directorIEs contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the clIEnt.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/apache2/CGI-bin/"

對於 /cgi-bin/來說,此條目告訴 apache 如何處理任何包含 CGI-bin 目錄的 URL。例如,如果您請求了 http://www.newInstance.com/CGI-bin/mail-me,Apache 不會在 cgi-bin 目錄中查找一個名為 mail-me 的文件。相反,ScriptAlias 命令會告訴 Apache 查看另一個目錄 —— 在本例中,這個目錄是 C:/Program Files/Apache Group/apache2/CGI-bin/。這是至關重要的,因為您不會希望將腳本存儲在可通過 Web 訪問的目錄中。因此,您需要為 PHP 腳本添加一個條目。如下所示:

#
# ScriptAlias: This controls which directorIEs contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the clIEnt.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/apache2/CGI-bin/"
ScriptAlias /php/ "C:/PHP/"

您可能認為 C:/PHP 不是存儲 Web 站點腳本的好地方。這絕對是正確的;然而,您將告訴 apache 通過 PHP 解釋器處理所有以 .PHP 結尾的文件,而無需考慮這些文件的位置;換句話說,無需擔心這個問題。

接下來,您需要告訴 apache 以 .php 結尾的文件必須作為應用程序處理;尤其是,您希望為 PHP 文件分配一個類型,然後您就能夠指示 apache 以特定方式處理它們。在 ScriptAlias 條目下,添加以下條目:

#
# ScriptAlias: This controls which directorIEs contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the clIEnt.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/apache2/CGI-bin/"
ScriptAlias /php/ "C:/PHP/"
AddType application/x-httpd-php .PHP

現在您只需告訴 Apache 當它碰到這種新類型(鏈接到以 .php結尾的文件)時應該進行什麼操作即可。基本上,這僅涉及告訴 apache 運行什麼程序,以及將 PHP 腳本交給什麼程序;當然,這個神奇的程序就是您剛剛安裝的 PHP 解釋器。將此指令直接添加到剛才添加的兩個指令下方:

#
# ScriptAlias: This controls which directorIEs contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the clIEnt.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/apache2/CGI-bin/"
ScriptAlias /php/ "C:/PHP/"
AddType application/x-httpd-php .PHP
Action application/x-httpd-php "/php/PHP-CGI.exe"

請記住,apache 已經知道將 /php/ 翻譯為 C:/PHP/,因此這實際上將 PHP 應用程序類型分配給解釋器 C:/PHP/PHP-CGI.exe。當然,您可以通過浏覽文件系統中的目錄的方式驗證這些文件是否存在。

完成上述操作之後,重啟 apache,並確保您沒有犯錯誤。如果當您嘗試輸入 http://localhost 進行簡單的測試時一切正常,那麼您就成功了。

測試 PHP 安裝

要進行的關於 PHP 方面的工作已經不多了。首先,確保 PHP 腳本運行正常。再次打開文本編輯器,並輸入以下代碼:

<Html>
 <head><title>PHP Installation Test</title></head>
 <body>
  <?php PHPinfo(); ?>
 </body>
</Html>

將此文件作為 index.PHP 保存在您的 Web 站點的根目錄中:C:/Documents and Settings/Brett McLaughlin/My Documents/websites。當完成此操作後,應該看到如圖 8 所示的內容。

圖 8. 編輯一個示例 PHP 腳本

<u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載 

現在您能夠將此文件作為正常 URL 的一部分請求:http://localhost/index.PHP。打開您最喜歡的浏覽器,查看得到的內容。它應該類似圖 9。

圖 9. PHPinfo() 命令輸出有用的調試信息

<u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載 

很明顯,phpinfo() 命令為您提供了大量關於您的機器、PHP 解釋器以及開發環境的有用信息。而且,此過程也證明了 PHP 安裝正常。

允許 PHP 腳本作為 index 頁面

您可能希望為 apache 和 PHP 安裝最後添加一點小內容。在某些情況下,您可通過諸如 http://localhost/my-script-name.PHP 之類的 URL 訪問在上一部分看到的腳本。然而在其他情況下,您可能希望您的主頁是 PHP 腳本。如果您在整個站點中還使用了其他腳本元素,且不希望用戶必須輸入一個特定於 PHP 的擴展名,那麼此操作就非常有用。換句話說,您希望 .php 成為默認文件的有效擴展名,就像 .html 一樣。例如,名為 index.PHP 的文件會被默認加載,就像 index.Html 一樣。

要進行此更改 —— 是的,您猜到了 —— 請再次打開 apache 的 httpd.conf 文件。這次搜索 DirectoryIndex,您將看到類似如下的內容:

#
# DirectoryIndex: sets the file that apache will serve if a directory
# is requested.
#
# The index.Html.var file (a type-map) is used to deliver content-
# negotiated documents.  The MultiVIEws Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.html index.Html.var

將 index.PHP添加到此文件清單中:

#
# DirectoryIndex: sets the file that apache will serve if a directory
# is requested.
#
# The index.Html.var file (a type-map) is used to deliver content-
# negotiated documents.  The MultiVIEws Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.html index.Html.var index.PHP

現在重啟 apache,並輸入 URL http://localhost/z(不指定 PHP 文件)。您看到的內容應該和您上次輸入 My First Page 的 URL 時看到的內容完全相同。吃驚嗎?您有一個名為 index.PHP 的文件,那麼這是怎麼回事呢?哦,問題是 apache 以指定的順序查找這些文件。在此例中,它找到了 index.Html ,因此它在找到 index.PHP 之前就停止了查找。

您可以通過調整 httpd.conf 中的順序的方式解決此問題,但是這會干擾正常的 Web 服務器行為。和此(過激的)步驟相反,您只需將您的 Web 站點根目錄中的 index.Html 重命名為 index.old 即可。然後返回並重載浏覽器(或重新輸入 http://localhost/)。現在 apache 找不到 index.html,它就尋找 index.Html.var (此文件不存在),最後尋找 index.PHP。它加載了此文件,您應該看到圖 9 中的內容。

自我陶醉一下吧。您現在擁有了一個工作正常、功能完善、適當定制的 apache 和 PHP 開發環境。

安裝 MySQL

 下載 MySQL

進行到這一步,下載和安裝軟件應該屬於常規任務了。要安裝 MySQL,在線訪問 MySQL Web 站點。 您將在頂部看到幾個選項卡;單擊 Developer Zone 選項卡來打開其下的子菜單。單擊 Downloads。向下滾動並選擇 MySQL 4.1 GA release(參見圖 10)。

圖 10. 下載 MySQL 二進制版本 
 <u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載

此鏈接會帶您進入 MySQL 4.1 頁面,然後您可以選擇面向您的平台的下載。因為在本教程中使用的是 Windows,所以請向下滾動到 Windows 下載,然後尋找 Windows (x86)。尋找靠近此行的 Pick a mirror 鏈接(確保不要選擇 Windows Essentials 或 Without installer)。系統會提示您提供一些信息;如果您有時間,請填寫此表格,因為它將有助於 MySQL 組織。總之,您隨後只需選擇一個鏡像站點並開始下載即可。當我寫作本文時,此文件的名稱是 MySQL-4.1.11-win32.zip。下載了此文件之後,就可以開始安裝了。

安裝 MySQL

打開下載的 zip 文件,解壓縮安裝程序(setup.exe)。雙擊擴展的安裝程序,安裝就會開始。首先需要選擇安裝類型:

Typical:安裝 MySQL 最常用的選項。基本上是讓 MySQL 為您做出選擇。

Complete:完全安裝。安裝 MySQL 的全部內容。

Custom:面向像我一樣有控制欲望的人,這將允許您調整每種可能的選項。
雖然我通常推薦 Custom 選項,但是設置開發環境還是選擇 Typical 選項比較好。在下一個屏幕中確認您的選擇,然後選擇 Install。在安裝過程中您可以休息一下。

接下來,可以登錄或創建一個新的 MySQL.com 帳戶。是注冊、登錄或跳過此步驟由您決定(我自己有一個帳戶)。完成此步之後,安裝操作就完成了。最後一個選項是立即啟動和配置 MySQL,您應該選擇此選項。

配置 MySQL 實例

安裝完成之後,MySQL 會啟動 MySQL Server Instance Configuration Wizard。(您可以通過 Start > Programs > MySQL > MySQL 4.1 > MySQL Server Instance Config Wizard訪問此程序。)選擇 Detailed Configuration 選項來開始使用向導。

服務器類型,選擇 Developer Machine;正如此向導所聲明的那樣,這是面向您在其中開發代碼、且必須運行幾個其他應用程序(例如 apache)的機器的正確選擇。數據庫,選擇 Multifunctional Database 選項(同樣,這是常見的選擇且能夠很好地工作,因為您將使用 MySQL 進行各種不同的操作)。

接下來,設置 InnoDB 表空間的目錄。如果您閱讀了這裡的小號字體部分,您將意識到只需單擊 Next 然後接受默認設置即可,這也是我推薦的操作。下一個屏幕提示您選擇連接數。您應該或者選擇 Decision Support (此選項假設約 20 個連接),或者選擇 Manual Setting ,然後選擇一個較低的數字。因為只有我一個人使用我的機器,且我只將 MySQL 用於 Web 應用程序,所以我選擇 Manual,並將並發連接數設為 10(此數字可能仍然高於我真正需要的數字)。我建議您考慮類似的設置。

您應該選擇啟用 Enable TCP/IP Networking 選項,默認端口 3306 就可以了。您還應該接受 Standard Character Set,除非您有充分的理由使用 UTF8(我的應用程序中不使用其他語言,但是如果您的應用程序中使用其他語言,請選擇 UTF8)。

下一個屏幕有一些重要的選項。首先,將 MySQL 安裝為 Windows 服務,並確保選中了 Launch the MySQL Server automatically 選項。這將確保當機器重啟時,MySQL 也會啟動;apache 已經進行了相同的設置,因此這麼做是合理的。另外,選中 Include Bin Directory 選項;這確保您能夠運行 MySQL 工具,而無需浪費時間來手動處理 PATH。

下一步是設置根密碼;請選擇一個密碼。我強烈建議您不要 創建匿名帳戶。這不是個好主意,既然這樣,在開發環境中最好不要設置匿名帳戶。

最後,選擇 Execute 來使對數據庫進行的所有這些設置生效。此處理完成之後,可以選擇 Finish 退出實例配置。現在,數據庫已經准備好可以使用了。

創建一個新數據庫

現在,需要在 MySQL 安裝上創建一個新數據庫。因為已經在 PATH 中設置了 MySQL 腳本,所以這很容易。打開一個命令提示符窗口(選擇 Start > Run 並在 Run 對話框中輸入 cmd),然後輸入以下命令:

MySQLadmin -u root -p create DB-DEVEL

輸入您選擇的密碼,並單擊 Enter。除非出現問題,否則不會從 MySQL 獲得任何反饋(這有點令人困擾)。在您繼續檢查之前,先來了解一下您剛才所進行的操作。

mysqladmin 是 MySQL 的管理工具。它位於 MySQL 的 bin/ 目錄中,此目錄已被配置向導添加到系統的 PATH 中,因此可以直接訪問此程序(就像我們在本文中所做的一樣)。

-u root 告訴 MySQL 作為根用戶登錄,您之前應該已經為根用戶設置了密碼。如果不使用此選項,MySQL 會嘗試作為 ODBC@localhost 用戶登錄;而這是沒有用的,因為此用戶並不存在!

-p 指示 MySQL 提示您輸入密碼。您可以在命令行中輸入密碼,但是此密碼不是隱藏的 (******),這不是一個好做法。您應該盡量為所有的 MySQL 交互使用 -p 標記。

create DB-DEVEL 告訴命令應該進行的操作;在本例中,它指示 MySQL 創建一個名為 DB-DEVEL 的新數據庫。我個人給我的數據庫名稱加上 "DB" 作為前綴,用來提醒我這是一個數據庫,而 DEVEL 指的是開發 (development);如果您願意,可以使用其他數據庫名稱。
因為 MySQL 不會提供太多的反饋,所以應該確保此命令確實有效。要啟動 MySQL 監視器,請在命令行中輸入 MySQL -u root -p。輸入根密碼後,將看到類似以下的內容:

C:\>MySQL -u root -p
Enter passWord: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.11-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
MySQL>

您將在這裡進行大多數數據庫操作 —— 從創建表到輸入數據。要確保您剛才創建的數據庫確實 被創建了,請輸入 use DB-DEVEL。 use 告訴 MySQL 切換到指定的數據庫。如果一切正常,您將看到以下輸出:

C:\>MySQL -u root -p
Enter passWord: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.11-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
MySQL> use DB-DEVEL
Database changed
MySQL>

如果此數據庫不存在,您會看到以下錯誤信息:ERROR 1049 (42000): Unknown database 'DB-DEVEL'。請返回到之前的操作步驟並再次嘗試,直到您創建了數據庫為止。然後重新回到本步驟,繼續進行。一旦您驗證了數據庫確實存在,就可以輸入 exit 來離開 MySQL 監視器。

添加表

創建了數據庫之後,就可以向其中添加幾個簡單的表和數據,以便在 PHP 測試中使用。創建一個新的文本文件,並將其命名為 create-sample-tables.sql。此文件的內容應該類似以下內容:

CREATE TABLE users (
  user_id INT  NOT NULL,
  username TEXT(8) NOT NULL,
  firstname TEXT(35) NOT NULL,
  lastname TEXT(50) NOT NULL,
  PRIMARY KEY (user_id)
);
CREATE TABLE user_websites (
  website_id INT NOT NULL,
  user_id  INT NOT NULL,
  website_url TEXT NOT NULL,
  PRIMARY KEY (website_id)
);

這會創建一個名為 users 的表和一個名為 user_websites 的表。其余部分的含義是顯而易見的。您現在可通過如下方式將此文件饋送到 MySQL:

C:\>MySQL -u root -p DB-DEVEL < create-sample-tables.sql
Enter passWord: ********

此命令的前一部分應該是您所熟悉的內容。我將 DB-DEVEL 添加到末尾,這會告訴 MySQL 啟動並連接到指定的數據庫(一個登錄的快捷方式,然後輸入 use DB-DEVEL;)。然後,< 符號告訴 MySQL 接受您剛才創建的 SQL 文件作為輸入。不幸的是,MySQL 仍然不會提供任何反饋(除非有錯誤發生)。在任何情況下,您都可將沉默視作通過。

同樣,請檢查您的工作。通過 mysql -u root -p DB-DEVEL 登錄到 MySQL 監視器,然後輸入 describe users;。您應該會看到一個對所創建的表的文本描述:

MySQL> describe users;
+-----------+----------+------+-----+---------+-------+
| FIEld     | Type     | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| user_id   | int(11)  |      | PRI | 0       |       |
| username  | tinytext |      |     |         |       |
| firstname | tinytext |      |     |         |       |
| lastname  | tinytext |      |     |         |       |
+-----------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)

您可以對 user_websites 表進行相同的操作:

MySQL> describe user_websites;
+-------------+---------+------+-----+---------+-------+
| FIEld       | Type    | Null | Key | Default | Extra |
+-------------+---------+------+-----+---------+-------+
| website_id  | int(11) |      | PRI | 0       |       |
| user_id     | int(11) |      |     | 0       |       |
| website_url | text    |      |     |         |       |
+-------------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)

最後,在這裡添加一些簡單的數據。創建以下文件,並將其命名為 insert-sample-data.sql:

INSERT INTO users VALUES (1, 'bmclaugh', 'Brett', 'McLaughlin');
INSERT INTO users VALUES (2, 'gqg10012', 'Gary', 'Greathouse');
INSERT INTO users VALUES (3, 'reckstei', 'Bob', 'Eckstein');
INSERT INTO users VALUES (4, 'mikeh', 'Mike', 'Hendrickson');
INSERT INTO user_websites VALUES (1, 1, 'http://www.newInstance.com');
INSERT INTO user_websites VALUES (2, 1, 'http://www.oreilly.com');
INSERT INTO user_websites VALUES (3, 4, 'http://www.oreilly.com');

同樣,這也非常直接。通過以下命令將此腳本饋送到 MySQL:

C:\>MySQL -u root -p DB-DEVEL < insert-sample-data.sql
Enter passWord: ********

現在,登錄到數據庫來確認這些數據位於正確的位置:

C:\>MySQL -u root -p DB-DEVEL
Enter passWord: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16 to server version: 4.1.11-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

MySQL> select * from users;
+---------+----------+-----------+-------------+
| user_id | username | firstname | lastname    |
+---------+----------+-----------+-------------+
|       1 | bmclaugh | Brett     | McLaughlin  |
|       2 | gqg10012 | Gary      | Greathouse  |
|       3 | reckstei | Bob       | Eckstein    |
|       4 | mikeh    | Mike      | Hendrickson |
+---------+----------+-----------+-------------+
4 rows in set (0.00 sec)

可以對 user_websites 表執行相同的檢查,並應該得到類似的結果。設置好一些示例數據之後,現在需要做的全部工作就是編寫一些 PHP 代碼來將數據庫和您的 Web 站點連接起來。

將 MySQL 支持添加到 PHP

在編寫任何代碼之前,您必須告訴 PHP 加載 MySQL 所需的庫。可通過您在 在 Windows 上安裝 PHP 部分中設置的 PHP.ini 文件實現此操作。打開此文件,並查找以下代碼行:

;extension=PHP_MySQL.dll

此代碼行告訴 PHP 加載 MySQL DLL(動態鏈接庫),這會允許您的 PHP 腳本使用 MySQL 命令。然而,此代碼行前面的 ; 是注釋指示符;請移除它以便使此代碼行類似以下內容:

extension=PHP_MySQL.dll

現在,進入命令行,並嘗試通過 -i 切換符運行 PHP 解釋器,它會告訴您加載了哪些模塊:

C:\>c:\php\PHP -i

您可能會在這裡得到類似以下內容的錯誤信息:

PHP Startup: Unable to load dynamic library 'C:/foo/ext/PHP_MySQL.dll' -
The specifIEd module could not be found.

注意:為了便於顯示,以上消息可能以多行的形式顯示。

別擔心。這沒問題。PHP 現在正在搜索 MySQL 庫,但是不知道如何找到它們。請再次打開 PHP.ini 並搜索 extension_dir。您需要使此條目類似如下內容:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/PHP/ext/"

這會告訴 PHP 在 C:/PHP/ext/ 目錄中搜索 php_MySQL.dll 模塊;如果查看此目錄,就會看到此文件。保存 php.ini 並嘗試再次運行 PHP -i 。如果一切均被正確地設置了,那麼您將得到關於解釋器的大量信息。這就是所想要的內容。您甚至可以向上滾動來查看一些 MySQL 配置數據,如圖 11 所示。

圖 11. PHP 顯示所加載的模塊 
 <u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載

現在,您就可以編寫一些 PHP 代碼了。

在 PHP 腳本中連接到 MySQL

您已經設置好了 apache、運行了 PHP、安裝了 MySQL,並且已經將 MySQL 擴展加載到了 PHP 中,現在您終於可以編寫 PHP 代碼了。關閉所有這些配置文件,並打開一個新的空文件。輸入以下文本:

<Html>
 <head><title>MySQL Connection Test</title></head>
 <body>
<?PHP
$conn = @MySQL_connect("localhost", "root", "your-passWord");
if (!$conn)
  dIE("<p>Error connecting to MySQL: <i>" . MySQL_error() . "</i></p>");
echo("<p>Connected to Database Successfully.</p>");
if (!@MySQL_select_db("DB-DEVEL", $conn))
  dIE("<p>Error selecting DB-DEVEL database: <i>" . MySQL_error() . "</i></p>");
echo("<p>Selected DB-DEVEL database successfully.</p>");
MySQL_close ($conn);
echo("<p>Disconnected</p>");
?>
 </body>
</Html>

如果您對編寫 PHP 代碼不是很熟悉的話,那麼這些內容對您來說太復雜了,但是它實際上非常簡單:

mysql_connect 試圖通過所提供的主機名、用戶名和密碼連接到一個 MySQL 數據庫。確保您使用真實的密碼來替換 your-passWord 。

dIE 生成錯誤消息,並停止進一步的 PHP 處理。它在 conn 變量出現錯誤時(即 MySQL_connect 不成功的情況)使用。

echo 的作用和它的含義一樣;它生成文本(在本例中,它生成 Html)。

MySQL_select_db 試圖通過您傳遞給它的連接對象(代表到數據庫的連接的 conn 對象)來切換到所提供的數據庫。

MySQL_close 哦,您可以自己猜出它的作用。

正如您所看到的,確保開發環境正常工作並不需要很多的代碼。將此腳本保存為 test-connect.php,放到和其他 Web 文件(例如 index.PHP)相同的目錄下,然後運行它。最後,在您的 Web 浏覽器中加載此文件:http://localhost/test-connect.PHP。您應該看到如圖 12 所示的內容。

圖 12. 成功的連接測試 
 <u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載

如果您的測試成功了,就祝賀一下自己吧!您已經安裝了 apache、PHP 和 MySQL,甚至有了一個到數據庫的有效連接。您就要大功告成了。剩下要做的只是連接到示例數據,並確保能夠正確檢索數據。

通過 PHP 從 MySQL 檢索數據

在結束之前,我希望向您快速介紹一下如何連接到 MySQL,並從數據庫中檢索行。我不會涉及細節問題(本文不是 PHP 教程),我只希望給您提供一個用於運行的示例腳本來確保一切正常。它也將是您開始編寫您自己的定制 PHP 代碼的一個很好的起點。將此文件保存為 list-users.PHP。

<Html>
 <head><title>Listing of Users in Database</title></head>
 <body>
<?PHP
$conn = @MySQL_connect("localhost", "root", "seth0723");
if (!$conn)
  dIE("<p>Error connecting to MySQL: <i>" . MySQL_error() . "</i></p>");
if (!@MySQL_select_db("DB-DEVEL", $conn))
  dIE("<p>Error selecting DB-DEVEL database: <i>" . MySQL_error() . "</i></p>");
?>
<table border="1">
 <tr><th>Username</th><th>Full Name</th><th>Website</th></tr>
<?PHP
$select = '   SELECT u.username, u.firstname, u.lastname, w.website_url';
$from   = '     FROM users u, user_websites w';
$where  = '    WHERE u.user_id = w.user_id';
$order  = ' ORDER BY u.lastname, u.firstname';

$users = @MySQL_query($select . $from . $where . $order);
if (!$users) {
  echo('</table>');
  die('<p>Error retrIEving users from database!<br />'.
      'Error: ' . MySQL_error() . '</p>');
}

while ($user = MySQL_fetch_array($users)) {
  $user_username = Htmlspecialchars($user['username']);
  $user_firstname = Htmlspecialchars($user['firstname']);
  $user_lastname = Htmlspecialchars($user['lastname']);
  $user_website = Htmlspecialchars($user['website_url']);

  echo("<tr>\n");
  echo("<td>$user_username</td>\n");
  echo("<td>$user_firstname $user_lastname</td>\n");
  echo("<td><a href=\"$user_website\">$user_website</a></td>\n");
  echo("</tr>\n");
 
}
?>
</table>
<?PHP
 MySQL_close ($conn);
?>
 </body>
</Html>

這個簡單的 PHP 頁面會連接到 MySQL 數據庫、切換到 DB-DEVEL 表,並拉出具有 Web 站點 URL 的所有用戶。它沒有浮華的界面,其格式看起來非常簡單,但是它說明了一點:通過 PHP 訪問 MySQL 數據非常容易。圖 13 顯示了此腳本的運行結果。

圖 13. 具有 Web 站點 URL 的用戶的 Html 清單 
 <u>Windows</u> XP下PHP+MySQL環境搭建_網頁教學網webjx.com轉載

好了!您的開發環境已經設置好可以使用了。

結束語

至此,您已經在 Windows XP 機器上設置好了一個完整的開發環境。無論您使用的是並非始終連接到 Internet 的膝上型電腦,還是一天使用 8 到 10 個小時的台式電腦,您都不需要僅僅為了測試簡單的 PHP 腳本而連接到您的 ISP。借助於最新版本的 apache Web 服務器、PHP 5 和 MySQL,您盡可以進行編程和部署 —— 這些操作全都可以在您的本地機器上實現。事實上,這就是我的膝上型電腦的設置 —— 而我通過本教程又設置了一台新的膝上型電腦。

現在您已經熟悉了配置文件,可能還希望對您的個人設置進行一些修改。您可能希望創建您自己的 apache 虛擬目錄、運行多個版本的 PHP 來實現向後兼容性、或者甚至生成幾個 MySQL 實例來分解您的數據。無論您使用什麼特定配置,我都希望您能意識到您無需為構建和測試您的應用程序而在 ISP 上浪費精力,您當然也無需僅僅為了此目的而購買和維護一個 Linux 服務器。雖然 Linux、Mac OS X 和大型操作系統(例如 Solaris)有諸多很好的用途,但是僅為了一些簡單的腳本應用程序而將它們用於分級機器顯然不屬於這些用途。

無論您如何使用本教程,也無論您連接到 Internet 與否,我都希望本教程能夠使您的開發水平更上一層樓。享受其中的樂趣吧!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved