明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

PHP/MySQL3日通-首天(一)

[摘要]本文介紹堪稱Web數(shù)據(jù)庫黃金組合的PHP/MySQL如何構(gòu)筑一個網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用的方法,PHP是一個類似微軟ASP的服務(wù)器端的嵌入式超文本處理語言,是建立動態(tài)網(wǎng)站的強大工具。而MySQL是一個輕型SQL數(shù)據(jù)庫服務(wù)器,可運行在多種平臺上,包括Windows NT和Linux,它還有一個GPL版本,My...
本文介紹堪稱Web數(shù)據(jù)庫黃金組合的PHP/MySQL如何構(gòu)筑一個網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用的方法,PHP是一個類似微軟ASP的服務(wù)器端的嵌入式超文本處理語言,是建立動態(tài)網(wǎng)站的強大工具。而MySQL是一個輕型SQL數(shù)據(jù)庫服務(wù)器,可運行在多種平臺上,包括Windows NT和Linux,它還有一個GPL版本,MySQL被認(rèn)為是建立數(shù)據(jù)庫驅(qū)動的動態(tài)網(wǎng)站的最佳產(chǎn)品。PHP、MySQL和Apache是Linux平臺網(wǎng)站的最佳拍檔。該教程是一個3日課程,從安裝到應(yīng)用都有詳細描述。

