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

先做點(diǎn)好事,轉(zhuǎn)點(diǎn)東東來,用PHP與MySQL構(gòu)建一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站(-)

[摘要]摘要  在這篇文章中,我們會(huì)著手解決在構(gòu)建一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站的過程中將會(huì)遇到的問題。而我們只會(huì)使用兩個(gè)新的工具,PHP和MySQL。如果你的Web主機(jī)支持PHP/MySQL,那么你會(huì)省掉不少麻煩。如果不是這樣,你也不用提心,我們也會(huì)學(xué)習(xí)如何在Unix和Windows下安裝相應(yīng)程序! ∵@篇文章是...
摘要

  在這篇文章中,我們會(huì)著手解決在構(gòu)建一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站的過程中將會(huì)遇到的問題。而我們只會(huì)使用兩個(gè)新的工具,PHP和MySQL。如果你的Web主機(jī)支持PHP/MySQL,那么你會(huì)省掉不少麻煩。如果不是這樣,你也不用提心,我們也會(huì)學(xué)習(xí)如何在Unix和Windows下安裝相應(yīng)程序。

  這篇文章是提供給那些有可能學(xué)會(huì)服務(wù)器端程序開發(fā)的中高級(jí)的網(wǎng)頁設(shè)計(jì)者的。我們會(huì)認(rèn)為我們的讀者熟悉HTML,所以我們在使用HTML時(shí)不會(huì)給出什么解釋。另外,在有些地方我們可能還會(huì)用到少量的JavaScript,但是我們會(huì)盡量保證這即使對(duì)于未入門者也是足夠簡單的。

(2002-08-29 14:10:35)

--------------------------------------------------------------------------------
By Wing, 出處:Linuxaid

原著:Kevin Yank 翻譯:處處
  對(duì)于今天的Web來說,內(nèi)容是最重要的。當(dāng)你熟練掌握了HTML,而且也學(xué)到了一些JavaScript和DHTML的小決竅后,你現(xiàn)在也許可能設(shè)計(jì)一個(gè)漂亮的能讓人“一見鐘情”的網(wǎng)站了。下一步的工作是向網(wǎng)頁中添加一些真實(shí)的信息。許多站點(diǎn)不得不通過不斷地更新來成功地吸引回頭客。在傳統(tǒng)的網(wǎng)站建設(shè)中,這意味著不斷地更新眾多的HTML文件。

  現(xiàn)在問題出來了,在更多的情況下,提供內(nèi)容給站點(diǎn)的人并不是設(shè)計(jì)網(wǎng)頁的人。內(nèi)容的提供者甚至還不知道HTML。那么內(nèi)容的提供者怎么把內(nèi)容添加到網(wǎng)站中去呢?不是所有的公司都有一個(gè)全職的Webmaster的,而且,讓一個(gè)Webmasters整天忙著將Word文件拷貝到HTML模板中也實(shí)在是一種浪費(fèi)。

  要唯護(hù)一個(gè)文本驅(qū)動(dòng)的站點(diǎn)實(shí)在是件很痛苦的事。許多站點(diǎn)(是不是也包括你的站點(diǎn)?)被過時(shí)的信息所困擾。因?yàn)橐WC信息的正常更新,你將不得不重寫數(shù)以百計(jì)的HTML文件。服務(wù)器端包含技術(shù)(SSI:HTML文件中,可以通過注釋行調(diào)用的命令或指針)也許能稍微減輕一些麻煩。但是你還是得面對(duì)數(shù)以百計(jì)的HTML文件,即使你只是想對(duì)你的站點(diǎn)作一些基本的變動(dòng)。

  解決這些頭疼問題是設(shè)計(jì)一個(gè)數(shù)據(jù)庫的站點(diǎn)。通過把你的站點(diǎn)的內(nèi)容和設(shè)置完全分開,你可以對(duì)其中的一項(xiàng)進(jìn)行處理,而不會(huì)對(duì)另一項(xiàng)發(fā)生影響。你將不再需要為每一條信息寫一個(gè)HTML頁面,你只需要為一類信息寫一個(gè)HTML頁面就足夠了。你再也不需要不斷地添加新的內(nèi)容到你的頁面中去了,你現(xiàn)在所要做的只是建立一個(gè)簡單的信息管理系統(tǒng),通過這個(gè)系統(tǒng),作者可以不通過HTML就自行添加新的內(nèi)容。

  在這篇文章中,我們會(huì)著手解決在構(gòu)建一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站的過程中將會(huì)遇到的問題。而我們只會(huì)使用兩個(gè)新的工具,PHP和MySQL。如果你的Web主機(jī)支持PHP/MySQL,那么你會(huì)省掉不少麻煩。如果不是這樣,你也不用提心,我們也會(huì)學(xué)習(xí)如何在Unix和Windows下安裝相應(yīng)程序。

  這篇文章是提供給那些有可能學(xué)會(huì)服務(wù)器端程序開發(fā)的中高級(jí)的網(wǎng)頁設(shè)計(jì)者的。我們會(huì)認(rèn)為我們的讀者熟悉HTML,所以我們在使用HTML時(shí)不會(huì)給出什么解釋。另外,在有些地方我們可能還會(huì)用到少量的JavaScript,但是我們會(huì)盡量保證這即使對(duì)于未入門者也是足夠簡單的。

  在讀完這篇文章后,你應(yīng)該已經(jīng)領(lǐng)會(huì)了如何構(gòu)建一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站,你也應(yīng)該基本上學(xué)會(huì)了PHP和SQL。最重要的是,你會(huì)學(xué)到如何開始構(gòu)建你自己的數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)站。

