Web页面同数据库相连,最常见的是使用CGI程序。任何同数据库有关的页面信息都要用C或者Perl语言写出单独的CGI程序,各CGI程序之间没有通用性。每增加一项内容,都要重写CGI程序,工作量过大。在NT环境下,有很多工具如:ISAPI、ASP等可以帮助我们开发应用程序。那么在Linux环境下,有没有同著名的Apache
WWW服务器相对应的数据库连接工具呢?今天向各位推荐的PHP3就是将数据库同页面连接的专用工具。
一、PHP3是怎样工作的
PHP3工作原理如下:
图1
同数据库相关的页面,在服务器端以PHP脚本的方式编写。实现过程如下:
第1步:客户向Web服务器发出请求。
第2步:Apache服务器分析客户的请求,若为PHP文件,则将其交给PHP处理程序进行处理。
第3步:Filename.php3是一个PHP脚本,包含了许多命令,其中包括打开并连接数据库,从数据库中找到所要数据的命令。所有同数据库相关的操作,都由PHP来完成。PHP可以很好地完成同数据库的交互。
第4步:PHP从数据库中取得数据后,按照Filename.php3文件的要求,进行格式转换,也即将文件内容转化为HTML格式。
第5步:将HTML格式的文件交给Apache服务器。
第6步:Apache服务器再将其送给客户。
二、Linux下的数据库——MySQL
1.首先安装数据库。在Linux下,最常用的数据库为MySQL。
下载地址: http://www.mysql.com. 最新版为3.23.21.。在Red Hat Linux 环境下,下载已编译好的二进制代码,其中包括服务器端、客户端、开发工具包共3部分。i386
系列机的用户,应下载:
数据库服务器:MySQL-3.22.21-1.i386.rpm
客户端:MySQL-client-3.22.21-1.i386.rpm
库文件及头文件:MySQL-devel-3.22.21-1.i386.rpm。
编译好的软件包为:MySQL-3.22.21-pc-linux-gnu-i686.tar.gz。首先将它解压缩到硬盘的/usr/local目录下。然后以系统管理员登录,解压缩此软件包:
# tar -zxvf /tmp/MySQL-3.22.21-pc-Linux-gnu-i686.tar.gz
解压缩后,会自动产生一个叫MySQL-3.22.21-pc-Linux-gnu-i686的目录,为了方便,可以建立此目录的链接,以下命令将MySQL-3.22.21-pc-Linux-gnu-i686目录链接为MySQL目录:
# ln -s MySQL-3.22.21-pc-Linux-gnu-i686 MySQL
这种方法便于以后升级MySQL,当新的MySQL出来后,只需如上所述将新的版本解压缩,编译成功后,简单地将链接换掉即可。
之后,在Linux环境下建立用户MySQL,禁止任何人使用此账户登录系统。将MySQL目录及文件的拥有者赋予用户MySQL及Root组:
# cd /usr/local
# chown -R MySQL:root MySQL-3.22.21-pc-linux-gnu-i686 MySQL
下面,以MySQL用户登录,运行一个小脚本,以创建MySQL数据库。
$cd mysql
$scripts/mysql—install—db
$exit
如果安装程序不出错,那么,恭喜你,MySQL数据库安装成功了。
源代码的安装方式为:
#cd MySQL
#./configurate --prefix=/usr/local/MySQL
#make ; make install
到此为止,MySQL安装完成。
在Red Hat Linux 环境下安装MySQL比较简单:首先,以Root用户登录,将此软件包拷贝到目录/tmp中,键入以下命令即可:
# rpm -ivh MySQL
2.测试数据库
键入如下命令:
#/etc/rc.d/init.d/MySQL start
如果一切正常,则系统会出现以下提示:
Starting MySQL daemon with databases from /var/lib/MySQL
MySQL客户端的运行方式如下:
#MySQL
之后,你会看到:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.22.21
Type ′help′ for help.
mysql〉
表示一切运行正常。
数据库中通常带有一个测试数据库,名称为Test,查看数据库可以运行以下命令:
mysql〉 show databases;
系统会显示:
Database
mysql
test
2 rows in set (0.00 sec)
看到这些信息,表明现在MySQL数据库已真正开始运行了。
为了测试,我们在数据库Test中创建表Tel—num,并在其中加入以下数据:
mysql〉 CREATE TABLE Tel—num ( name CHAR(30), phone CHAR(10)
);
在表中加入以下数据:
mysql〉 INSERT INTO mytable VALUES (″Xue QiKang″, ″0574-7361166″);
mysql〉 INSERT INTO mytable VALUES (″Ye Mingjie″, ″0574-7279996″);
将数据库中Test各表的使用权授予用户Webmaster@localhost。
三、安装WWW及PHP1.下载并安装PHP软件包
在PHP的站点上,有编译好的RPM格式的软件包,但版本为 3.0.5,对数据库的支持没有被编译进此软件包中,所以通常情况是自己下载源程序,自己编译。另外,Red
Hat Linux 5.1发行版中所带的Apache服务器版本为1.3.3,建议各位下载Apache的最新版1.3.12版,相对于Apache
1.3.3版,它改进了许多。下载PHP软件包的地址为:http://www.php.net。
下载Apache的源程序软件包后,解压过程如下:
#tar xvzf php-3.0.8.tar.gz
#cd php-3.0.8
#./configure --with-MySQL=/usr/local/MySQL \
--with-apahce=../apache_1.3.6 \
--enable-track-vars
#cp php3.ini-dist /usr/local/lib/php3.ini
2.安装Apache服务器
#tar xvzf apache—1.3.6.tar.gz
#cd apache—1.3.6
#./configure --prefix=/usr/local/apache \
--activate-module=src/modules/php3/libphp3.a
#make; make install
如果不出错,则Apache安装完成。
最后编辑Httpd配置文件:httpd.conf,找到AddType Application/x-httpd-php3.php3,把它前面的注释去掉。
3.安装phpMyAdminL
从http://www.htmlwizard.net/phpMyAdmin/下载phpMyAdmin—2.0.1.tar.gz,解压软件包:#tar
-zvxf phpMyAdmin—2.0.1.tar.gz,产生phpMyAdmin-2.0.1目录。
将此目录下的所有文件移到/usr/local/apache/htdocs/phpMyAdmin目录中,并将其属性置为可读。
为了在网页中显示中文,还需要对配置文件进行更改。用户需对/usr/local/apache/htdocs/phpMyAdmin目录下的Config.inc.php3文件进行修改,将其中require一行改写为:require(″chinese—gb.in
c.php3″)。
四、测试
1.PHP脚本实例
Indextest.php3文件内容:
〈html〉
〈head〉
〈title〉 This is my first PHP page〈/title〉
〈/head〉
〈body bgcolor=#ffffff〉
〈? Echo ″Hello, How are you″; ?〉
〈/body〉
〈/html〉
在浏览器地址栏输入:http://127.0.0.1/indextext.php3,会出现:“Hello, How are
you ?”。
这表明,PHP已经正常运行了。
2.页面与数据库相连实例
在index0.php3中加入:
……
〈?
mysql—connect(″localhost″, ″webmaster″, ″″);
$query = ″SELECT name, phone FROM tel—num″;
$result = mysql—db—query(″test″, $query);
if ($result) {
echo ″Found these entries in the database:〈ul〉″;
while ($r = mysql—fetch—array($result)) {$name = $r[″name″];
$phone = $r[″phone″];
echo ″〈li〉$name, $phone″;}
echo ″〈/ul〉″;
} else {
echo ″No data.″;}
mysql—free—result($result);
?〉
……
用浏览器打开它,看看结果!(见图2)
图2
摘自《赛迪网》 薛启康/文