用PHP和MySQL構建一個數據庫驅動的網站二

將這個腳本添加到啟動事務中是個比較復雜的任務。如果你使用的不是RedHat Linux而且你沒有把握做這件事,你最好請教一下瞭解的人。在RedHat Linux中,執行以下命令(在MySQL目錄下)會完成這個工作: % cp share/mysql/mysql.server /etc/rc.d/init.d/ % cd /etc/rc.d/init.d % chmod 500 mysql.server % cd /etc/rc.d/rc3.d % ln -s ../init.d/mysql.server S99mysql % cd /etc/rc.d/rc5.d % ln -s ../init.d/mysql.server S99mysql   現在一切都做好瞭!要測試這個工作,你可以重啟你的系統並對這個服務作出請求,看看它是不是正常工作瞭。 在Linux下安裝PHP   正如我們前面提到的,PHP並不是一個獨立運行的程序。它實際上是你的Web服務(可能是Apache)的一個插件。實際上你有三種方法在Apache中安裝PHP插件:   作為一個CGI程序,Apache每次需要處理PHP頁面時運行它。   作為一個模塊編譯到Apache程序中。   在Apache每次啟動時作為一個模塊載入。   第一種方法的安裝和配置最簡單,但是這需要Apache每次接收到PHP頁面的請求時就將PHP作為一個程序調用。這肯定會降低你的Web服務器的響應時間,特別是同時接收到不止一個的請求時更是這樣。   第二種方法和第三種方法在性能方面同樣的優秀,但是很可能你已經安裝好瞭Apache,你大概不想再去下載一次,並重新編譯和重新安裝。因此,我們使用第三種方法。   首先,我們從https://www.php.net/(或者在https://www.php.net/mirrors.php中列出的鏡像站點之一)下載PHP的軟件包。當我們在寫這個教程的時候,PHP 4.0已經基本上成熟瞭。我自己就試過PHP 4.0-RC2,並沒有遇到任何問題。估計最終的穩定版很快將會發佈(可能到時候我們這個教程還沒寫完),我建議你安裝最新的版本,這樣當正式版出來時你將不需要做任何變動。在這裡,我們安裝的是3.0,我會註意指出3.0和4.0在安裝時可能會有的差別。   你所下載的文件的文件名將是php-version.tar.gz。我們的第一步是解開這個文件: % tar xfz php-version.tar.gz % cd php-version   要將PHP作為Apache可載入的模塊安裝,你需要Apache的apxs程序。在個程序在絕大多數的Apache的版本中應該都已包括,但是如果你使用的是通過RedHat Linux安裝的拷貝,你需要安裝Apache高級RPM軟件包來獲得它。你可以從你的RedHat光盤上找到這個軟件包,你也可以從https://www.redhat.com/下載。在默認的情況下,RedHat會將這個程序安裝到/usr/sbin/apxs。如果你看到瞭這個文件,這證明它已經被安裝瞭。   在這個安裝過程中,你必須以超級用戶的身份登錄,因為其中包括瞭一些對Apache配置文件的變動。   下一步是配置PHP安裝程序,以使它知道選擇哪些選項,並在哪兒尋找它所需要的程序(例如Apache和MySQL)。除非你很有把握,否則你隻需輸入下面的命令(在同一行中): % ./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php –with-apxs=/usr/sbin/apxs –enable-track-vars –enable-magic-quotes –enable-debugger   如果你已經安裝瞭PHP 3.0(不是4.0或更遲的版本),你也需要通過以下附加的參數告訴它在你的系統中從哪兒尋找MySQL: –with-mysql=/usr/local/mysql/   當經過幾屏對顯示器的測試後,你會回到命令提示符下。下面兩個命令會編譯和安裝PHP: % make % make install   PHP現在已經被安裝在/usr/local/php(除非你通過上面./configure的–prefix參數指定瞭不同的目錄),你應該能在同一目錄下(除非你通過上面./configure的–with-config-file-path參數指定瞭不同的目錄)找到名為php.ini的配置文件, PHP提供瞭一個php.ini的模塊文件,其文件名是php.ini-optimized (在PHP3.0中是php.ini-dist)。將這個文件拷貝到相應的目錄: % cp php.ini-optimized /usr/local/php/php.ini   對於PHP 3.0: % cp php.ini-dist /usr/local/php/php.ini   你暫時不要擔心php.ini的優化調整。現在,我們需要確保Apache知道從哪兒找PHP,這樣它才能在啟動時裝載它。使用你熟悉的文本編輯器打開你的Apache httpd.conf 配置文件(在RedHat Linux中,在/etc/httpd/conf/httpd.conf)。 尋找象下面這樣的一行: LoadModule php4_module lib/apache/libphp4.so   如果你安裝的是PHP 3.0,這一行中的php4換成php3。 你所尋找的應該是一個新的未註釋的行(不是以#開頭的行),而不是你之前註釋掉的那一行。一般情況下,它會和文件中其他LoadModule行顯示在一起。當你找到它後,你需要改變路徑以使它能夠匹配文件中所有其他的LoadModule行。在RedHat Linux下,這意味著將這一行改變為: LoadModule php4_module modules/libphp4.so   然後,尋找以DirectoryIndex開始的行。這一行告訴Apache對於一個給定的目錄尋找默認頁時所使用的文件名。通常,你會看到index.html和其他一些文件名,你需要將index.php和index.php3添加到這一行: DirectoryIndex index.html index.cgi … index.php index.php3   最後,到這個文件的最後並添加一個新行來告訴Apache哪些文件的擴展名被看成PHP文件: AddType application/x-httpd-php .phtml .php .php3   一切都做好後,保存改變並重啟你的Apache服務。Apache啟動時不應該有任何出錯信息。 安裝後的設置   當PHP和MySQL都安裝好之後,不管你是在Windows下、Linux下或其他操作系統下,第一件事都是為MySQL設置一個“root口令”。MySQL僅僅允許經授權的用戶訪問並操作它的數據庫中所存儲的信息,所以你必須讓MySQL清楚誰是經授權的,誰是未經授權的。當MySQL第一次被安裝時,它會生成一個叫“root”的用戶,該用戶可以不用口令訪問所有的東西。你的第一個任務就是為root用戶設置口令,這樣才能保證不會任何人都可以搞亂你的數據庫。   你必須認識到MySQL的重要性,正如Web服務和FTP服務一樣,在同一個網絡上的任何機器都可以訪問它。如果你在一個連接到Internet的計算機上工作,這就意味著這個世界上的任何人都可以試圖連接你的MySQL服務器!你必須立即選擇一個很難猜的口令!   要設置MySQL中的root口令,在你安裝MySQL的目錄的bin子目錄下輸入下面的命令(包括引號): mysqladmin -u root password "your new password"   要確保MySQL接受這個改變,你必須告訴它重新載入經論證的用戶和口令的列表: mysqladmin -u root reload   如果這個命令顯示一個錯誤信息告訴你無法訪問,不要擔心,這僅僅證明口令已經生效瞭。   要測試你的新密碼,你可以請求MySQL服務器告訴你有關它的當前的狀態: mysqladmin -u root -p status   當有提示時,輸入密碼。你會看到一些簡單的信息,這些信息包含瞭服務的當前狀態。-u root參數告訴程序你想要以“root”用戶登入。-p參數告訴程序在連接之前提示你輸入你的口令。status參數告訴程序你想要看看系統狀態。   如果你需要關閉MySQL服務器,你可以使用下面的命令。註意這裡的-u root和-p參數的含義和上面提到的一樣: mysqladmin -u root -p shutdown   現在你的MySQL數據庫系統已經安全運行瞭,現在剩下的工作就是配置PHP瞭。PHP是使用一個叫php.ini的文本文件配置的。如果你是在Windows下安裝PHP的,你應該已經拷貝瞭php.ini到你的Windows目錄。如果你是使用上面的說明在Linux安裝PHP的,你應該已經拷貝瞭php.ini到PHP安裝目錄下(/usr/local/php)。   用你熟悉的文本編輯器打開php.ini 並大致瀏覽一下。絕大多數的設置已經被很好地說明,而且絕大多數的默認設置也可以適應你的要求。隻要檢查並確認你的配置與下面匹配: magic_quotes_gpc = Ondoc_root = extension_dir =   如果你運行的是PHP 4.0,你還需要檢查下面這一行: register_globals = On   如果你是在Windows下運行PHP 3.0,去除開頭的“;”來取消下面這一行的註釋(4.0不需要): extension=php_mysql.dll   保存php.ini的變動,然後重啟你的Web服務器。在Linux下,如果你是以超級用戶登錄的,你可以重啟Apache: /etc/rc.d/init.d/httpd restart 現在萬事俱備!現在唯一剩下的就是測試並確認是不是一切OK瞭(參看你的第一個PHP腳本)。 如果你的Web主機提供PHP和MySQL   如果為你提供Web空間的主機已經為你安裝並設置瞭MySQL和PHP,你隻希望學會如何使用它們,你需要做的事實在不多。現在你應該和你的主機提供商取得聯系,以獲取如何訪問這些服務的信息。   特別重要的,你需要獲得為你設置的訪問MySQL服務的用戶名和口令。他們可能已經為你設置瞭一個空數據庫(這會防止你和同一MySQL服務器上的其他用戶在數據庫上發生混亂),你這時還需要知道這個數據庫的名字。   有兩個方法訪問MySQL服務。第一種方法是使用telnet登入主機並使用安裝MySQL客戶端程序(mysql、mysqladmin、mysqldump等)來直接實現和MySQL服務實現互動。第二種方法是在你自己的計算機上安裝那些客戶端程序並連接上MySQL服務器。你的Web主機可能會支持其中的一種或兩種方法,所以你得先問清楚。   如果他們支持通過telnet登入進行你的工作,你還需要一個通過telnet登入的用戶名和口令(這個用戶名和口令可能和你訪問MySQL服務的不一樣)。你得把這兩個設置信息都問清楚。   如果他們支持遠程訪問MySQL服務,你需要下載一個程序去連接並實現與服務器的互動。這個教程會假設你已經從https://www.mysql.com/下載瞭一套MySQL客戶端程序。這個軟件包既可以在Window下運行,也可以在Unix下運行,而且是免費的。包含在軟件包中的安裝說明非常簡單。如果你更喜歡一些圖形化界面的,你可以下載類似MySQLWinAdmin for Windows(也可以從https://www.mysql.com/獲得)。我推薦你首先學會使用基本的客戶端程序,盡管,在這些程序中使用的命令會與在PHP腳本中訪問MySQL數據庫的腳本很相像。 你的第一個PHP腳本   為你講瞭那麼多安裝的事,卻還一直沒有讓你嘗試PHP驅動的Web頁面的滋味,對我來說實在是不公平的

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *