官术网_书友最值得收藏!

  • PHP與MySQL權威指南
  • 吳津津 田睿 李云 劉昊
  • 124字
  • 2019-03-01 14:40:52

第2章 PHP與MySQL開發環境的搭建

2.1 在Windows上安裝IIS

IIS(Internet Information Service,互聯網信息服務)是由微軟公司提供的基礎互聯網服務,它是一種Web服務組件,其中包括Web服務器、FTP服務器、NNTP服務器和SMTP服務器,分別用于網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括互聯網和局域網)上發布信息成為一件很容易的事情。

下面以在Windows Server 2003中安裝IIS 6.0為例,為大家講解IIS組件的安裝。

首先打開控制面板,然后選擇“添加或刪除程序”,并在左側選擇“添加/刪除Windows組件”,接下來會顯示Windows組件向導界面,在“Windows組件向導”中選中“應用程序服務器”,如圖2-1所示。

圖2-1 添加應用程序服務器

單擊“詳細信息”按鈕,選中“Internet信息服務(IIS)”,如圖2-2所示。

圖2-2 選擇安裝IIS 6.0

單擊“確定”按鈕,會出現如圖2-3所示的界面。

圖2-3 開始安裝IIS 6.0

單擊“下一步”按鈕后開始安裝,安裝完成后根據圖2-4的提示打開“Internet信息服務(IIS)管理器”。

圖2-4 打開Internet信息服務(IIS)管理器

打開“Internet信息服務(IIS)管理器”,檢驗安裝是否完成。

至此,IIS組件已安裝完成,界面如圖2-5所示。

圖2-5 IIS 6.0安裝成功

2.2 PHP的安裝和配置

本節將分別介紹PHP在Windows和Linux下的安裝配置過程。PHP的官方下載地址為http://cn.php.net/downloads.php。

2.2.1 在Windows下的安裝和配置

目前有很多基于Windows的多合一安裝包,但是我們建議用戶自己手動安裝PHP,這樣可以更加詳細地了解PHP的使用和配置,并且能夠根據需要非常方便地安裝PHP擴展。下面以PHP 5.2.14版本為例介紹PHP的安裝和配置過程。

(1)下載PHP安裝包php-5.2.14-Win32.zip,然后將其解壓縮到一個選定的目標位置,如“C:\php\”,解壓后的文件目錄如圖2-6所示。

圖2-6 PHP安裝圖解:PHP安裝包解壓后的文件目錄

(2)為PHP設置一個有效的配置文件php.ini。在解壓后的目錄中有兩個ini文件php.ini-dist和php.ini-recommended,可將其中任何一個復制到Windows(有的系統是Winnt)目錄下,并改名為php.ini(建議使用php.ini-recommended,該文件在性能和安全方面做了優化)。

(3)打開php.ini文件并找到“extension_dir="./"”這一行,將其值修改為在PHP目錄下“ext”文件夾的路徑,如“extension_dir="C:/php/ext"”。然后找到“;extension=php_gd2.dll”和“;extension=php_mysql.dll”并將前面的分號“;”去掉,這樣PHP既可以支持GD繪圖函數庫,也可以支持MySQL數據庫。php.ini中還有很多其他的擴展,可以根據自己的環境配置所需來開啟或關閉相應的擴展,這里不再一一介紹。

(4)將PHP的目錄配置到系統path中。右擊“我的電腦”,然后選擇“屬性”,會彈出一個對話框,在該對話框中選擇“高級”標簽,如圖2-7所示。

圖2-7 “高級”標簽窗口

然后單擊“環境變量”按鈕,會出現如圖2-8所示的對話框。

圖2-8 環境變量窗口

在該對話框中選擇系統變量名中的“Path”,然后單擊“編輯”按鈕,出現如圖2-9所示的對話框。

圖2-9 將PHP的目錄配置到系統Path中

在“變量值”輸入框的末尾添加“;php的目錄;”,如“;C:\php”,然后單擊“確定”按鈕,環境變量配置結束。

至此,PHP5安裝結束。下面介紹IIS服務器與PHP的集成。

