原文转自:http://www.ibm.com/developerworks/cn/linux/l-xampp/
Nils-Erik Frantzell ([email protected])计算机科学系,UC Santa Cruz
2004 年 11 月 30 日
诸如 Apache Friends 中的 XAMPP 之类的开放源码软件简化了开源项目的开发,方式是通过简化在稳定和标准化环境中应用程序的编写和分发。传统情况下,AMPP -- Apache、MySQL、PHP 和 Perl -- 都是以单独产品的形式进行安装和配置。将它们集成到中间件软件中的承诺使得开源项目的开发相对于 J2EE™ 应用程序的开发来说更具竞争力,至少对于底层的应用程序来说是如此。在本文中,您将学习如何在 Mandrake Linux™ 10.0 上安装、配置和备份 XAMPP,以及如何配置和管理 XAMPP,以及如何在 XAMPP 环境中安装自己的应用程序。
J2EE(Java 2 Enterprise Edition™)的出现极大地改变了软件领域,它提供了一个集成的中间件软件,可以极大地简化编写和部署 Java™ 应用程序的任务。一时之间,开源社区因为缺少类似的集成架构而被远远地抛到了后面。
最近以来,随着在 Apache Friends 中出现 XAMPP 这种集成的开放源码软件,这种情况开始逐渐地发生变化。虽然这些工具与 J2EE 相比还非常简单,甚至是微不足道,但是不管怎样,这对于通往全面的系统集成之路来说,都迈出了重要一步。 PHP 5.0 (它使得 PHP 成为完全面向对象的)是这种趋势正在加速发展的一个良好的风向标。
本文的重点是介绍集成的开放源码软件之一:Apache Friends 中的 XAMPP。
XAMPP 是一个功能全面的 AMPP (Apache、MySQL、PHP、Perl)软件包,这是 Linux 平台上可以使用的几种非商业 AMPP 中间件之一。采用这种紧密的集成,XAMPP 可以运行任何程序:从个人主页到功能全面的产品站点(虽然这仅仅用于开发目的;出于安全考虑,XAMPP 还不适于用在产品服务器上)。
XAMPP 实际上在以下几个方面大放光彩:
对于本文来说,我们将在 Mandrake Linux 10.0 上安装 XAMPP。现在我们首先看看 XAMPP 中提供的缺省软件包。
基本的软件包包括系统、编程和服务器软件:
XAMPP 包括以下与图形有关的软件包:
如果没有以下的数据库软件包,怎么还能叫集成软件呢?
为了开发 XML 程序,XAMPP 应该包含以下软件包:
为了开发 PHP 程序,XAMPP 应该包括以下软件包:
最后,XAMPP 中包含了以下软件包来展示自己的强大功能:
现在让我们讨论一下安装 XAMPP 的问题。
|
要安装 XAMPP,请从 Apache Friends Web 站点上下载最新的二进制文件(请参阅 参考资料 中的链接)。使用下面的命令将其解开到 /opt 目录中:
tar xvfz xampp-linux-1.4.7.tar.gz -C /opt
就是这样!XAMPP 现在已经被安装到 /opt/lampp 目录中了。之前安装在 /opt 目录中的内容都已经被覆盖了。如果您正在运行一个旧版本的 XAMPP,并且不想再次下载整个软件包,Apache Friends 中还提供了一个升级包来下载需要的软件包。
现在所有的软件都已经安装好了,让我们启动新的守护进程。将当前的工作目录切换到 /opt/lampp ( cd /opt/lampp
)并输入下面的命令:
./lampp start
您应该会看到下面的结果:
Starting XAMPP for Linux 1.4.7...
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.
XAMPP 现在就启动并运行了。最好的验证方法是打开一个浏览器并在地址栏中输入 localhost
,并按回车键。此时浏览器会被重定向到 XAMPP 的 welcome 页面。
点击左边导航栏中的 Status 链接,就可以看到必需的服务已经正确启动了。如果所有的服务都运行正常,您就会看到下面的页面:
恭喜!您现在已经安装和设置好了一个完整的 AMPP 开发环境了。现在让我们安装一个简单的应用程序来展示一下如何使用这种环境。
|
要利用 XAMPP 的基本特性,您需要一个简单的应用程序。最好的应用程序是一个在后端使用数据库的程序;并使用一个相当简单的数据库,其中包含了一个精心设计的表。
测试数据库包含一个只有一列的表。让我们按照测试程序的(计算机)传统,设计在我们的表中存放一条记录 “Hello World!”。我们将使用一个 Perl 和 一个 PHP 脚本来访问这个数据库。这两个脚本都可以访问这个数据库,从中检索这行记录,并将其输出到屏幕上。
我们的数据库将使用 phpMyAdmin 来创建和管理,这是使用 PHP 编写的一个杰出的基于 Web 的 MySQL 管理工具。它有一个非常友好的用户界面,可以允许您处理各种复杂的任务,包括创建/删除/修改数据库和表,以及导出数据、管理关键字和处理 SQL 文件。phpMyAdmin 是一个杰出的工具,因为:
要在 phpMyAdmin 中创建一个数据库,请遵循下面的步骤:
hello_world
,并点击 Create。 现在您必须在数据库中创建一个表,并指定该表中应该包含哪些字段(字段与列类似)。让我们将自己的表称为“hello_table”,并让它只包含一个字段,其中保存记录“Hello world!”。在 Name 文本域中输入 hello_table
,并在 Fields 文本域中输入 1
。输入完之后,点击 Go。
现在应该执行创建数据库的最后一个步骤了:为列选择一个名字和一个数据类型定义。让我们选中“hello”并将其命名为“hello_column”;并在 Field 文本域中输入 hello_column
。
由于我们要在列中存储字符串“Hello World!”,因此其类型必须是 char,长度为 12 (字符串 "Hello World!" 的长度)。缺省类型 varchar 就足够了。在 Type 后面的 Length/Values 文本域中,输入 12
,表示最大长度是 12 个字符。不用关心该页面中其他域的设置,继续点击 Save。
如果一切正常,您应该会看到下面的界面:
现在让我们插入记录 "Hello World!"。点击 Insert 标签,并在 Value 文本域中输入 "Hello World!"。 Function 下拉列表在这个例子中可以保留不变。点击 Go,将 "Hello World!" 记录插入数据库中。
要确认记录已经成功插入数据库,请点击 Browse 标签。现在会显示 "hello world"。
现在后端软件已经启动并运行了,应该处理脚本部分了。我们将使用两个脚本,一个使用 Perl 编写,另外一个使用 PHP 编写。对于每个脚本来说,惟一的要求就是一个数据库连接、数据库访问权限以及在屏幕上输出检索到的行。
清单 1. 简单的数据库连接,以及在 PHP 中使用 PEAR::DB 进行检索
|
这两个脚本都会连接到数据库上,并检索一行数据,并将该行输出到屏幕上。PHP 的数据库访问是使用 PEAR::DB 完成的,这是一个方便的数据库抽象层,不管数据库是如何实现的,它都可以使用相同的数据库访问代码。不幸的是,XAMPP 中并没有包含一个用于 Perl 的数据库抽象层。
因此,现在我们已经做好了所需的一切。数据库已经启动并运行了,并且已经有了两个测试用的脚本。现在需要做的工作是将这些脚本放到正确的地方。让我们快速了解一下 XAMPP 是如何存放在硬盘上的,如 清单 2 所示。
我们现在感兴趣的目录是 /opt/lampp/htdocs/,也就是 Apache 的 Documents 目录。在 Web 站点的根目录中显示的任何 Web 页面和相关文件都位于这个目录中。由于我们现在能够看到 XAMPP 的 welcome 页面,因此这个目录中已经存在一些文件了。现在让我们快速了解一下这个目录的内容:(输入 ls /opt/lampp/htdocs
):
drwxr-xr-x 2 root root 4096 Jan 24 2003 apache
-rwxr-xr-x 1 nobody root 163 Oct 31 2003 index.html
drwxr-xr-x 2 nobody root 4096 Sep 12 21:54 webalizer
drwxr-xr-x 5 root root 4096 Jun 15 06:24 xampp
正如您可以看到的一样,这个目录中早已存在一些文件了。让我们在这个目录中建立一个自己的目录 hello_world ( mkdir hello_world
)来存放脚本。从现在开始,您就可以输入 localhost/hello_world
来访问 hello_world 目录中的所有文件了。现在,将这两个脚本保存到这个目录中。到此为止,所有一切都已经完成了!
要测试这个应用程序,首先切换到浏览器中,输入 localhost/hello_world
。您应该会看到下面的界面:
恭喜!您已经设置好 XAMPP 上的一个应用程序了。
|
XAMPP 的目标是一个开发环境。这种配置为程序员提供了一种对工具集没有任何限制的自由控制能力。作为自由的结果,缺省的 XAMPP 安装是非常不安全的。例如,有些操作几乎无需登录。
对于 0.9.5 以及更新版本的 XAMPP 来说,您可以运行下面的命令来增强安全性:
/opt/lampp/lampp security
此时会给出一些提示说明现有的不安全的地方,您可以选择是否修复这个问题。虽然这样可以使 XAMPP 安装更加安全,但是您仍然不应当在产品服务器中使用 XAMPP。清单 3 列出了安全性提示:
|
|
因此,假设您的 XAMPP 安装已经启动并运行了几周了,并向其中输入了很多数据,那么您就应该防范出现硬盘崩溃的风险。您需要做哪些备份工作呢?
使用 XAMPP 非常简单。将工作目录切换到 /opt/lampp ( cd /opt/lampp
) 中,并输入下面的命令:
./lampp backup
如果您已经设置了 MySQL 的 root 密码,那么在这个命令后面就要添加上 root 用户的密码。您应该会看到下面的内容:
Backing up databases...
Backing up configuration, log and htdocs files...
Calculating checksums...
Building final backup file...
Backup finished.
Take care of /opt/lampp/backup/xampp-backup-15-09-04.sh
要恢复以前的备份,请以 root 用户的身份运行下面的命令:
sh backupfilename
如果一切正常,您将看到下面的结果:
Checking integrity of files...
Restoring configuration, log and htdocs files...
Checking versions...
Installed: XAMPP 1.4.7
Backup from: XAMPP 1.4.7
Restoring MySQL databases...
Restoring MySQL user databases...
Backup complete. Have fun!
You may need to restart XAMPP to complete the restore.
重新启动 XAMPP ( cd /opt/lampp, ./lampp restart
),恢复的数据应该可用了。
|
虽然这种集成解决方案软件是否可以完全与 J2EE 竞争,尚需时日来进行验证,但是最近的发行版 PHP 5.0 (主要改进包括完全的面向对象的支持)与 MySQL 数据库的共同快速增长已经证明了它在开发人员之间越来越流行。这意味着像 XAMPP 这种开放源码中间件在低端软件市场上还是有一定的存活空间的。
Nils-Erik Frantzell 目前在位于圣克鲁斯的加州大学学习计算机科学。他的兴趣包括 Linux、Web 编程(尤其是 PHP)、网络、开源技术以及一些计算机硬件。他的业余时间用于饲养一些食肉性的鱼和欣赏电子音乐。您可以通过 [email protected] 与 Nils-Erik 联系。 |