一、PHP/MySQL簡介
您應該聽說過開放原始碼軟體(OSS),除非最近六到八個月來您一直住在火星上。這場運動有著巨大的衝擊力,已引起一些大公司的注意。象Oralce、Informix,還有多家公司都開始把他們的主力資料庫產品移植到OSS的產物之一 - Linux作業系統上。
如果您有足夠的技術力量,擁有一個複雜龐大的關係資料庫系統(RDBMS)則是如虎添翼。但也許您對資料庫還剛入門,您剛剛讀了Jay的文章,決定自己也來搞一個數據驅動的網站。可是您或許會發現您缺乏必要的資源來運作ASP伺服器或昂貴的資料庫系統(您也不需要這些東西)。您需要一些免費的、支持Unix的東西。
那麼我建議您使用PHP和MySQL。這兩樣東西加在一起,對於開發數據驅動的網站這項工作而言,真是最佳組合。其實不著我多費唇舌解釋。一項由Netcraft組織的非官方調查顯示,應用PHP的主機數目由1998年6月的7,500台躍升至1999年3月的41萬台。不錯吧?這兩種軟體的組合也在Webcon98大會上贏得了年度資料庫產品大獎,還得了一座漂亮的獎盃。
MySQL是一個小巧靈瓏的資料庫伺服器軟體,對於小型(當然也不一定很小)應用系統是非常理想的。除了支援標準的ANSI SQL語句,它還支援多種平台,而在Unix系統上該軟體支援多執行緒運行方式,從而獲得相當好的效能。對於不使用Unix的用戶,它可以在Windows NT系統上以系統服務方式運行,或在Windows 95/98系統上以普通進程方式運行。
PHP是一種伺服器端解釋的腳本語言。如果你接觸過ASP的話,那麼您對於在HTML頁面中嵌入程式碼應該是比較熟悉了。 PHP程式碼在伺服器一端被解釋轉變成普通的HTML頁面內容,送給瀏覽器一端。這種模式使得我們可以用它來完成相當複雜的功能。
除了免費這一點(當然,MySQL也有一些使用許可方面的限制),PHP-MySQL的組合還可以跨平台運行,這意味著您可以在Windows上開發,然後在Unix平台上運行。另外,PHP也能作為標準的CGI進程來運行,此時它是一個獨立的腳本解釋器,或是Apache的嵌入模組。
如果您有興趣使用其他資料庫伺服器的話,PHP也支援Informix、Oracle、Sybase、Solid和PostgreSQL ,以及通用的ODBC。
PHP支援Internet開發的一些尖端技術。這些技術包括身份認證、XML、動態圖像生成、WDDX、共享內存,以及動態PDF文件等等,不一而足。如果您還不滿意的話,PHP是很容易擴展的,所以只要您有程式設計能力,您就盡可能大展身手一番。
最後要說的是,兩種軟體都是大量程式設計師協同開發的,因此文件及郵件清單等支援方式很多。程式錯誤的修正很快,而如果您要求加入新功能的話,總會有人考慮您的要求,並且在可行性足夠高的前提下加以實現。
說得夠多了!我們來看看這篇教學裡面都有些什麼內容吧。
第一課講的是在Unix和Windows環境下安裝這兩個軟體。如果您不太關心這個問題(也許您是在ISP的伺服器上開發),您可以直接跳到第一個範例程序,從那裡開始您的奇妙之旅。
在第二課裡,我們要學習一些更複雜的腳本功能,像是循環、處理使用者輸入,以及與資料庫交換資料等等。
第三課要講的是確認功能,以及如何讓您的腳本程序清晰簡練。
我們開始吧。 >>
二、安裝MySQL
快點行動,拿到這些軟體包,仔細研究一下吧。這可不是件容易的事兒。你從取得軟體包、編譯軟體包到安裝軟體包的過程中都有不少的選擇項目。我們先從MySQL開始,因為有了它才能運行PHP。
MySQL中央網站是http://www.mysql.com/。為了方便人們下載使用(這軟體還是比較大的),全球有許多的鏡像網站。為更有效地利用因特網,請找一個就近的網站下載。
在這時候你也會有多種選擇。如果你是發燒友的話,可以下載原始碼;否則,網路上也有各種平台上執行的預先編譯過的二進位檔案可以直接下載。
另外,MySQL也為Windows使用者準備了一個共享軟體版本,它的版本號碼稍低一些。如果你想要最新的版本,得花錢買軟體授權。 MySQL還提供了ODBC驅動程序,使前端應用程式可以存取MySQL資料庫。有關其他一些詳細資訊在它的網站上都有得介紹,您可以去看看。
預先編譯過的Unix版本和Windows版本都很簡單,只須解包即可使用,不需要做太多說明了。因此,我們來介紹一下原始碼的編譯。 Windows使用者請記住,您需要執行mysqld程序,該程序是在mysql/bin目錄下。
下載壓縮過的軟體包文件,放在一個目錄下。使用gzip和tar來解壓縮和解包。比較快的做法是用下面這樣的指令:
gunzip
其中,xxxx是你自己任取的一個版本標記。上面的指令將會建立一個名為mysql-xxxx目錄,所有的原始程式檔案都在這個目錄下。透過執行cd mysql-xxxx指令轉入該目錄,仔細閱讀其中的多個README檔INSTALL檔。在遇到某些問題時,這些文件可能會幫上大忙呢。
MySQL附帶一些便利的設定腳本程式。只須簡單地鍵入./configure,您就可以讓這些程式為您完成很多工作。如果您需要明確指定要做的事情,可以使用./configure -help命令,它會給您列出你可以使用的選項。例如,如果您正在一台記憶體較少的機器上進行編譯,那麼可以使用--with-low-memory選項。我喜歡把MySQL安裝在一個總目錄下,而不是安裝在機器上多個目錄下,所以我會指定安裝目錄,並指定-prefix選項。
您也可以指定許多其他選項,象編譯過程中要略掉哪些部分、保留哪些部分等。我們不妨假定要全部安裝在伺服器的/usr/local/mysql目錄下。這意味著我們將鍵入./configure -prefix=/usr/local/mysql命令。
設定腳本程式在執行階段會檢查您的系統,然後產生一些檔案來確保編譯的順利進行。如果該腳本程式失敗,它也會顯示一些有用的錯誤訊息告訴您失敗的原因。大家常常會遇到腳本程式在尋找多執行緒庫檔案時失敗。此時您應檢查一下系統中是否已經安裝了MIT-pthreads,如果沒有,那麼請您安裝軟體。 Linux使用者則必須安裝LinuxThreads。這些函式庫檔案對於MySQL的多執行緒運作模式(也就是運行它自己的多個版本〕是非常關鍵的。
如果一切都順利進行的話,只須簡單鍵入make命令,然後就可以去泡杯咖啡了。 install指令,所有必要的檔案都會安裝到對應的目錄。 ..scripts/mysql_install_db來進行對應的設定。工作也有一個專門的腳本程式。進到安裝MySQL的最上層目錄(/usr/local/mysql)然後鍵入bin/safe_mysqld &指令。看到這裡時,希望您已經把MySQL安裝好並運行起來了。可不必驚慌。專案內容到軟體錯誤報告都有。編譯好的二進位文件,但那都是實驗性的。 但是我們還是先談談Windows。在使用PHP時,一般的做法是在Windows系統上開發,然後在Unix伺服器上運作。您最終可能也會選擇這種方式,這需要您對兩種平台下的安裝都很熟悉才行。
下載Windows二進位檔案後,您可以用您喜歡的任何一種ZIP解壓縮程序,把軟體包中的檔案解壓縮到C碟的php3目錄下。軟體包中的README檔案對安裝過程中的細節作了部分說明,但是我們在這裡再對這個檔案中的關鍵內容做個讀者文摘:如果您不想把PHP安裝在C:php3目錄,而是別的目錄,那麼您得編輯解壓縮出來的檔案中那個.inf檔。
在php3目錄中,您會發現很多.dll檔案。把所有檔名不是以php_開頭的那些.dll檔都移到windowssystem目錄下。然後,把php.ini-dist檔改名,改成php3.ini,把它移到windows目錄下。如果您打開這個文件,您會發現裡面有很多有趣的東西可以改變。現在,把含有:
extension=php3_mysql.dll
內容的那一行的註解去掉。
如果您使用的是Win32平台上的Apache伺服器,那麼請設定Apache,使其能夠識別並解釋PHP檔案。您需要在http.conf檔案或是srm.conf檔案(具體是哪一個檔案取決於您使用的Apache軟體的版本)中加入下一行:
Action application/x-httpd-php3 "php3/php.exe "
AddType application/x-httpd-php3 .php3
或者,如果您使用的是IIS,那麼請用滑鼠右鍵點選php_iis_reg.inf檔案,並選擇「安裝」。您得重新啟動系統,才能使剛才所做的改變生效。
OK,說完了Windows,再來說Unix。當然,我們要從原始碼開始編譯。與MySQL相似,把原始檔下載解包。 PHP也同樣包含一個配置腳本程序,可是您無法完全使用預設設定。執行./configure -help | more指令,可以逐頁觀看有哪些新的、有趣的選項。您必須選擇是把PHP編譯成外部CGI程式還是Apache內嵌模組。如果您正在使用Apache Web伺服器,並且可以對它進行重新編譯的話,請選擇內嵌模組方式,這種方式運行更快,使用也更簡單。否則,您可以選CGI方式。另外,您還得指定將對MySQL的支援部分編譯進去。
現在我們假定要以內嵌模組方式編譯,並且有MySQL支援部分。如果隨後您需要增加其他選項或庫檔案的話,可以在以後再加進去。鍵入下面的命令:
./configure -with-apache=/path/to/apache/dir -with-mysql=/usr/local/mysql
如果您打算以外部CGI程式方式來編譯的話,請去掉-with-apache選項。配置程式運行起來後,會建立對應的系統檔案。接下來簡單執行make指令就行了。
又可以喝一杯咖啡了。如果您在此時感到坐立不安的話,不必擔心。每個人在初次安裝PHP的時候都有一點近不及待的感覺。再多喝點咖啡就是了。
如果您選擇CGI程式方式來編譯,現在可以就可以使用了。只須把產生的可執行檔複製到CGI程式目錄下就行了。如果您使用Apache內嵌模組方式來編譯,要再執行一下make install指令,把有關檔複製到Apache目錄下。在該目錄下,您可以按照Apache的文檔說明,在其中加入PHP模組,並重新編譯Apache。
現在您得告訴Web伺服器如何透過PHP程式來處理頁面內容。如果您使用的不是Apache,那您需要查閱Web伺服器軟體的文檔,看看如何讓它處理後綴是.php3的文件。 Apache 1.3.x版本的使用者僅須在httpd.conf或srm.conf檔案中加入:AddType application/x-httpd-php3 .php3。如果您使用的是CGI程式方式,那麼您在AddType前面還得加入下面內容:
Action application/x-httpd-php3 "php3/php.exe
就是這樣。您的運氣還不那麼差,現在MySQL也運作起來了,PHP也運作正常了。下面我們可以實際操練了。系統之間可以說是千差萬別。一個腳本程式了。