(1)打開“Internet信息服務(IIS)管理器”,右擊“網站”,在彈出的快捷菜單中選擇“屬性”,彈出“目錄屬性”對話框,然后在彈出的對話框中選擇“主目錄”選項卡。將“執行權限”設置為“腳本和可執行文件”,如圖2-10所示。

圖2-10 “主目錄”選項卡

注意

“純腳本”與“腳本和可執行文件”的區別。如果將應用程序的權限設置為“純腳本”,則可以讓映射到腳本引擎的應用程序在此目錄中運行,但不擁有可執行文件的執行權限;如果將應用程序的權限設置為“腳本和可執行文件”,則允許應用程序在此目錄中運行,其中包括映射到腳本引擎的應用程序和Windows的二進制文件(.dll和.exe文件),所以將權限設置為“純腳本”比將權限設置為“腳本和可執行文件”更安全。

(2)添加PHP支持。單擊圖2-10中的“配置”按鈕,將彈出“應用程序配置”對話框,如圖2-11所示。

圖2-11 “應用程序配置”對話框

在“映射”選項卡中,單擊“添加”按鈕,會出現如圖2-12所示的對話框,在“可執行文件”位置單擊“瀏覽”按鈕,選擇php目錄下的“php5isapi.dll”,“擴展名”處輸入“.php”,然后單擊“確定”按鈕。

圖2-12 添加/編輯應用程序對話框

(3)關閉網站屬性對話框,在“Internet信息服務(IIS)管理器”中選擇“Web服務擴展”,點擊“添加一個新的Web服務擴展”選項,如圖2-13所示。

圖2-13 Internet信息服務(IIS)管理器界面

然后在彈出的“新建Web服務擴展”對話框中填寫“擴展名”為“.php”,在“要求的文件”后單擊“添加”按鈕,選擇php目錄下的php5isapi.dll,勾選下方的“設置擴展狀態為允許”,再單擊“確定”按鈕,如圖2-14所示。

圖2-14 新建Web服務擴展界面

(4)關閉所有界面,重啟Internet信息服務(IIS)管理器,至此設置完成。

測試Internet信息服務(IIS)管理器對PHP的支持性,在“C:\Inetput\wwwroot\”目錄下創建頁面phpdemo.php,使用記事本打開該文件,輸入如下內容:

        <?php
            phpinfo();
        ?>

打開瀏覽器,輸入“http://localhost/phpdemo.php”,如果出現如圖2-15所示的界面,則說明PHP安裝成功。

圖2-15 設置成功

2.2.2 在Linux下的安裝和配置

在Linux系統下搭建PHP環境要比Windows復雜一些,需要先安裝一些相關的工具,并設置必要的參數。而且,如果要使用PHP擴展庫,不像在Windows下修改php.ini那樣簡單,而是需要對PHP重新進行編譯。下面將詳細講解PHP在Linux系統下的安裝和配置,所選擇的Linux版本為Red Hat Enterprise Linux 5。安裝之前要準備的安裝包有:libxml2-2.6.27.tar.gz、httpd-2.2.17.tar.gz、mysql-5.1.53-linux-i686-glibc23.tar.gz、php-5.2.14.tar.gz。

在Linux下安裝軟件,均需要在Linux終端下進行(選擇“主菜單/應用程序/附件/終端”)(以下安裝須按順序進行)。在Linux系統下,PHP所用到的Web服務器為Apache下的HTTP Server,所以在安裝PHP之前要先安裝Apache服務器,安裝步驟如下所示。

(1)拷貝安裝包到“/usr/local”下。

          #cp httpd-2.2.17.tar.gz /usr/local/

(2)切換目錄為“/usr/local”,創建目錄“httpd”。

          #cd/usr/local
          #mkdir httpd

(3)解壓安裝包,解壓完成后進入剛解壓的目錄。

          #tar zxvf httpd-2.2.17.tar.gz
          #cd httpd-2.2.17

(4)配置項檢測,并生成makefile文件,為make做準備。

          #./configure --prefix=/usr/local/httpd --enable-so

