建立Apache+PHP+MySQL資料庫驅動的動態網站

來源:互聯網
上載者:User

  本文只介紹這3個軟體的安裝,有關PHP和MySQL的編程和使用請見其他資料。

一、如何獲得軟體?

  獲得這3個軟體包的方法很多,目前大多數Linux分發都捆綁了這3個軟體包,如RedHat。本文介紹的安裝方法是基於從這些軟體的官方網站上下載獲得的軟體包進行的,針對RedHat Linux 6.1,也介紹它們的安裝和配置。

  這3個軟體的官方網站是:

軟體 官方網站 目前的版本 下載

Apache 1.3.9 這裡

PHP 3.0.13 這裡

MySQL 3.22.29 這裡

  從上述網站上,你應該下在以下軟體包:

軟體 檔案名稱

Apache apache_1.3.9.tar.tgz (apache原始碼包)

PHP php-3.0.13.tar.gz (PHP3原始碼包)

MySQL MySQL-3.22.29-1.i386.rpm (MySQL伺服器)

MySQL-client-3.22.29-1.i386.rpm (MySQL客戶公用程式)

MySQL-devel-3.22.29-1.i386.rpm (MySQL包含檔案和庫)

MySQL-shared-3.22.29-1.i386.rpm (客戶程式共用庫)

二、安裝MySQL

  首先檢查你的系統是否已經安裝了MySQL:

    rpm -q MySQL

    rpm -q MySQL-client

    rpm -q MySQL-devel

    rpm -q MySQL-shared

  如果你的版本比3.22.29舊,而且你想升級MySQL到3.22.29版本,先用rpm -e刪除所有的MySQL包,並:

    rpm -i MySQL-3.22.29-1.i386.rpm

    rpm -i MySQL-client-3.22.29-1.i386.rpm

    rpm -i MySQL-devel-3.22.29-1.i386.rpm

    rpm -i MySQL-shared-3.22.29-1.i386.rpm 

  或者直接升級到3.22.29版:

    rpm -Uvh MySQL-3.22.29-1.i386.rpm

    rpm -Uvh MySQL-client-3.22.29-1.i386.rpm

    rpm -Uvh MySQL-devel-3.22.29-1.i386.rpm

    rpm -Uvh MySQL-shared-3.22.29-1.i386.rpm 

  安裝MySQL伺服器時,安裝程式會提示你設定root口令,有關MySQL的安裝後期設定,請參閱。

  上述安裝將MySQL執行檔案放在"/usr/bin"目錄下,包含檔案放在"/usr/include/mysql"目錄下,庫檔案放在"/usr/lib/mysql"目錄下。

三、解壓縮apache和php並編譯和安裝

  如上所述下載apache和php原始碼軟體包,加入下載的檔案放在目錄"/apps"下,進入"/apps"目錄,用ls檢查你有這兩個檔案:

    apache_1.3.9.tar.gz

    php-3.0.13.tar.gz

1、解壓縮apache並配置

  用下列命令解壓縮apache_1.3.9.tar.gz

    tar zxvf apache_1.3.9.tar.gz

它講解壓縮的檔案放在apache_1.3.9目錄下。然後配置apache:

    cd apache_1.3.9 ( 進入apache原始碼樹的目錄)

    ./configure --prefix=/www (假如你想安裝apache最終安裝在目錄"/www"下)

2、解壓縮php3並配置和編譯

    cd .. (回到上級目錄)

    tar zxvf php-3.0.13.tar.gz (解壓縮到目錄"php-3.0.13")

    cd php-3.0.13  (進入php3的原始碼目錄)

    ./configure --with-mysql --with-apache=../apache_1.3.9

    make

    make install

3、編譯和安裝apache

    cd ..

    ./configure --prefix=/www --activate-module=src/module/php3/libphp3.a

    make

    make install (將apache安裝到"/www"目錄下)

  上述這種方法是將php編譯進了apache目標代碼,所以其效率和效能上要比DSO方式略好。將php作為apache的一個模組的方法,見後面的介紹。

