摘要 在這篇文章中,我們會著手解決在構建一個數據庫驅動的網站的過程中將會遇到的問題。而我們只會使用兩個新的工具,PHP和MySQL。如果你的Web主機支持PHP/MySQL,那麼你會省掉不少麻煩。如果不是這樣,你也不用提心,我們也會學習如何在Unix和Windows下安裝相應程序。 這篇文章是提供給那些有可能學會服務器端程序開發的中高級的網頁設計者的。我們會認為我們的讀者熟悉HTML,所以我們在使用HTML時不會給出什麼解釋。另外,在有些地方我們可能還會用到少量的JavaScript,但是我們會盡量保證這即使對於未入門者也是足夠簡單的。 (2002-08-29 14:10:35) -------------------------------------------------------------------------------- By Wing, 出處:Linuxaid 原著:Kevin Yank 翻譯:處處 對於今天的Web來說,內容是最重要的。當你熟練掌握了HTML,而且也學到了一些JavaScript和DHTML的小決竅後,你現在也許可能設計一個漂亮的能讓人“一見鐘情”的網站了。下一步的工作是向網頁中添加一些真實的信息。許多站點不得不通過不斷地更新來成功地吸引回頭客。在傳統的網站建設中,這意味著不斷地更新眾多的HTML文件。 現在問題出來了,在更多的情況下,提供內容給站點的人並不是設計網頁的人。內容的提供者甚至還不知道HTML。那麼內容的提供者怎麼把內容添加到網站中去呢?不是所有的公司都有一個全職的Webmaster的,而且,讓一個Webmasters整天忙著將Word文件拷貝到HTML模板中也實在是一種浪費。 要唯護一個文本驅動的站點實在是件很痛苦的事。許多站點(是不是也包括你的站點?)被過時的信息所困擾。因為要保證信息的正常更新,你將不得不重寫數以百計的HTML文件。服務器端包含技術(SSI:HTML文件中,可以通過注釋行調用的命令或指針)也許能稍微減輕一些麻煩。但是你還是得面對數以百計的HTML文件,即使你只是想對你的站點作一些基本的變動。 解決這些頭疼問題是設計一個數據庫的站點。通過把你的站點的內容和設置完全分開,你可以對其中的一項進行處理,而不會對另一項發生影響。你將不再需要為每一條信息寫一個HTML頁面,你只需要為一類信息寫一個HTML頁面就足夠了。你再也不需要不斷地添加新的內容到你的頁面中去了,你現在所要做的只是建立一個簡單的信息管理系統,通過這個系統,作者可以不通過HTML就自行添加新的內容。 在這篇文章中,我們會著手解決在構建一個數據庫驅動的網站的過程中將會遇到的問題。而我們只會使用兩個新的工具,PHP和MySQL。如果你的Web主機支持PHP/MySQL,那麼你會省掉不少麻煩。如果不是這樣,你也不用提心,我們也會學習如何在Unix和Windows下安裝相應程序。 這篇文章是提供給那些有可能學會服務器端程序開發的中高級的網頁設計者的。我們會認為我們的讀者熟悉HTML,所以我們在使用HTML時不會給出什麼解釋。另外,在有些地方我們可能還會用到少量的JavaScript,但是我們會盡量保證這即使對於未入門者也是足夠簡單的。 在讀完這篇文章後,你應該已經領會了如何構建一個數據庫驅動的網站,你也應該基本上學會了PHP和SQL。最重要的是,你會學到如何開始構建你自己的數據庫驅動的網站。 第一章:安裝 前言 首先,感謝你閱讀這個教程!在下面的幾個月裡,我會帶著你實現從客戶端設計的HTML和JavaScript的世界中的超越。目前文本驅動的網站是如此的成功,而我們在這裡所要學的是如果解決維護這個難題。 在我們開始前,我們有必要先了解一下我們的工作所需要的兩個工具。在第一章內,我們會學習下載並安裝我們將會用到的兩個軟件包:PHP和MySQL。 PHP是一個服務器端的腳本語言。你可以將其理解成“插件”,通過這個“插件”,你的Web服務器可以在接到浏覽器的請求後不再僅僅發出一個文本的Web頁面。安裝了PHP後,你的Web服務器可以閱讀一種新的類型的文件(PHP腳本),通過這種文件,服務器可以在響應浏覽器的請求之前從數據庫中讀取實時的信息並將其加入到Web頁面中去。PHP是完全免費的,你可以自由地下載和使用。 要從一個數據庫中獲取信息,你首先需要擁有一個數據庫,這時我們就得提到MySQL了。MySQL是一個關系型數據庫管理系統(RDBMS)。它到底扮演了一個什麼樣的角色以及它是如果工作的,我們將在下面進行具體地講解。基本上,它是一個軟件包,這個軟件包可以很好地組織和管理大量的數據。MySQL也使得我們可以很容易地通過象PHP這樣的服務器端腳本語言來獲取信息。MySQL的for Unix-based平台(例如Linux)的非商業應用是免費的。 如果你足夠幸運的話,你的Web主機可能已經為你安裝了MySQL和PHP。如果是這種情況,有一些章節對你來說就沒有作用了,你可以直接跳到如果你的Web主機提供PHP和MySQL。 我們在本教程中所討論的大多數內容都適用於Windows-based或者Unix-based的服務器。但是根據你使用的服務器類型的不同,安裝過程會不一樣下一節講解如何在Windows-based的Web 服務器上安裝。再下面的一節講解如何在Linux(以及其他Unix-based的平台)下安裝。如果你不是特別對安裝過程感興趣,你只需要選擇閱讀適合你的那一節。 在Windows下的安裝 你可以到http://www.mysql.com/(或者在http://www.mysql.com/mirrors.html列出的鏡像站點之一)並選擇Downloads for Windows MySQL related software->Downloads->Register and download shareware version of MySQL-Win32,下載完文件後,將其解壓並運行其中的setup.exe。 當你安裝好之後,MySQL已經可以使用了(不包括我們不久將要執行的一些配置)。象你的Web服務一樣,MySQL也是一個可以在後台運行的服務,所以它可以在任何時候響應對信息的請求。這個服務程序,你可以在你安裝MySQL目錄下的bin子目錄下找到。如果你使用的是一個共享的版本,這個服務被稱之為mysqld-shareware.exe。在執行前,將其改名為 mysqld.exe。在MS-DOS提示符下,通過如下命令開啟這個服務: C:mysqlin> mysqld 要確保在Windows啟動時就開啟這個服務,你需要建立一個快捷方式,並將其加入到啟動程序組中。此外,你還可以通過這個命令作為Windows NT/2000的一個服務安裝: C:mysqlin> mysqld-nt --install 如果你在Windows NT/2000下運行共享版本有問題,你可以試試用單機模式運行這個服務: C:mysqlin> mysqld --standalone 下一步是安裝PHP。在寫這本教程的時候,PHP 4.0已經基本上成熟了。我自己就試過PHP 4.0-RC2,並沒有遇到任何問題。估計最終的穩定版很快將會發布(可能到時候我們這個教程還沒寫完),我建議你安裝最新的版本,這樣當正式版出來時你將不需要做任何變動。 PHP可以從http://www.php.net/ (或者在http://www.php.net/mirrors.php列出的鏡像站點之一)免費地下載。你需要“binaries for Win32”軟件包。你可以從以下地址獲得一個很好的PHP 3.0 for Windows的安裝指南:http://www.umesd.k12.or.us/php/win32install.html。 當PHP 4.0發布最終版時,你可能需要升級,但是4.0的安裝基本上與3.0一樣。你不會因為所選擇的版本不同而遇到什麼麻煩。 MySQL和PHP安裝好之後,你可以進入安裝配置了。 在Linux下的安裝 這一節所講述的是在RedHat Linux下安裝PHP和MySQL的過程。如果你使用的是Linux的不同版本,或者是使用的是其它Unix-based的操作系統,這些步驟也是非常相似的,即使不是完全相同的。 作為RedHat Linux的用戶,你可能會對下載和安裝PHP和MySQL的RPM發布感興趣。RPM的確是優秀的,預打包的軟件的安裝非常容易。不幸的是,它們也會限制你選擇怎麼配置軟件。因為這個原因,我認為使用PHP和MySQL的RPM版本所帶來的麻煩要比其實際價值來得更多。 因為有些RedHat Linux的默認配置會自動替你安裝PHP,所以第一步就是從你的系統刪除舊版本的PHP和MySQL。你需要以超級用戶的身份登錄來執行下面的命令。注意在下面的命令中,“%”表示shell的提示符,是不需要你輸入的。 % rpm -e mysql % rpm -e php 如果這兩個命令或其中一個顯示程序沒安裝,不要擔心。如果第二個命令成功執行(也就是說,不顯示任何信息),那就證明的確安裝了老版本的PHP,你必須完全刪除它。用你所習慣的文本編輯器打開Apache的配置文件(通常是/etc/httpd/conf/httpd.conf),尋找下面的這兩行內容。這兩行通常是分在文件的不同地方,所以如果這兩行不在一起,那實在沒什麼好擔心的。 LoadModule php3_module modules/libphp3.so AddModule mod_php3.c 這兩行是用來告訴Apache將PHP作為plug-in模塊裝入的。當你卸載了這個模塊,你還需要刪除這兩行以保證Apache正常工作。你也可以在這兩行的開頭加(#)使其成為注釋。 為了確保Apache還在正常工作,你現在必須在沒有PHP插件的情況下重啟它: % /etc/rc.d/init.d/httpd stop % /etc/rc.d/init.d/httpd start 一切安排妥當後,你可以准備下載安裝MySQL和PHP了。 在Linux下安裝MySQL MySQL for Linux的版本是免費的,你可以從http://www.mysql.com/(或http://www.mysql.com/downloads/mirrors.html中列出的鏡像站點之一)下載最後的穩定版(列在下載頁的“recommended”中)。你應該獲取“tarball source download”的版本,其文件名是mysql-version.tar.gz。 下載完文件後,你必須確保以超級用戶的身份登錄進行安裝,除非你只想在你自己的home目錄下安裝MySQL。開始解開下載的文件並進入剛建立的目錄中: % tar xfz mysql-version.tar.gz % cd mysql-version 下面你需要配置MySQL的安裝。除非你有絕對的把握,否則你需要指定安裝的目錄。我推薦使用 /usr/local/mysql: % ./configure --prefix=/usr/local/mysql 在對顯示器和顯示器配置進行過檢測之後,你最終將返回到命令提示符下。現在你可以編譯MySQL了: % make 在編譯後,你會重新返回到命令提示符下。現在你可以安裝你新編譯的程序了: % make install 現在MySQL已經安裝好了,但