(5)編譯。

          #make

(6)開始安裝。

          #make install

Apache服務的管理。

          啟動服務: #/usr/local/httpd/bin/apachectl start
          停止服務: #/usr/local/httpd/bin/apachectl stop

測試Apache安裝是否成功,先啟動Apache服務,然后打開瀏覽器,輸入“http://localhost”,按下“Enter”鍵,如果出現如圖2-16所示的界面,表示安裝成功。

圖2-16 安裝成功圖示一

或者出現如圖2-17所示界面,也表示安裝成功。

圖2-17 安裝成功圖示二

libxml2是一個XML C語言版的解析器,PHP訪問XML文件時需要libxml2類庫的支持,因此安裝PHP之前,需要先安裝libxml2。安裝步驟如下所示:

(1)拷貝安裝包到“/usr/local”下。

        #cp libxml2-2.6.27.tar.gz /usr/local/

(2)切換目錄為“/usr/local”,創建目錄“libxml2”。

        #cd /usr/local
        #mkdir libxml2

(3)解壓安裝包,解壓完成后,進入剛解壓的目錄。

        #tar zxvf libxml2-2.6.27.tar.gz
        #cd libxml2-2.6.27

(4)配置項檢測,并生成makefile文件,為make做準備。

        # ./configure --prefix=/usr/local/libxml2

(5)編譯。

        #make

(6)開始安裝。

        #make install

MySQL的安裝和配置(詳見2.3.2節)。

在Apache、libxml2和MySQL都安裝成功之后就可以開始準備安裝PHP 5了,安裝步驟如下所示。

(1)拷貝安裝包到“/usr/local”下。

        #cp php-5.2.14.tar.gz /usr/local/

(2)切換目錄為“/usr/local”,創建目錄“php”。

        #cd /usr/local
        #mkdir php

(3)解壓安裝包,解壓完成后進入剛解壓的目錄。

          #tar zxvf php-5.2.14.tar.gz
          #cd php-5.2.14

(4)配置項檢測,并生成makefile文件,為make做準備。

          #./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs
          --with-libxml-dir=/usr/local/libxml2
          --with-mysql=/usr/local/mysql
          --with-mysqli=/usr/local/mysql/bin/mysql_config
          --with-pdo-mysql=/usr/local/mysql

(5)編譯。

          #make

(6)開始安裝。

          #make install

PHP安裝結束之后,需要修改Apache的配置文件httpd.conf(該文件在httpd/conf/下),使Apache服務器支持PHP腳本語言。

          #gedit /usr/local/httpd/conf/httpd.conf

在該文件的末尾添加如下兩行語句:

          AddDefaultCharset UTF-8
          AddType application/x-httpd-php .php

(有些httpd版本中第一行語句為AddDefaultCharset ISO-8859-1,如果遇到這種情況,則將其值修改為UTF-8)。

Apache默認的訪問主目錄為“htdocs”。在Linux下由于用戶權限的問題,因此需要將該文件夾授權給Linux系統安裝時的普通用戶,并設置訪問權限。

          #chown -R /usr/local/httpd/htdocs/ Linux系統普通用戶賬號
          #chmod -R 755 /usr/local/httpd/htdocs/

測試PHP的安裝和配置是否成功,在“/usr/local/httpd/htdocs/”目錄下創建頁面phpdemo.php,打開該文件,輸入如下內容:

          <?php
              phpinfo();
          ?>

啟動Apache服務器,然后打開瀏覽器,輸入“http://localhost/phpdemo.php”,按Enter鍵將看到如圖2-18所示的界面。

圖2-18 phpinfo();顯示界面

圖2-18中指出PHP的配置文件php.ini并沒有被加載,按照圖中所指的路徑,即“/usr/local/php/lib”,拷貝配置文件到該位置。

          #cp /usr/local/php-5.2.14/php.ini-recommended /usr/local/php/lib/php.ini

至此,Linux系統下PHP的安裝和配置就結束了。

2.3 MySQL的安裝和配置