4、配置apache

    cd /www (到apache主目錄)

    cd conf  (進入設定檔目錄)

    編輯"httpf.conf"檔案,將"AddType application/x-httpd-php3 .php3"一行的注釋去掉,這樣對於以".php3"為後最尾碼的檔案將作為php指令檔處理。

5、啟動apache

  關掉正在啟動並執行httpd(有時在系統啟動時啟動的),重新啟動新的httpd:

    cd /www/bin

    ./apachectl start

用ps aux命令檢查httpd已經正確啟動。

6、測試

    lynx localhost

  如果你能看到頁面顯示,說明你已正確設定和啟動了httpd。

7、測試php

    cd /www/htdocs (進入預設網頁存放目錄)

  建立一個ex.php3檔案,內容如下:

$myvar="Hello,World!";

echo $myvar;

phpinfo();

?>

  運行些列命令,檢查輸出是否是"Hello,World"和當前php的設定:

    lynx localhost/ex.php3 

如果是,說明你的apache已經可以處理php指令檔了。恭喜你!

8、測試MySQL資料庫

  按照上面的方法安裝MySQL後,建立一個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@#);

  然後用這個SQL指令碼在MySQL中建立一個資料庫mydb,在shell下打入下列命令:

    mysql -u root -pyourpasswd mydb

這裡,如果你在案裝MySQL後設定了root使用者的口令,yourpasswd換成你的口令,如果沒有為root設定口令,則去掉-p選項。

  建立後上述資料庫後,建立一個php3指令檔,如test.php3,其內容如下:

$db = mysql_connect("localhost", "root");

mysql_select_db("mydb",$db);

$result = mysql_query("SELECT * FROM employees",$db);