一、PHP/MySQL簡介

  您應(yīng)該聽說過開放源代碼軟件(OSS),除非最近六到八個月來您一直住在火星上。這場運動有著巨大的沖擊力,已引起一些大公司的注意。象Oralce、Informix,還有多家公司都開始把他們的主力數(shù)據(jù)庫產(chǎn)品移植到OSS的產(chǎn)物之一 - Linux操作系統(tǒng)上。

  如果您有足夠的技術(shù)力量,擁有一個復(fù)雜龐大的關(guān)系數(shù)據(jù)庫系統(tǒng)(RDBMS)則是如虎添翼。但是也許您對數(shù)據(jù)庫還剛剛?cè)腴T,您剛剛讀了Jay的文章,決定自己也來搞一個數(shù)據(jù)驅(qū)動的網(wǎng)站。可是您也許會發(fā)現(xiàn)您缺乏必要的資源來運行ASP服務(wù)器或昂貴的數(shù)據(jù)庫系統(tǒng)(您也不需要這些東西)。您需要一些免費的、支持Unix的東西。

  那么我建議您使用PHP和MySQL。這兩樣?xùn)|西加在一起,對于開發(fā)數(shù)據(jù)驅(qū)動的網(wǎng)站這項工作而言,真是最佳組合。其實用不著我多費唇舌解釋。一項由Netcraft組織的非官方調(diào)查顯示,應(yīng)用PHP的主機數(shù)目由1998年6月的7,500臺躍升至1999年3月的410,000臺。不錯吧?這兩種軟件的組合還在Webcon98大會上贏得了年度數(shù)據(jù)庫產(chǎn)品大獎,還得了一座漂亮的獎杯。

  MySQL是一個小巧靈瓏的數(shù)據(jù)庫服務(wù)器軟件,對于小型(當(dāng)然也不一定很。⿷(yīng)用系統(tǒng)是非常理想的。除了支持標(biāo)準(zhǔn)的ANSI SQL語句,它還支持多種平臺,而在Unix系統(tǒng)上該軟件支持多線程運行方式,從而能獲得相當(dāng)好的性能。對于不使用Unix的用戶,它可以在Windows NT系統(tǒng)上以系統(tǒng)服務(wù)方式運行,或者在Windows 95/98系統(tǒng)上以普通進程方式運行。

  PHP是一種服務(wù)器端解釋的腳本語言。如果你接觸過ASP的話,那么您對于在HTML頁面中嵌入代碼應(yīng)該是比較熟悉了。PHP代碼在服務(wù)器一端被解釋轉(zhuǎn)變成普通的HTML頁面內(nèi)容,送給瀏覽器一端。這種模式使得我們可以用它來完成相當(dāng)復(fù)雜的功能。

  除了免費這一點(當(dāng)然,MySQL也有一些使用許可方面的限制),PHP-MySQL的組合還可以跨平臺運行,這意味著您可以在Windows上開發(fā),然后在Unix平臺上運行 磽猓琍HP也能作為標(biāo)準(zhǔn)的CGI進程來運行,此時它是一個獨立的腳本解釋器,或者是Apache的一個嵌入模塊。

  如果您有興趣使用其他數(shù)據(jù)庫服務(wù)器的話,PHP也支持Informix、Oracle、Sybase、Solid和PostgreSQL ,以及通用的ODBC。

  PHP支持Internet開發(fā)的一些前沿技術(shù)。這些技術(shù)包括身份認(rèn)證、XML、動態(tài)圖象生成、WDDX、共享內(nèi)存,以及動態(tài)PDF文檔等等,不一而足。如果您還不滿意的話,PHP是很容易擴展的,所以只要您有編程能力,您盡可以自己大展身手一番。

  最后要說的是,兩種軟件都是大量程序員協(xié)同開發(fā)的,因此文檔及郵件列表等支持方式很多。程序錯誤的修正很快,而如果您要求加入新功能的話,總會有人考慮您的要求,并且在可行性足夠高的前提下加以實現(xiàn)。

  說得夠多了!我們來看看這篇教程里都有些什么內(nèi)容吧。

第一課講的是在Unix和Windows環(huán)境下安裝這兩個軟件。如果您不太關(guān)心這個問題(也許您是在ISP的服務(wù)器上開發(fā)),您可以直接跳到第一個示例程序,從那里開始您的奇妙之旅。

在第二課里,我們要學(xué)習(xí)一些更加復(fù)雜的腳本功能,比如循環(huán)、處理用戶輸入,以及與數(shù)據(jù)庫交換數(shù)據(jù)等等。

第三課要講的是確認(rèn)功能,以及如何使您的腳本程序清晰簡練。

  我們開始吧

二、安裝MySQL

  快點行動,拿到這些軟件包,仔細研究一下吧。這可不是件容易的事兒。你從獲取軟件包、編譯軟件包到安裝軟件包的過程中都有不少的選擇項。我們先從MySQL開始,因為有了它才能運行PHP。

  MySQL中央網(wǎng)站是http://www.mysql.com/。為了方便人們下載使用(這軟件還是比較大的),全球有許許多多的鏡像網(wǎng)站。為更有效地利用因特網(wǎng),請找一個就近的網(wǎng)站下載。

  在這時候你也會有多種選擇。如果你是發(fā)燒友的話,可以下載源代碼;否則,網(wǎng)上也有各種平臺上運行的預(yù)先編譯過的二進制文件可以直接下載。

  另外,MySQL還為Windows用戶準(zhǔn)備了一個共享軟件版本,它的版本號稍低一些。如果你想要最新的版本,得花錢買一個軟件許可。MySQL還提供了ODBC驅(qū)動程序,使前端應(yīng)用程序可以訪問MySQL數(shù)據(jù)庫。有關(guān)其他一些詳細信息在它的網(wǎng)站上都有得介紹,您可以去看看。

  預(yù)先編譯過的Unix版本和Windows版本都很簡單,只須解包即可使用,不需要做太多說明了。因此,我們來介紹一下源代碼的編譯。Windows用戶請記住,您需要運行mysqld程序,該程序是在mysql/bin目錄下。

  下載壓縮過的軟件包文件,放在一個目錄下。使用gzip和tar來解壓縮和解包。比較快的做法是使用下面這樣的命令:

gunzip $#@60; mysql-xxxx.tar.gz tar xvf -

  其中,xxxx是你自己任取的一個版本標(biāo)記。上面的命令將創(chuàng)建一個名為mysql-xxxx目錄,所有的源程序文件都在這個目錄下。通過執(zhí)行cd mysql-xxxx命令轉(zhuǎn)入該目錄,仔細閱讀其中的多個README文件INSTALL文件。在遇到某些問題時,這些文件可能會幫上大忙呢。

  MySQL帶有一些便利的配置腳本程序。只須簡單地鍵入./configure,您就可以讓這些程序為您完成很多工作。如果您需要明確指定要做的事情,可以使用./configure -help命令,它會給您列出你可以使用的選項。例如,如果您正在一臺內(nèi)存較少的機器上進行編譯,那么可以使用--with-low-memory選項。我喜歡把MySQL安裝在一個總目錄下,而不是安裝在機器上多個目錄下,所以我會指定安裝目錄,并指定-prefix選項。

  您還可以指定許多其他選項,象編譯過程中要略掉哪些部分、保留哪些部分等。我們不妨假定要全部安裝在服務(wù)器的/usr/local/mysql目錄下。這意味著我們將鍵入./configure -prefix=/usr/local/mysql命令。

  配置腳本程序運行時會檢查您的系統(tǒng),然后生成一些文件來保證編譯的順利進行。如果該腳本程序失敗,它也會顯示一些有用的錯誤信息告訴您失敗的原因。大家經(jīng)常會遇到腳本程序在尋找多線程庫文件時失敗。此時您應(yīng)當(dāng)檢查一下系統(tǒng)中是否已經(jīng)安裝了MIT-pthreads,如果沒有,那么請您安裝該軟件。Linux用戶則必須安裝LinuxThreads。這些庫文件對于MySQL的多線程運行模式(也就是運行它自己的多個版本〕是非常關(guān)鍵的。


[page_break]

  如果一切都順利進行的話,只須簡單鍵入make命令,然后就可以去泡杯咖啡了。MySQL是相當(dāng)復(fù)雜的程序,編譯起來得用一段時間。如果發(fā)現(xiàn)錯誤,可以檢查文檔,看看只否您漏掉了某些與您的操作系統(tǒng)有關(guān)的準(zhǔn)備工作。

  接下來,鍵入make install命令,所有必需的文件都會安裝到相應(yīng)的目錄。您差不多就可以開始使用了!如果您是MySQL新手,以前從未安裝過MySQL,那您得創(chuàng)建默認(rèn)的許可權(quán)限才能安裝,因此請鍵入...scripts/mysql_install_db來進行相應(yīng)的設(shè)置。

  就這樣。我們的準(zhǔn)備工作完成了。再下面所要做的就是在機器啟動時自動啟動數(shù)據(jù)庫,并在關(guān)機時自動關(guān)閉數(shù)據(jù)庫。是的,這項工作也有一個專門的腳本程序。mysql.server start命令可以啟動數(shù)據(jù)庫,而mysql.server stop可以關(guān)閉數(shù)據(jù)庫。實在是再簡單不過了。如果您想手動啟動數(shù)據(jù)庫(這樣就不用重啟機器了),你以進到安裝MySQL的最上層目錄(/usr/local/mysql)然后鍵入bin/safe_mysqld &命令。

  我們已經(jīng)完成了一半了。接下來是PHP部分。

三、安裝PHP

  好,看到這里時,希望您已經(jīng)把MySQL安裝好并運行起來了。那實在是太有意思了!下面是PHP...這個過程要容易一些,不過那些大量的選項還是使人眼花繚亂。當(dāng)然,您大可不必驚慌。您隨時可以重頭再來,重新編譯PHP,根據(jù)需要來加入或去掉某個選項。

  PHP的老家在http://www.php.net/。這個網(wǎng)站信息量極大,從開發(fā)項目內(nèi)容到軟件錯誤報告都有。和MySQL一樣,您可以選一個離您最近的鏡像網(wǎng)站下載。很顯然,您得到網(wǎng)站的Downloads部分去下載PHP。

  這里您的選擇不是很多。有一些預(yù)選編譯好的二進制文件,但那都是實驗性的。如果您不是在Windows平臺上,那就下載源代碼,自己編譯一下吧。

  但是我們還是先談?wù)刉indows。在使用PHP時,一般的作法是在Windows系統(tǒng)上開發(fā),然后在Unix服務(wù)器上運行。您最終可能也會選擇這種方式,這就需要您對兩種平臺下的安裝都很熟悉才行。

  下載Windows二進制文件后,您可以用您喜歡的任何一種ZIP解壓縮程序,把軟件包中的文件解壓到C盤的php3目錄下。軟件包中的README文件對安裝過程中的細節(jié)作了部分說明,但是我們在這里再對這個文件中的關(guān)鍵內(nèi)容做個讀者文摘:如果您不想把PHP安裝在C:\php3目錄,而是別的目錄,那么您得編輯解壓縮出來的文件中那個.inf文件。

  在php3目錄中,您會發(fā)現(xiàn)很多.dll文件。把所有文件名不是以php_開頭的那些.dll文件都移到\windows\system目錄下。然后,把php.ini-dist文件改一下名,改成php3.ini,并把它移到\windows目錄下。如果您打開這個文件,會發(fā)現(xiàn)里面有很多有趣的東西可以改。現(xiàn)在,把含有:

extension=php3_mysql.dll


  內(nèi)容的那一行的注釋去掉。

  如果您使用的是Win32平臺上的Apache服務(wù)器,那么請設(shè)置Apache,使其能夠識別并解釋PHP文件。您需要在http.conf文件或是srm.conf文件(具體是哪一個文件取決于您使用的Apache軟件的版本)中加入下一行:

  Action application/x-httpd-php3 "php3/php.exe"  AddType application/x-httpd-php3 .php3

  或者,如果您使用的是IIS,那么請用鼠標(biāo)右鍵單擊php_iis_reg.inf文件,并選擇“安裝”。您得重新啟動系統(tǒng),才能使剛才所做的改動生效。

  OK,說完了Windows,再來說說Unix。當(dāng)然,我們要從源代碼開始編譯。與MySQL相似,把源文件下載、解包。PHP也同樣包含一個配置腳本程序,可是您不能完全使用默認(rèn)設(shè)置。運行./configure -help more命令,可以逐頁地觀看有哪些新的、有趣的選項。您必須選擇是把PHP編譯成外部CGI程序還是Apache內(nèi)嵌模塊。如果您正在使用Apache Web服務(wù)器,并且您可以對它進行重新編譯的話,請選擇內(nèi)嵌模塊方式,這種方式運行更快,使用也更簡便。否則,您可以選CGI方式。另外,您還得指定將對MySQL的支持部分編譯進去。

  現(xiàn)在我們假定要以內(nèi)嵌模塊方式編譯,并帶有MySQL支持部分。如果隨后您需要增加其他選項或庫文件的話,可以在以后再加進去。鍵入下面的命令:

./configure -with-apache=/path/to/apache/dir -with-mysql=/usr/local/mysql

  如果您打算以外部CGI程序方式來編譯的話,請去掉-with-apache選項。配置程序運行起來后,會創(chuàng)建相應(yīng)的系統(tǒng)文件。接下來簡單地執(zhí)行make命令就行了。

  又可以喝一杯咖啡了。如果您在此時感到坐立不安的話,不必擔(dān)心。每個人在初次安裝PHP的時候都有一點近不及待的感覺。再多喝點咖啡就是了。

  如果您選擇CGI程序方式來編譯,那么現(xiàn)在可以就可以使用了。只須把產(chǎn)生的可執(zhí)行文件復(fù)制到CGI程序目錄下就行了。如果您使用Apache內(nèi)嵌模塊方式來編譯,要再執(zhí)行一下make install命令,把有關(guān)文件復(fù)制到Apache目錄下。在該目錄下,您可以按照Apache的文檔說明,向其中加入PHP模塊,并重新編譯Apache。

  現(xiàn)在您得告訴Web服務(wù)器如何通過PHP程序來處理頁面內(nèi)容。如果您使用的不是Apache,那您需要查閱Web服務(wù)器軟件的文檔,看看如何讓它處理后綴是.php3的文件。Apache1.3.x版本的用戶僅須在httpd.conf或srm.conf文件中加入:AddType application/x-httpd-php3.php3。如果您使用的是CGI程序方式,那您在AddType前面還得加入下面內(nèi)容:

Action application/x-httpd-php3 "php3/php.exe

就是這樣。您的運氣還不那么差,現(xiàn)在MySQL也運行起來了,PHP也工作正常了。

  既然我們已經(jīng)進行了這么多,下面我們可以實際操練了。