MySQL是一個中小型的關系型數據庫管理系統,由于其體積小、速度快、總體使用成本低,以及開放源碼這些特點,許多中小型網站都選擇MySQL作為網站數據庫,而且一直被認為是PHP的最佳搭檔。

本節分別為大家講解MySQL在Windows和Linux下的安裝和配置過程。MySQL的官方下載地址為http://www.mysql.com/downloads/mysql/。

2.3.1 Windows下的安裝和配置

下面以mysql-essential-5.1.52-win32.msi版本為例詳細講解MySQL在Windows下的安裝和配置,步驟如下所示。

(1)雙擊MySQL安裝文件mysql-essential-5.1.52-win32.msi,進入歡迎界面,單擊“Next”按鈕,進入Setup Type界面,如圖2-19所示。

圖2-19 選擇安裝方式

(2)Setup Type界面中有3個單選按鈕,其中“Typical”和“Complete”兩種安裝方式的安裝路徑不能改變,“Custom”方式可以讓用戶選擇安裝組件和安裝路徑。在此選擇“Custom”選項,單擊“Next”按鈕。

(3)進入Custom Setup界面后,選擇要安裝的組件;然后單擊“Change...”按鈕,在彈出的對話框中選擇安裝路徑,選擇完成后單擊“Next”按鈕,如圖2-20所示。

圖2-20 選擇安裝組件和路徑

(4)進入MySQL的準備安裝界面,界面中顯示了用戶在以上步驟中所選擇的信息。信息確認無誤后,單擊“Install”按鈕,如圖2-21所示。

圖2-21 確認已選的安裝信息

(5)安裝完成后,會出現一些關于MySQL功能和版本的介紹。連續單擊“Next”按鈕,直到出現圖2-22所示的界面。

圖2-22 安裝完成

(6)單擊圖2-22中的“Finish”按鈕,開始MySQL服務器的配置,會出現如圖2-23所示的界面。選擇默認項“Detailed Configuration”,單擊“Next”按鈕。

圖2-23 MySQL服務器的配置界面

(7)選擇服務器運行模式界面。這里選擇第一個默認項“Developer Machine”(該模式下MySQL服務器占用的內存空間最小,進行本地測試足夠使用),單擊“Next”按鈕,如圖2-24所示。

圖2-24 服務器運行模式選擇

(8)選擇數據庫的類型,可以選擇支持MyISAM、InnoDB等多種存儲引擎的數據系統,也可以選擇只支持其中一種的數據庫系統。默認選擇“Multifunctional Database”,單擊“Next”按鈕,如圖2-25所示。

圖2-25 選擇數據類型

(9)選擇InnoDB數據文件的存放路徑。請注意選擇路徑后下方所選分區的剩余空間,單擊“Next”按鈕,如圖2-26所示。

圖2-26 選擇InnoDB數據文件的存放路徑

(10)選擇MySQL服務器的最大并發連接數量。這里可選擇第一個默認項“Decision Support(DSS)/OLAP”,單擊“Next”按鈕,如圖2-27所示。

圖2-27 選擇MySQL服務器的最大并發連接數量

(11)選擇MySQL端口設置,默認“3306”即可,單擊“Next”按鈕,如圖2-28所示。

圖2-28 選擇MySQL端口設置

(12)選擇MySQL字符集設置,選中第三項“Manual Selected Default Character Set/Collation”手動設置字符集,在下方的下拉菜單中選擇“utf8”,單擊“Next”按鈕,如圖2-29所示。

圖2-29 MySQL字符集設置

(13)在圖2-30所示的界面中勾選兩個復選框,單擊“Next”按鈕。

圖2-30 其他相關選項

(14)設置“root”賬號、密碼(root賬號為MySQL默認的管理員賬號),單擊“Next”按鈕,如圖2-31所示。

圖2-31 設置MySQL管理員賬號

(15)準備執行以上所選擇的配置,單擊“Execute”按鈕,如圖2-32所示。

圖2-32 確認MySQL服務器配置信息

至此,MySQL在Windows下的安裝和配置全部完成。

2.3.2 Linux下的安裝和配置

