- 論壇徽章:
- 0
|
二、安裝MySQL
快點行動,拿到這些軟件包,仔細研究一下吧。這可不是件容易的事兒。你從獲取軟件包、編譯軟件包到安裝軟件包的過程中都有不少的選擇項。我們先從MySQL開始,因為有了它才能運行PHP。
二、安裝MySQL
快點行動,拿到這些軟件包,仔細研究一下吧。這可不是件容易的事兒。你從獲取軟件包、編譯軟件包到安裝軟件包的過程中都有不少的選擇項。我們先從MySQL開始,因為有了它才能運行PHP。
MySQL中央網(wǎng)站是http://www.mysql.com/。為了方便人們下載使用(這軟件還是比較大的),全球有許許多多的鏡像網(wǎng)站。為更有效地利用因特網(wǎng),請找一個就近的網(wǎng)站下載。
在這時候你也會有多種選擇。如果你是發(fā)燒友的話,可以下載源代碼;否則,網(wǎng)上也有各種平臺上運行的預先編譯過的二進制文件可以直接下載。
另外,MySQL還為Windows用戶準備了一個共享軟件版本,它的版本號稍低一些。如果你想要最新的版本,得花錢買一個軟件許可。MySQL還提供了ODBC驅動程序,使前端應用程序可以訪問MySQL數(shù)據(jù)庫。有關其他一些詳細信息在它的網(wǎng)站上都有得介紹,您可以去看看。
預先編譯過的Unix版本和Windows版本都很簡單,只須解包即可使用,不需要做太多說明了。因此,我們來介紹一下源代碼的編譯。Windows用戶請記住,您需要運行mysqld程序,該程序是在mysql/bin目錄下。
下載壓縮過的軟件包文件,放在一個目錄下。使用gzip和tar來解壓縮和解包。比較快的做法是使用下面這樣的命令:
gunzip >
三、安裝PHP
好,看到這里時,希望您已經(jīng)把MySQL安裝好并運行起來了。那實在是太有意思了!下面是PHP...這個過程要容易一些,不過那些大量的選項還是使人眼花繚亂。當然,您大可不必驚慌。您隨時可以重頭再來,重新編譯PHP,根據(jù)需要來加入或去掉某個選項。
PHP的老家在http://www.php.net/。這個網(wǎng)站信息量極大,從開發(fā)項目內(nèi)容到軟件錯誤報告都有。和MySQL一樣,您可以選一個離您最近的鏡像網(wǎng)站下載。很顯然,您得到網(wǎng)站的Downloads部分去下載PHP。
這里您的選擇不是很多。有一些預選編譯好的二進制文件,但那都是實驗性的。如果您不是在Windows平臺上,那就下載源代碼,自己編譯一下吧。
但是我們還是先談談Windows。在使用PHP時,一般的作法是在Windows系統(tǒng)上開發(fā),然后在Unix服務器上運行。您最終可能也會選擇這種方式,這就需要您對兩種平臺下的安裝都很熟悉才行。
下載Windows二進制文件后,您可以用您喜歡的任何一種ZIP解壓縮程序,把軟件包中的文件解壓到C盤的php3目錄下。軟件包中的README文件對安裝過程中的細節(jié)作了部分說明,但是我們在這里再對這個文件中的關鍵內(nèi)容做個讀者文摘:如果您不想把PHP安裝在C:php3目錄,而是別的目錄,那么您得編輯解壓縮出來的文件中那個.inf文件。
在php3目錄中,您會發(fā)現(xiàn)很多.dll文件。把所有文件名不是以php_開頭的那些.dll文件都移到windowssystem目錄下。然后,把php.ini-dist文件改一下名,改成php3.ini,并把它移到windows目錄下。如果您打開這個文件,會發(fā)現(xiàn)里面有很多有趣的東西可以改,F(xiàn)在,把含有:
extension=php3_mysql.dll
內(nèi)容的那一行的注釋去掉。
如果您使用的是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文件,并選擇“安裝”。您得重新啟動系統(tǒng),才能使剛才所做的改動生效。
OK,說完了Windows,再來說說Unix。當然,我們要從源代碼開始編譯。與MySQL相似,把源文件下載、解包。PHP也同樣包含一個配置腳本程序,可是您不能完全使用默認設置。運行./configure -help | more命令,可以逐頁地觀看有哪些新的、有趣的選項。您必須選擇是把PHP編譯成外部CGI程序還是Apache內(nèi)嵌模塊。如果您正在使用Apache Web服務器,并且您可以對它進行重新編譯的話,請選擇內(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)建相應的系統(tǒng)文件。接下來簡單地執(zhí)行make命令就行了。
又可以喝一杯咖啡了。如果您在此時感到坐立不安的話,不必擔心。每個人在初次安裝PHP的時候都有一點近不及待的感覺。再多喝點咖啡就是了。
如果您選擇CGI程序方式來編譯,那么現(xiàn)在可以就可以使用了。只須把產(chǎn)生的可執(zhí)行文件復制到CGI程序目錄下就行了。如果您使用Apache內(nèi)嵌模塊方式來編譯,要再執(zhí)行一下make install命令,把有關文件復制到Apache目錄下。在該目錄下,您可以按照Apache的文檔說明,向其中加入PHP模塊,并重新編譯Apache。
現(xiàn)在您得告訴Web服務器如何通過PHP程序來處理頁面內(nèi)容。如果您使用的不是Apache,那您需要查閱Web服務器軟件的文檔,看看如何讓它處理后綴是.php3的文件。Apache 1.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)進行了這么多,下面我們可以實際操練了。>>
四、第一個腳本
如果我告訴您真正難過的一關已經(jīng)過了,您一定會很高興。軟件的安裝過程總是無法預料,因為系統(tǒng)跟系統(tǒng)之間可以說是千差萬別。不過您運氣不錯,數(shù)據(jù)庫運行起來,PHP也編譯安裝完畢,Web服務器也可以正確處理擴展名為.php3的文件了。
我們下面就開始正式上路,要寫第一個腳本程序了。創(chuàng)建一個文本文件,在其中加入下面的內(nèi)容:
現(xiàn)在,訪問相應的URL,例如,http://myserver/test.php3。您應該可以看到頁面中包含“Hello World”的文字。如果您看到的是錯誤信息,查一下PHP文檔,看看軟件設置是否正確無誤。
就是這樣了!這是您的第一個PHP程序。如果您查看一下這個頁面的HTML源代碼,您會發(fā)現(xiàn)里面只有Hello World 這樣的文字。
那是因為PHP引擎過濾了文件內(nèi)容,對其中的代碼作了處理,轉換成了標準的HTML。
在上面的程序中您最先注意到的可能是定界符,也就是?lt;?php開始的那幾行。這個標記說明后面是PHP代碼,而?>表示代碼結束。PHP的強大之處在于,這些代碼可以以多種不同方式放在任意位置 - 我是說任意位置。后面我們會看到一些很有趣的例子,現(xiàn)在我們還是從最簡單的開始。如果您愿意,也可以設置PHP,讓它使用短標記,,但這與XML會發(fā)生沖突,所以要小心使用。如果您是從ASP轉向PHP,您甚至可以讓PHP使用作為定界符。
您還會注意到每行后面的分號。這些分號稱為分隔符,用于分隔不同的指令。您可以把所有的PHP代碼寫在一行里,用分隔符把命令分開。但是那樣看起來很亂,所以我們在每個分號后面都另起一行。記住,每行最后都要以分號結束。
最后,您會注意到myvar這個字以$符號開頭。這個符號告訴PHP,這是一個變量。我們把“Hello World”賦給變量$myvar。一個變量可以是數(shù)字,也可以是數(shù)組。不管怎樣,所有的變量都是以$符開頭。
PHP真正強大之處來源于它的函數(shù)。函數(shù),基本上是處理指令序列。如果您把所有的選件都編譯進PHP,總共會有超過700個函數(shù)。這些函數(shù)可以讓您做很多事情。
現(xiàn)在我們再加進一些MySQL的內(nèi)容進去。>>
五、裝載數(shù)據(jù)庫
現(xiàn)在,我們要加入MySQL的內(nèi)容了。要想知道PHP中包含哪些選項,或服務器方面的一些情況,一種簡便的方法是使用函數(shù)phpinfo()。創(chuàng)建一個象下面這樣的程序:
保存這個程序,在瀏覽器中訪問這個文件。您會看到網(wǎng)頁中包含了一些有趣的、有用的信息,象這樣。這些信息是有關服務器、Web服務器內(nèi)部環(huán)境變量、PHP中包含的選項,等等。在第一段Extensions中,找到以MySQL開頭的一行。如果沒有找到,那說明MySQL支持選項并沒有編譯進PHP。您可以再檢查一下安裝步驟,查閱一下PHP文檔,看您是否漏掉了什么。
如果找到了MySQL那一行,那您可以繼續(xù)了。
從MySQL數(shù)據(jù)庫中讀取數(shù)據(jù)之前,我們得先往數(shù)據(jù)庫里放一些數(shù)據(jù)。在現(xiàn)在這一階段,還沒有一個簡便的方法來做這件事情。大多數(shù)的PHP程序都帶有一個數(shù)據(jù)文件,該文件包含一些數(shù)據(jù)來創(chuàng)建并激活MySQL數(shù)據(jù)庫。這個過程不在本教程范圍之內(nèi),所以讓我來替您做這件事情吧。
MySQL使用它自己的用戶權限表。在安裝時,會創(chuàng)建一個默認的用戶(root),該用戶是沒有口令的。數(shù)據(jù)庫管理員可以根據(jù)需要來增加用戶并賦予用戶各種不同的權限,但這項工作完全可以另寫一本書了,所以我們只使用root用戶。如果您自己管理服務器和數(shù)據(jù)庫,為root用戶分配一個口令是很重要的。
總之,我們還是接著說數(shù)據(jù)庫吧。對Win32用戶來說,很對不起,不過您要在DOS下做些工作。您不得不使用DOS窗口,或者在“執(zhí)行”窗口中鍵入所有命令。別忘了,輸入命令時要帶上MySQL/bin的目錄名。Unix用戶可以在MySQL的bin目錄下輸入命令,但命令必須以./開頭,才能讓程序運行起來。
我們要做的第一件事情是實際創(chuàng)建出數(shù)據(jù)庫。在命令行下,鍵入下列命令:
mysqladmin -u root create mydb
這樣就創(chuàng)建了一個名為“mydb”的數(shù)據(jù)庫。-u選項告訴MySQL我們使用的是root用戶。
下一步,我們要加入一些數(shù)據(jù),這里我們用的示例數(shù)據(jù)是大家都喜歡用的員工數(shù)據(jù)庫。我們將會用到我前面提到過的數(shù)據(jù)文件。如果您想在這方面多了解一些,可以查閱MySQL所帶的手冊或訪問 http://www.turbolift.com/mysql/網(wǎng)站。
把下面的文字復制到一個文件中,把該文件存在MySQL的bin目錄下(我假定文件名是mydb.dump)。
CREATE TABLE employees ( id tinyint(4) DEFAULT '0' NOT NULL
AUTO_INCREMENT, first varchar(20), last varchar(20),
address varchar(255), position varchar(50), PRIMARY KEY (id),
UNIQUE id (id));INSERT INTO employees VALUES (1,'Bob','Smith',
'128 Here St, Cityname','Marketing Manager');
INSERT INTO employees VALUES (2,'John','Roberts','45 There St ,
Townville','Telephonist');
INSERT INTO employees VALUES (3,'Brad','Johnson','1/34 Nowhere Blvd,
Snowston','Doorman');
如果文字是折行的,請確保每一個INSERT語句都是另起一行的。現(xiàn)在,我們要把數(shù)據(jù)加入到mydb數(shù)據(jù)庫中了。在命令行下,鍵入下面的命令:
mysql -u root mydb >
六、測試
OK,現(xiàn)在我們已經(jīng)把數(shù)據(jù)導入到數(shù)據(jù)庫中了,F(xiàn)在我們來處理這些數(shù)據(jù)。把下面的文字存入一個文件中,把該文件存在Web服務器的文檔目錄下,后綴名為.php3。
我來解釋一下上面的代碼。mysql_connect()函數(shù)負責以指定的用戶名(本例中用戶名是root)連接到指定機器(在本例中機器是本機localhost)上的MySQL數(shù)據(jù)庫。如果您想指定用戶口令,您也可以把它送給這個函數(shù)。連接的結果保存在變量$db中。
隨后,mysql_select_db()函數(shù)告訴PHP,我們要讀取的數(shù)據(jù)庫是mydb。我們可以在程序中同時連接到多臺機器上的多個數(shù)據(jù)庫,但目前我們還是限于連接一個數(shù)據(jù)庫。
接下來,mysql_query()函數(shù)完成最復雜的部分。利用剛才得到的連接結果標識,該函數(shù)把一行SQL語句送給MySQL服務器去處理。返回的結果保存在變量$result中。
最后,mysql_result()函數(shù)顯示SQL查詢命令所得到的各個字段的值。利用變量$result,我們就可以找到第一條記錄,記錄號是0,并將其中各字段的值顯示出來。
如果您以前沒用過Perl或C語言,那么printf函數(shù)的語法格式會顯得很奇怪。在上面的每一行程序中,%s代表表達式第二部分中的那個變量(例如,mysql_result($result,0,"position"))應該以字符串的形式顯示出來。想更深入了解printf,請參閱PHP文檔。
這一課我們就講到這里了。我們已經(jīng)成功地編譯、安裝和設置了MySQL和PHP,并且運行了一個簡單的程序來讀取數(shù)據(jù)庫中的信息。在 第二課里,我們會做一些更復雜的工作,來顯示多行記錄的數(shù)據(jù),甚至與數(shù)據(jù)庫互相交換數(shù)據(jù)。
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/674/showart_20064.html |
|