利用Apache+PHP3+MySQL建立數據庫驅動的動態網站(轉)
利用Apache+PHP3+
MySQL建立數據庫驅動的動態網站(轉)[@more@]
一、如何獲得軟件? 獲得這3個軟件包的方法很多,目前大多數Linux分發都捆綁了這3個軟件包,如RedHat。本文介紹的安裝方法是基于從這些軟件的官方站點上下載獲得的軟件包進行的,針對RedHat Linux 6.1,也介紹它們的安裝和配置。
這3個軟件的官方站點是:
軟件 官方網站 當前版本 下載
Apache http://www.apache.org/httpd.html 1.3.9 這里
PHP http://www.php.net/ 3.0.13 這里
MySQL http://www.mysql.com 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
", mysql_result($result,0,"first"));
printf("Last Name: %s
", mysql_result($result,0,"last"));
printf("Address: %s
", mysql_result($result,0,"address"));
printf("Position: %s
", 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的安全性設置。