Linux下MySQL的安裝要復雜一些,需要先創建MySQL賬號(因為Linux下root的權限太大),并將該賬號加入到組群中,具體安裝步驟如下。

(1)創建MySQL賬號,并加入組群。

        #/usr/sbin/groupadd mysql
        #/usr/sbin/useradd -g mysql mysql

(2)拷貝安裝包到“/usr/local”下。

          #cp mysql-5.1.53-linux-i686-glibc23.tar.gz /usr/local/

(3)解壓安裝包。

          #tar zxvf mysql-5.1.53-linux-i686-glibc23.tar.gz

(4)創建到剛解壓的文件夾的鏈接,并命名為MySQL(創建鏈接方式的目的是考慮到MySQL數據庫以后升級的需要)。

          #ln -s mysql-5.1.53-linux-i686-glibc23 mysql

(5)進入目錄MySQL,并安裝MySQL數據庫。

          #cd mysql
          #./scripts/mysql_install_db --user=mysql

(6)拷貝MySQL配置文件到系統目錄,并重命名為“my.cnf”。

          #cp ./support-files/my-medium.cnf /etc/my.cnf

用下面的命令可以啟動和停止MySQL服務:

          #/usr/local/mysql/bin/mysqld_safe --user=mysql&
          #/usr/local/mysql/bin/mysqladmin -u root -p shutdown

Linux系統下初次安裝MySQL后,root賬號的密碼為空,所以當使用root賬號提示輸入密碼時直接回車即可。進入MySQL客戶端,使用如下命令:

          #/usr/local/mysql/bin/mysql -u root -p

退出時,使用“exit”。

至此,MySQL在Linux下的安裝和配置全部完成。

2.4 PHP與MySQL連接

在Windows系統下,如果需要在PHP 5中使用MySQL,則要在Windows系統下的php.ini文件中啟動MySQL模塊支持,打開php.ini,將如下3項前的分號“;”去掉。

          ;extension = php_mysql.dll
          ;extension = php_mysqli.dll
          ;extension = php_pdo_mysql.dll

在Linux系統下,編譯PHP時需要將MySQL相關的模塊也編譯進去。

          --with-mysql=/usr/local/mysql
          --with-mysqli=/usr/local/mysql/bin/mysql_config
          --with-pdo-mysql=/usr/local/mysql

檢查PHP是否支持MySQL的相關模塊,打開瀏覽器,輸入“http://localhost/phpdemo.php”,按Enter鍵將在頁面中看到3個和MySQL相關的表格“mysql”、“mysqli”和“pdo_mysql”。

下面簡單介紹PHP訪問MySQL數據庫的方式。

PHP訪問MySQL數據庫的方式有多種,可以使用PHP內建的數據庫訪問函數,也可以使用數據庫抽象層來實現。

先來簡單介紹一下如何使用PHP的內建函數訪問MySQL數據庫。PHP提供mysql_connect()來連接數據庫,然后通過mysql_close()來關閉該連接資源。示例如下:

        <?php
            $link = mysql_connect('localhost', 'username','password');
            //建立一個MySQL連接,三個參數分別表示服務器名、用戶名和密碼
            mysql_select_db('test');                                 //訪問test數據庫
            $rs = mysql_query('select * from tb_object');            //執行SQL語句
            while($row = mysql_fetch_row($rs)){                      //配合while循環輸出結果
                print_r($row);                                       //打印一行
                echo "<br/>";
            }
            mysql_close($link);                                      //關閉打開的MySQL連接
        ?>

使用PHP的內建函數訪問數據庫雖然方便,性能也高,但MySQL、SQL Server、Oracle等數據庫的擴展卻使用著不同且互不兼容的應用程序接口(API),這導致應用程序難以維護和移植。為了解決這些問題,PHP開發出了一套API來統一各種不同的關系型數據庫管理系統的共有特性,從而使PHP腳本實現最大程度的抽象性和兼容性,這就是數據庫抽象層。