第一章:安裝

前言
  首先,感謝你閱讀這個(gè)教程!在下面的幾個(gè)月里,我會(huì)帶著你實(shí)現(xiàn)從客戶端設(shè)計(jì)的HTML和JavaScript的世界中的超越。目前文本驅(qū)動(dòng)的網(wǎng)站是如此的成功,而我們在這里所要學(xué)的是如果解決維護(hù)這個(gè)難題。

  在我們開始前,我們有必要先了解一下我們的工作所需要的兩個(gè)工具。在第一章內(nèi),我們會(huì)學(xué)習(xí)下載并安裝我們將會(huì)用到的兩個(gè)軟件包:PHP和MySQL。

  PHP是一個(gè)服務(wù)器端的腳本語言。你可以將其理解成“插件”,通過這個(gè)“插件”,你的Web服務(wù)器可以在接到瀏覽器的請(qǐng)求后不再僅僅發(fā)出一個(gè)文本的Web頁面。安裝了PHP后,你的Web服務(wù)器可以閱讀一種新的類型的文件(PHP腳本),通過這種文件,服務(wù)器可以在響應(yīng)瀏覽器的請(qǐng)求之前從數(shù)據(jù)庫中讀取實(shí)時(shí)的信息并將其加入到Web頁面中去。PHP是完全免費(fèi)的,你可以自由地下載和使用。

  要從一個(gè)數(shù)據(jù)庫中獲取信息,你首先需要擁有一個(gè)數(shù)據(jù)庫,這時(shí)我們就得提到MySQL了。MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。它到底扮演了一個(gè)什么樣的角色以及它是如果工作的,我們將在下面進(jìn)行具體地講解;旧,它是一個(gè)軟件包,這個(gè)軟件包可以很好地組織和管理大量的數(shù)據(jù)。MySQL也使得我們可以很容易地通過象PHP這樣的服務(wù)器端腳本語言來獲取信息。MySQL的for Unix-based平臺(tái)(例如Linux)的非商業(yè)應(yīng)用是免費(fèi)的。

  如果你足夠幸運(yùn)的話,你的Web主機(jī)可能已經(jīng)為你安裝了MySQL和PHP。如果是這種情況,有一些章節(jié)對(duì)你來說就沒有作用了,你可以直接跳到如果你的Web主機(jī)提供PHP和MySQL。

  我們在本教程中所討論的大多數(shù)內(nèi)容都適用于Windows-based或者Unix-based的服務(wù)器。但是根據(jù)你使用的服務(wù)器類型的不同,安裝過程會(huì)不一樣下一節(jié)講解如何在Windows-based的Web 服務(wù)器上安裝。再下面的一節(jié)講解如何在Linux(以及其他Unix-based的平臺(tái))下安裝。如果你不是特別對(duì)安裝過程感興趣,你只需要選擇閱讀適合你的那一節(jié)。

在Windows下的安裝

  你可以到http://www.mysql.com/(或者在http://www.mysql.com/mirrors.html列出的鏡像站點(diǎn)之一)并選擇Downloads for Windows MySQL related software->Downloads->Register and download shareware version of MySQL-Win32,下載完文件后,將其解壓并運(yùn)行其中的setup.exe。

  當(dāng)你安裝好之后,MySQL已經(jīng)可以使用了(不包括我們不久將要執(zhí)行的一些配置)。象你的Web服務(wù)一樣,MySQL也是一個(gè)可以在后臺(tái)運(yùn)行的服務(wù),所以它可以在任何時(shí)候響應(yīng)對(duì)信息的請(qǐng)求。這個(gè)服務(wù)程序,你可以在你安裝MySQL目錄下的bin子目錄下找到。如果你使用的是一個(gè)共享的版本,這個(gè)服務(wù)被稱之為mysqld-shareware.exe。在執(zhí)行前,將其改名為 mysqld.exe。在MS-DOS提示符下,通過如下命令開啟這個(gè)服務(wù):

C:mysqlin> mysqld


  要確保在Windows啟動(dòng)時(shí)就開啟這個(gè)服務(wù),你需要建立一個(gè)快捷方式,并將其加入到啟動(dòng)程序組中。此外,你還可以通過這個(gè)命令作為Windows NT/2000的一個(gè)服務(wù)安裝:

C:mysqlin> mysqld-nt --install


  如果你在Windows NT/2000下運(yùn)行共享版本有問題,你可以試試用單機(jī)模式運(yùn)行這個(gè)服務(wù):

C:mysqlin> mysqld --standalone


  下一步是安裝PHP。在寫這本教程的時(shí)候,PHP 4.0已經(jīng)基本上成熟了。我自己就試過PHP 4.0-RC2,并沒有遇到任何問題。估計(jì)最終的穩(wěn)定版很快將會(huì)發(fā)布(可能到時(shí)候我們這個(gè)教程還沒寫完),我建議你安裝最新的版本,這樣當(dāng)正式版出來時(shí)你將不需要做任何變動(dòng)。

  PHP可以從http://www.php.net/ (或者在http://www.php.net/mirrors.php列出的鏡像站點(diǎn)之一)免費(fèi)地下載。你需要“binaries for Win32”軟件包。你可以從以下地址獲得一個(gè)很好的PHP 3.0 for Windows的安裝指南:http://www.umesd.k12.or.us/php/win32install.html。 當(dāng)PHP 4.0發(fā)布最終版時(shí),你可能需要升級(jí),但是4.0的安裝基本上與3.0一樣。你不會(huì)因?yàn)樗x擇的版本不同而遇到什么麻煩。

  MySQL和PHP安裝好之后,你可以進(jìn)入安裝配置了。

在Linux下的安裝

  這一節(jié)所講述的是在RedHat Linux下安裝PHP和MySQL的過程。如果你使用的是Linux的不同版本,或者是使用的是其它Unix-based的操作系統(tǒng),這些步驟也是非常相似的,即使不是完全相同的。

  作為RedHat Linux的用戶,你可能會(huì)對(duì)下載和安裝PHP和MySQL的RPM發(fā)布感興趣。RPM的確是優(yōu)秀的,預(yù)打包的軟件的安裝非常容易。不幸的是,它們也會(huì)限制你選擇怎么配置軟件。因?yàn)檫@個(gè)原因,我認(rèn)為使用PHP和MySQL的RPM版本所帶來的麻煩要比其實(shí)際價(jià)值來得更多。

  因?yàn)橛行㏑edHat Linux的默認(rèn)配置會(huì)自動(dòng)替你安裝PHP,所以第一步就是從你的系統(tǒng)刪除舊版本的PHP和MySQL。你需要以超級(jí)用戶的身份登錄來執(zhí)行下面的命令。注意在下面的命令中,“%”表示shell的提示符,是不需要你輸入的。


% rpm -e mysql
% rpm -e php



  如果這兩個(gè)命令或其中一個(gè)顯示程序沒安裝,不要擔(dān)心。如果第二個(gè)命令成功執(zhí)行(也就是說,不顯示任何信息),那就證明的確安裝了老版本的PHP,你必須完全刪除它。用你所習(xí)慣的文本編輯器打開Apache的配置文件(通常是/etc/httpd/conf/httpd.conf),尋找下面的這兩行內(nèi)容。這兩行通常是分在文件的不同地方,所以如果這兩行不在一起,那實(shí)在沒什么好擔(dān)心的。


