Linux 版 (精华区)

发信人: tcpip (高级草包), 信区: Linux
标  题: 公报13-在家里开发 Web 应用程序 —— 第一章
发信站: 紫 丁 香 (Tue May  2 21:58:42 2000) WWW-POST

在家里开发 Web 应用程序 —— 第一章
作者:Anderson Silva  译者:li3p


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

Linux让我的得意的事情之一就是在家里以极低的价格就可以拥有一台全功能的服务器。
我在家里有3台机器相互组成了一个小的网络,我的路由器功能就是由一台Pentium 133的
32M内存、1.7G的硬盘的机器来完成的。

这台在基于RedHat 6.0的机器是我的路由器、DNS域名服务器、防火墙/代理服务器、
samba服务器、Web服务器,更出色的---它一直运行的很好。我必须要告诉你,我唯一要
将机器shutdown的理由是由于由预报雷雨预来,其它的情况下,它一直都在超稳定的状态
运行着。

我写这篇文章的理由是让你能够在你的机器上运行你自己的Web应用程序,哪怕你的机器
象我的小Pentium 133一样烂。通常我写文章所面向的读者群是那些新手,因为我觉得他
们比老手们更需要支持,这篇文章也不例外。

我将向你介绍一个脚本描述语言PHP。当然你可能更倾向于使用另外的同类语言,如Perl
、ASP、Cold Fusion什么的。我所说的只能是:“你可犯不着为我没有选择你们喜好的语
言而痛扁我一顿”。

PHP是一种嵌入在HTML中、需要Server解释运行的脚本语言,从它的文档来看这种语言是
1994秋天创造的。如果你想玩转PHP你就会发现PHP的语法与C语言极其类似,所以如果你
有编写C、C++、JAVA程序的经验,那么用PHP编程也是小菜一碟儿。

PHP最伟大的特性就是可以让你的Web站点与很多类型的数据库连接,(从而获得强大的数
据支持能力和Web站点的动态特性),以下就是几个被PHP支持的数据库的例子:

Oracle

Sybase

mSQL

MySQL

ODBC

dBase

其它还有很多...

这篇文章将向你介绍如何在RedHat上安装PHP3,并实现MySQL来作为数据平台。注意:
RedHat完全安装时,所安装的PHP已经具有了对PostgreSQL的支持。




安装MySQL:

    你可以从以下地址下载MySQL:

    http://www.mysql.com/download_3.22.html

    如果你使用的是RedHat, 我建议您下在MySQL的RPM发行包格式。需要下载的文件

The Server - MySQL-3.22.27-1.i386.rpm

The Client - MySQL-client-3.22.27-1.i386.rpm

The Development Libraries - MySQL-devel-3.22.27-1.i386.rpm

注意:MySQL 3.22.27是截止到我写这篇文章时最新的稳定版本。一旦你下载了上面的文
件,你可就可以用root的身份来运行如下的命令以完成安装:rpm -ihv MySQL-* 这个命
令会安装所有的你下载的MySQL的包。


学习MySQL:

要我说学习MySQL一些基本功能根本算不上什么挑战,主要的原因有两个:


MySQL拥有相当条理和有帮助的在线文档,你可以从如下的地址访问。

http://www.mysql.com/doc.html

WEB上有很多图形化的管理工具使你维护工作十分容易。没有比一个MySQL数据库管理员更
省心的了。这些GUI客户端工具你可以从如下的地址得到:http://www.mysql.com/Contri
b/




安装PHP3:

    如同我在文章已开始所说的:RedHat已经带了PHP的RPM包,但是缺省的这个PHP3只是
至此PostgreSQL数据库。但是把这个RPM包中加入MySQL数据库支持也不是什么难事,这都
得益于来自PHP官方网站的FAQ(http://www.php.net)


    为了解决这个问题,我在此直接引用PHP站点上FAQ中的相关章节:

 

3.3我通过RPM方式安装了PHP,但是其中并没有编译进我想要的数据库支持,如何解决?


鉴于PHP目前的体系,编译出一个完整而灵活的版本实在不是一件容易的事情。这个问题
会在PHP4中解决。对于PHP,我们目前建议你使用PHP发行包中的德INTALL.REDHAT中所描
述的技巧。如果你坚持使用RPM方式的PHP版本,那么请继续读下去...

目前所安装的RPM方式的PHP中没有增加任何数据库支持,这是出于简化安装和RPMS使用
/usr/而不是/usr/local作为安装文件的目标目录等考虑,你需要在RPM的SPEC文件中写入
要加入什么数据库支持以及该数据库安装文件所在的目录。

下面的例子将描述如何增加目前流行的MySQL数据库支持,编译出Apache的模块。

当然下面所提到的方法同样适用于PHP所支持的其他数据库。下面的例子中我假设你已经
安装好了MySQL和Apache的RPM包。

首先去掉mod_php3,使用命令:

rpm -e mod_php3

下载PHP源码包并安装,注意:只是安装,不要马上就重新编译。

rpm -Uvh mod_php3-3.0.5-2.src.rpm

修改PHP的SPEC文件,/usr/src/redhat/SPECS/mod_php3.spec

在%build段中加入想要的数据库支持和相关路径。

对于MySQL来书就是加入 --with-mysql=/usr \

%build段看起来应该跟下面差不多:

./configure --prefix=/usr \

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

--with-config-file-path=/usr/lib \

--enable-debug=no \

--enable-safe-mode \

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

--with-mysql=/usr \

--with-system-regex

修改完成以后,你就可以通过如下命令重新编译而得到二进制RPM安装包了。

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

通过下面的命令安装编译以后的RPM包:

rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

确定重新启动了Apache以后,你就可以在PHP中使用MySQL数据库支持了。值得一提的是,
如果你通过PHP发行的tar.gz编译以后,按照INTALL.REDHAT来安装会简单一些。

 

另外一个问题是载一些发行版本中(包括RedHat),已经安装了PHP3,但是在Apache的配
置文件中没有激活,解决这个问题也可以参考PHP FAQ中的相关章节。




Q:我通过RPM方式安装了PHP,但是Apache并不处理PHP的页面!如何解决?

A:假设你已经安装了Apache和PHP的RPM包,你只要在/etc/httpd/conf/httpd.conf文件中
添加一下行或者这些行已经存在,你只要去掉注释就可以了:

# Extra Modules
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module modules/mod_php.so
LoadModule php3_module modules/libphp3.so
LoadModule perl_module modules/libperl.so


同时要在全局配置或者需要增加PHP支持的虚拟主机配置中增加如下行(应该是
/etc/httpd/conf/srm.conf --译者注)
AddType application/x-httpd-php3 .php3


如果你已经成功的安装了MySQL,重新安装了PHP3,在Apache中激活了PHP3支持,你就可
以开始使用PHP3了。

注意:每次你改变了Apache的配置的文件的时候都要重新启动Apache来使改动生效(以
root身份运行/etc/rc.d/init.d/httpd restart 即可--译者注)


快速测试:

这里有一个快速的测试可以让你检验PHP3一起其他相关的东西是否已经在你的系统中正常
运行了:

到你的Web发布的主目录(RedHat系统中是:/home/httpd/html),创建一个phptest.php3的
文件,文件内容如下:

<?

echo "<HTML>\n";

echo "<HEAD><TITLE>Hello World!</TITLE></HEAD>\n";

echo "Testing PHP3 with Hello World!\n";

?>

打开你的浏览器,你应该可以得到想看到的结果,如果是这样,那么你就可以使用PHP3来
做你的Web应用了。如果有什么问题,我建议您访问PHP的官方站点:http://www.php.net



下一个月,我将带来几个比较复杂的实现对MySQL数据输入的例子。


下面的文本框的内容完全来自PHP的Web 站点。




PERMISSION NOTICE:

Javascript/PHP code used with permission of the PHP

Development Team.

Copyright 1998. All rights reserved.

For more information on the PHP Development Team and

the PHP project, please see <http://www.php.net>.
 

--
"这一千多年没写诗了?"
"写了, 不过只写了两句."
"千年得两句, 一定是万古丽句了. 念来听听."
"好吧, 我现丑了" 太白星清了清嗓子, 浑厚的男中音在天庭响起:
大海啊, 都是水;
骏马啊, 四条腿;

※ 来源:·紫 丁 香 bbs.hit.edu.cn·[FROM: freesrc.hit.edu] 
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.591毫秒