使用數據庫抽象層,意味著當從一個數據庫系統向另一個數據庫系統遷移時,幾乎不用更改太多的程序代碼。目前,比較主流的數據庫抽象層有Metabase、PEAR:DB、PDO(PHP Data Object)及ADODB(Active Data Object Data Base)等,而PDO和ADODB是當今最快的數據庫抽象類。

要使用數據庫抽象層ADODB來操作數據庫,需要先獲取和安裝ADODB,只需要在網上下載ADODB包,然后解壓到Web服務器目錄下即可(要使用ADODB,PHP必須是4.01以上的版本)。下面是使用ADODB訪問MySQL數據庫的簡單示例。

        <?php
            require_once 'adodb/adodb.inc.php';                      //載入adodb.inc.php文件
            $conn = ADONewConnection('mysql');                       //連接MySQL數據庫
            $conn->connect('localhost' , 'username' , 'password , 'test');//訪問test數據庫
            $rs = $conn->execute('SELECT * FROM   tb_object');
                                                                     //執行SQL語句
            while ($row = $rs->FetchRow()) {                         //配合while循環輸出結果
                      print_r($row);                                 //打印一行
                      echo "<br/>";
            }
            $rs->close();
            $conn->close();
        ?>

數據庫抽象層PDO是一個使用C語言開發的數據庫抽象層,它是和PHP 5.1版本一起發行的,默認包含在PHP 5.1中。由于PDO需要PHP 5的核心面向對象特性的支持,因此它無法在PHP 5之前的版本中運行。下面是使用PDO訪問MySQL數據庫的簡單示例。

          <?php
              $dsn = 'mysql:dbname=test;host=localhost';                  //設置數據源
              try {                                                       //捕獲異常
              $pdo = new PDO($dsn, 'username', 'password');               //創建PDO對象
              $rs = $pdo->query('SELECT * from tb_object');     //執行SQL語句
              foreach ($rs as $row) {                                 //循環輸出結果
                                    print_r($row);
                        echo "<br/>";
              }
              $pdo = null;                                              //銷毀PDO對象
              } catch (PDOException $e) {                                 //異常處理
                        print "Error!: " . $e->getMessage() . "<br/>";
                        die();
              }
          ?>

以上演示了使用3種方式來訪問MySQL數據庫,各有各的特點。使用內建函數的方式最為直接方便,但是數據庫移植性差。PDO的設計繼承了PHP的特點,簡潔易用,它在使用上依然使用原生的SQL,這就使得它當PHP環境中的數據庫發生變化時無法做出相應的反應,也就是說,PDO不適合用在打算或有可能會變更數據庫的系統中。不管后端數據庫如何,ADODB存取數據庫的方式都是一致的,轉移數據庫平臺時,程序代碼也不必做太大的更改,只需要改動數據庫相關的配置文件即可。經過比較,ADODB比PDO更強大,但是這個抽象層的體積似乎過于龐大,全部文件加起來大約有1MB,如果只是做一個較小的網站,似乎有些大材小用,同時也會使你的網站程序看起來有些肥胖。讀者可以根據自己的網站設計合理地選擇一種適合的方式。

2.5 小結

本章詳細介紹了開發PHP應用所需的3種軟件—PHP、MySQL和IIS的安裝和配置方法。首先介紹了如何在Windows下安裝和配置IIS,然后分別介紹了PHP和MySQL在Windows和Linux這兩個平臺下的安裝和配置方法,最后進解了PHP和MySQL的連接。本章特別強調了PHP運行時的多種配置選項,具有很大的參考價值。

主站蜘蛛池模板: 五台县| 胶州市| 无棣县| 柳州市| 土默特右旗| 长乐市| 平塘县| 鸡泽县| 章丘市| 安阳县| 汨罗市| 灵台县| 河北省| 长沙县| 兴文县| 昭苏县| 巍山| 安新县| 垣曲县| 铜山县| 抚宁县| 舟山市| 涡阳县| 惠安县| 彭泽县| 红桥区| 元朗区| 中宁县| 米泉市| 兴山县| 新津县| 广德县| 阳城县| 黄大仙区| 巴东县| 灌南县| 府谷县| 兴宁市| 安达市| 平塘县| 兰坪|