printf("First Name: %s

\n", mysql_result($result,0,"first"));

printf("Last Name: %s

\n", mysql_result($result,0,"last"));

printf("Address: %s

\n", mysql_result($result,0,"address"));

printf("Position: %s

\n", mysql_result($result,0,"position"));

?>

如果root設定了口令,則在上面的$db = mysql_connect("localhost", "root");中加入口令:

    $db = mysql_connect("localhost", "root","yourpasswd");

然後測試test.php3:

    lynx localhost/test.php3

其顯示的結果應該是:

First Name: Bob

Last Name: Smith

Address: 128 Here St, Cityname

Position: Marketing Manager

如果是,說明你的php3已經能夠處理MySQL資料庫了,再次恭喜你!!

--------------------------------------------------------------------------------

三、將php3編譯成apache的一個模組

  上面的方法是將php3編譯進了apache的二進位代碼中,其優點是配置簡單,效率高,但一個更靈活的方法是將php3作為apache的一個DSO(Dynamic Shared Object)模組,詳見apache文檔。下面就介紹如何將php3編譯為apache的一個模組。

1、配置apache

  進入apache原始碼目錄,運行下列命令,(假定將httpd安裝在"/web"目錄下)

    cd apache_1.3.9

    ./comfigure --prefix=/www --enable-shared=max

    make (編譯apache)

    make install (將apache安裝在/web目錄下)

2、配置php3並編譯和安裝

   假定你已將apache目錄下(請記住該目錄),進入php3的原始碼目錄進行配置和編譯:

    cd php-3.0.13

    ./configure --with-apxs=/web/bin/apxs --with-config-file-path=/web --with-mysql

    make (編譯)

    make install (安裝libphp3.so)

  上述配置是將php3的設定檔"php3.ini"放在/web目錄下,你必須手工將php3原始碼目錄下的"php3.ini-dist"拷貝到/web目錄下,重新修改/web/conf目錄下的httpd.conf檔案,加入下列文字以便讓apache支援php3指令檔,它由上述的make install自動修改:

    AddModule mod_php3.c

    LoadModule php3_module libexec/libphp3.so



    AddType application/x-httpd-php3 .php3

  重新啟動httpd:

    /web/bin/apachectl stop (停止)

    /web/bin/apachectl start (啟動)

3、測試

  你仍然可以用上述的php3指令碼的例子進行測試,如果正確,你已經正確地安裝了!

--------------------------------------------------------------------------------

四、如何從RPM包進行安裝和配置

  在很多Linux的發行版本中都捆綁了apache、php3和MySQL,由於MySQL本身是以RPM格式分發的,因此其安裝上面已經介紹,下面僅介紹apache和php的安裝和配置。本文基於RedHat Linux 6.1。PHP的設計者不建議從RPM配置php3,但它將在php4中解決這個問題。由於從RPM重新設定和安裝php比較麻煩,所以以下方法僅供參考。

1、你需要的rpm檔案

  為了重新設定和編譯php,你應該下載php3的原始碼rpm:php-3.0.12.6.src.rpm。該軟體包可產生下列rpm:

    php-3.0.12-6.i386.rpm    php-manual-3.0.12-6.i386.rpm

    php-imap-3.0.12-6.i386.rpm  php-ldap-3.0.12-6.i386.rpm

    php-pgsql-3.0.12-6.i386.rpm

在安裝新的rpm之前,你應該首先刪除已經的php軟體包:

    rpm -e php-imap php-ldap php-pgsql php php-manual

  重新編譯php需要以下軟體包:

    apache  apache-devel

    postgresql  postgresql-devel

    MySQL-devel

2、重新設定、編譯和安裝php3

   安裝php3原始碼包:

    rpm -i php-3.0.12-6.src.rpm

它將php原始碼安裝在/usr/src/redhat目錄下,進入該目錄,按下面的命令進行配置和編譯:

    cd /usr/src/redhat/SPECS

    vi php.spec

編輯php.spec檔案,找到%build小節,在關於./configure的選項部分加入:

    --with-mysql=/usr \

選項,它指出php支援MySQL資料庫。

%build

cd imap-4.5

make RPM_OPT_FLAGS="$RPM_OPT_FLAGS" lnp

cd ..

autoconf

CFLAGS="-fPIC" ./configure --prefix=/usr \

--with-apxs=/usr/sbin/apxs \

--with-config-file-path=/etc/httpd \

--enable-safe-mode \

--with-exec-dir=/usr/bin \

--with-system-regex \

--disable-debug \

--with-zlib \

--enable-debugger \

--enable-magic-quotes \

--with-mysql=/usr \

--enable-track-vars

儲存修改,重建rpm包:

    rpm -bb /usr/src/redhat/SPECS/php.spec

最後,在/usr/src/redhat/RPMS/i386目錄下可以找到相應的二進位rpm包,重新安裝它們:

    rpm -i /usr/src/redhat/RPMS/i386/*

3、配置httpd.conf和srm.conf

  在安裝好php後,你應該配置httpd以便支援php3指令碼。首先編輯/etc/httpd/conf/httpd.conf,找出下列兩行,去掉它們前面的注釋符#:

    AddModule mod_php3.c

    LoadModule php3_module modules/libphp3.so

在編譯/etc/httpd/conf/srm.conf,去掉下面一行的注釋符#:

    AddType application/x-httpd-php3 .php3

這樣,httpd對於以.php3結尾的檔案視為php指令檔。

4、測試

  你可以用上面的兩個例子做測試。

5、總結

  RedHat等一些Linux發行商雖然在它們的分發中捆綁了上述三個軟體包,但php的rpm包初始是不支援MySQL資料庫的。另外,原來的mod_php3或mod_php的使用方式已經過時,而新的格式是libphp3.so,因此在RedHat標準的二進位分發中已經不包含mod_php3或mod_php了。

  如果你想一直使用這三個軟體的最新版本,前二種方法最適用。

  上述只是介紹了這三個軟體的安裝,你必須配置php和MySQL的安全性設定

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.