LoadModule php3_module modules/libphp3.so
AddModule mod_php3.c



  這兩行是用來告訴Apache將PHP作為plug-in模塊裝入的。當(dāng)你卸載了這個(gè)模塊,你還需要?jiǎng)h除這兩行以保證Apache正常工作。你也可以在這兩行的開頭加(#)使其成為注釋。

  為了確保Apache還在正常工作,你現(xiàn)在必須在沒有PHP插件的情況下重啟它:


% /etc/rc.d/init.d/httpd stop
% /etc/rc.d/init.d/httpd start



  一切安排妥當(dāng)后,你可以準(zhǔn)備下載安裝MySQL和PHP了。

在Linux下安裝MySQL

  MySQL for Linux的版本是免費(fèi)的,你可以從http://www.mysql.com/(或http://www.mysql.com/downloads/mirrors.html中列出的鏡像站點(diǎn)之一)下載最后的穩(wěn)定版(列在下載頁的“recommended”中)。你應(yīng)該獲取“tarball source download”的版本,其文件名是mysql-version.tar.gz。

  下載完文件后,你必須確保以超級(jí)用戶的身份登錄進(jìn)行安裝,除非你只想在你自己的home目錄下安裝MySQL。開始解開下載的文件并進(jìn)入剛建立的目錄中:


% tar xfz mysql-version.tar.gz
% cd mysql-version



  下面你需要配置MySQL的安裝。除非你有絕對(duì)的把握,否則你需要指定安裝的目錄。我推薦使用 /usr/local/mysql:

% ./configure --prefix=/usr/local/mysql


  在對(duì)顯示器和顯示器配置進(jìn)行過檢測之后,你最終將返回到命令提示符下。現(xiàn)在你可以編譯MySQL了:

% make


  在編譯后,你會(huì)重新返回到命令提示符下,F(xiàn)在你可以安裝你新編譯的程序了:

% make install


  現(xiàn)在MySQL已經(jīng)安裝好了,但是在使用前,你還得安裝它的數(shù)據(jù)庫文件。在你的開始安裝的目錄下,輸入下面命令:

% scripts/mysql_install_db


  一切都做好后,你可以刪除你正在其中工作的目錄了,在這個(gè)目錄中僅僅包括了源程序和安裝的臨時(shí)文件。如果你可能還需要重新安裝,你只需要重新解開mysql-version.tar.gz 文件。

  當(dāng)MySQL安裝完成并且可以存儲(chǔ)數(shù)據(jù)后,剩下的工作就是在你的計(jì)算機(jī)中運(yùn)行這個(gè)服務(wù)了。你可以用超級(jí)用戶或者你自己的用戶(如果你是將這個(gè)服務(wù)安裝在你自己的home目錄下),但是,最好的方法是設(shè)置一個(gè)特殊的用戶,這個(gè)用戶只能啟動(dòng)MySQL服務(wù)。這會(huì)防止有人通過MySQL服務(wù)侵占你的系統(tǒng)。你可以使用以下命令建立一個(gè)特殊的MySQL用戶:


% /usr/sbin/groupadd mysqlgrp
% /usr/sbin/useradd -g mysqlgrp mysqlusr


  
  在默認(rèn)情況下,MySQL的所有數(shù)據(jù)庫信息都存儲(chǔ)在你安裝的目錄的var子目錄下。我們想設(shè)置這個(gè)目錄只有我們的新的MySQL用戶能訪問。下面的這個(gè)命令能完成這個(gè)工作(我假定你將MySQL安裝到/usr/local/mysql目錄):


% cd /usr/local/mysql
% chown -R mysqlusr.mysqlgrp var
% chmod -R go-rwx var



  現(xiàn)在一切都安排好了。在MySQL目錄下,輸入以下命令:

% bin/safe_mysqld --user=mysqlusr &


  現(xiàn)在MySQL服務(wù)已經(jīng)被MySQL用戶開啟,除非你關(guān)閉你的計(jì)算機(jī),這個(gè)服務(wù)將一直運(yùn)行下去(就象Web和FTP服務(wù)一樣)。要測試這個(gè)服務(wù)是不是正常運(yùn)行,輸入以下命令:

% bin/mysqladmin -u root status


  現(xiàn)在應(yīng)該會(huì)顯示MySQL服務(wù)的一些簡單的統(tǒng)計(jì)信息。如果你看到的是一個(gè)錯(cuò)誤信息,那就是出錯(cuò)了。你可以試一下重新安裝。

  如果你想讓你的MySQL服務(wù)在你的系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行(就象你的Web服務(wù)那樣),你需要作相應(yīng)設(shè)置。在MySQL目錄的share/mysql子目錄下,你會(huì)發(fā)現(xiàn)一個(gè)叫mysql.server的腳本,將它添加到你的系統(tǒng)的啟動(dòng)事務(wù)中就行了。

  如果你已經(jīng)設(shè)定了一個(gè)特殊的MySQL用戶來啟動(dòng)MySQL服務(wù),你需要編輯mysql.server腳本。用你熟悉的文本編輯器打開它并改變mysql_daemon_user設(shè)定,使其指向你上面創(chuàng)建的用戶:

mysql_daemon_user=mysqlusr