安装 XAMPP 进行好并开发

原稿转自:http://www.ibm.com/developerworks/cn/linux/l-xampp/

Nils-Erik
Frantzell
(nfrantze@ucsc.edu)计算机科学系,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 简介

XAMPP 是一个功能健全的 AMPP (Apache、MySQL、PHP、Perl)软件包,这是
Linux 平台上足应用的几乎栽非商业 AMPP
中间件有。采用这种严谨的融会,XAMPP
可以运作任何程序:从个人主页到职能完善的产品站点(虽然这只有用于开发目的;出于安全着想,XAMPP
还免适应用在产品服务器上)。

XAMPP 实际上以偏下几单方面非常放光彩:

  • 容易安装及装置。
  • 富含众多卓有成效之软件包,可以简化诸如生成流量报告以及增速 PHP
    内容之类的职责。
  • 业已当 SUSE、Red Hat、Mandrake、Debian Linux 发行本和 Windows® 和
    Solaris 上开展了一体化的测试。

对于本文来说,我们用当 Mandrake Linux 10.0 上设置
XAMPP。现在咱们先是看望 XAMPP 中提供的缺省软件包。

主导的软件包

主干的软件包包括系统、编程和服务器软件:

  • Apache,著名的 Web 服务器
  • MySQL,一种典型、免费的开源数据库
  • PHP,一栽编程语言(在做本文时本也 4.3.8 和 5.0.1)
  • Perl,一种植编程语言
  • ProFTPD,一个 FTP 服务器
  • OpenSSL,可以支持安康法接字层

图片软件包

XAMPP 包括以下和图片有关的软件包:

  • GD,“Graphics Draw”库
  • libpng,官方的 PNG 参考实现库
  • libjpeg,官方的 JPEG 参考实现库
  • ncurses,字符图形库

数据库软件包

设无以下的数据库软件包,怎么还会为集成软件也?

  • gdbm,标准的 UNIX® dbm 库的 GNU 实现
  • SQLite,一个一定小之、无需外配置的 SQL 数据库引擎
  • FreeTDS,一个数据库,让 UNIX 和 Linux 程序可以看 Microsoft® SQL 和
    Sybase 数据库

XML
软件包

为了开发 XML 程序,XAMPP 应该包含以下软件包:

  • expat,一个 XML 解析器库
  • Salbotron,一个 XML 工具包
  • libxml,一个 XML C 解析器和 GNOME 工具确保

PHP
软件包

为开 PHP 程序,XAMPP 应该包括以下软件包:

  • PEAR,PHP 库
  • 一个 pdf 类,可以动用 PHP 生成动态的 PDF 文档
  • TURCK MMCache,一个 PHP 性能增强器

其他软件包

说到底,XAMPP 中含有了以下软件包来展示自己之强硬力量:

  • zlib,一个压缩库
  • mod_perl,在 Apache 中放置了一个千古的 Perl 解释器
  • gettext,一个家伙集,可以帮 GNU 软件包生成多语言的音讯
  • mcrypt,一个加密程序
  • Ming,一个 Flash (SWF) 输出库
  • Freetype2,一个软件前端引擎
  • IMAP C-Client,一个邮件编程 API

本深受咱们讨论一下安装 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 页面。

图 1. XAMPP welcome 页面
MySQL 1

点击左边导航栏中之 Status
链接,就可以看到必要的劳动都正确启动了。如果拥有的劳务都运作正常化,您便见面视下的页面:

图 2. Service status 页面
MySQL 2

恭喜!您现在曾经安装与装置好了一个完好的 AMPP
开发环境了。现在让咱们装一个简单的应用程序来显示一下哪用这种条件。

 


回页首

安一个简短的应用程序

假使动用 XAMPP
的为主特点,您需一个概括的应用程序。最好的应用程序是一个于后端使用数据库的次第;并使用一个相当简单的数据库,其中含了一个精心设计的说明。

测试数据库含一个单纯生一致排的表。让咱按照测试程序的(计算机)传统,设计在咱们的表中存放一漫长记录
“Hello World!”。我们拿下一个 Perl 和 一个 PHP
脚本来访问是数据库。这点儿单剧本还得看这个数据库,从中寻找这行记录,并拿其出口及屏幕及。

工具

我们的数据库将动用 phpMyAdmin 来创造及保管,这是运 PHP
编写的一个超人之因 Web 的 MySQL
管理工具。它发出一个老大要好之用户界面,可以允许而处理各种复杂的任务,包括创造/删除/修改数据库与阐发,以及导出数据、管理重要性字与处理
SQL 文件。phpMyAdmin 是一个杰出的工具,因为:

  • 她好辅助新家熟悉 MySQL,而无用用命令行接口来处理这些职责。
  • 她同意高档用户还快还爱地履简单的职责以及例行之天职。
  • 当你愿意吗某些用户授权访问数据库而不思量吃她们全然看 shell
    时,对于这种状态异常管用。

创造数据库

如若于 phpMyAdmin 中创造一个数据库,请按下面的步子:

  1. 转换到 XAMPP 的 start 页面 (localhost)。
  2. 在左侧导航栏的 Tools 下面选择 phpMyAdmin
  3. 在 phpMyAdmin 主页的 Create New Database 域中,输入
    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

假设一切正常,您应该会见到下的界面:

图 3. Hello World 数据库摘要
MySQL 3

今天于咱们插入记录 “Hello World!”。点击 Insert 标签,并在 Value
文本域中输入 “Hello World!”。 Function
下拉列表在这个例子中得以保留不换。点击 Go,将 “Hello World!”
记录插入数据库中。

如肯定记录都成功插入数据库,请点击 Browse 标签。现在会显示 “hello
world”。

脚本

本后端软件都启动并运行了,应该处理下论有的了。我们用下简单只剧本,一个利用
Perl 编写,另外一个采用 PHP
编写。对于每个脚本来说,惟一的渴求就是是一个数据库连接、数据库访问权限和以屏幕上输出检索到的实践。

清单 1. 简练的数据库连接,以及在 PHP 中采取
PEAR::DB 进行搜索

              

require_once 'DB.php'; // must be included in any script that uses PEAR::DB
// it is a huge security risk to store your database connection information
// in the same file as your code. We have done it here solely for the purpose
// of this example. Please store your database connection information in another
// file that is not in your document root directory and adequately protected.
// database connection information
$db_host    = "localhost";      // hostname of the database server
$db_user    = "root";           // database user's username
$db_pass    = "";                // database user's password, nothing by default
$db_name    = "hello_world";    // the name of the database to connect to
$db_type    = "mysql";          // the type of database server.
// your data source name string. This contains the connection
// information for your database.
$dsn = "$db_type://$db_user:$db_pass@$db_host/$db_name";
// creates a database connection object or a database error
// object based on the success of the database connection.
$db = DB::connect($dsn, TRUE);
// if an error was encountered, the script exits with an error message
if (DB::isError($db)) {
    die($db->getMessage());
}
// SQL query that you wish to use to query the database
$sql = "SELECT * FROM hello_table";
// query the database, store result in $result
$result = $db->query($sql);
// exits with an error message if the query was unsuccessful
if(DB::isError($result)){
         die($result->getMessage());
}
// fetch rows from the database until no more rows exist.
// output the "hello_column" field of each row to the screen.
// once no more rows exist, exit with an error message.
while($row = $result->fetchRow(DB_FETCHMODE_OBJECT)){
      if(DB::isError($row)){
                 die($row->getMessage());
        }
      print("<H1>$row->hello_column</H1>");
       $result->free();
}
$db->disconnect(); //disconnect from the database
      

 

眼看简单只本子还见面连续到数据库及,并找一行数,并以该行输出到屏幕上。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。您该会相下面的界面:

图 4. Hello World!
MySQL 4

恭贺!您曾安装好 XAMPP 上的一个应用程序了。

 


回页首

加强安全性

XAMPP
的目标是一个付出环境。这种布局为程序员提供了同一种植对工具集没有外限制的随机控制能力。作为自由之结果,缺省的
XAMPP 安装是蛮不安全之。例如,有些操作几乎无需登录。

对 0.9.5 以及更新版本的 XAMPP 来说,您可运作下面的一声令下来增长安全性:

/opt/lampp/lampp security

这时见面为有片提示说明现有的匪安全的地方,您可择是否修复这个问题。虽然这样可以假设
XAMPP 安装更为安全,但是若还是不该以活服务器被采用 XAMPP。清单 3
列有了安全性提示:

清单 3. XAMPP 中之安全性提示

              

XAMPP: Quick security check...
XAMPP: Your XAMPP pages are NOT secured by a password.
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Password protection active. Please use 'lampp' as user name!
XAMPP: MySQL is accessable via network.
XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] yes
XAMPP: Turned off.
XAMPP: Stopping MySQL...
XAMPP: Starting MySQL...
XAMPP: The MySQL/phpMyAdmin user pma has no password set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL pma password.
XAMPP: Setting phpMyAdmin's pma password to the new one.
XAMPP: MySQL has no root passwort set!!!
XAMPP: Do you want to set a password? [yes] yes
XAMPP: Write the password somewhere down to make sure you won't forget it!!!
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Setting new MySQL root password.
XAMPP: Setting phpMyAdmin's root password to the new one.
XAMPP: The FTP password is still set to 'lampp'.
XAMPP: Do you want to change the password? [yes] yes
XAMPP: Password:
XAMPP: Password (again):
XAMPP: Reload ProFTPD...
XAMPP: Done.
      

回页首

实践备份

故此,假要您的 XAMPP
安装都启动并运行了几乎圆了,并通往里面输入了成千上万数,那么你尽管该防止出现硬盘崩溃的高风险。您得做什么样备份工作吧?

行使 XAMPP 非常简单。将工作目录切换到 /opt/lampp ( cd /opt/lampp)
中,并输入下面MySQL的下令:

./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 这种开放源码中间件在低端软件市场及还是时有发生肯定的共处空间的。

参考资料

  • 您得参照本文在 developerWorks 全球站点及之
    英文原稿。
  • 从 Apache Friends 上下载
    XAMPP,这是一个非盈利组织,目标是增高 Apache Web
    服务器。该网站及出流行的 XAMPP 信息及批发本。
  • PHP
    简介
    (developerWorks,2000 年 12 月) 可以引导而入门 PHP
    脚本语言。当你读书这篇稿子时,只需要于搜索域中输入“PHP”,即可寻找 IBM
    提供的很多添加的 PHP 资源。
  • 再度优质编程的路
    系列文章 (developerWorks) 是如出一辙组美好之多如牛毛文章,可给您更加深刻地打听
    Perl 语言。要想询问有关 Perl 的更多内容,请找 developerWorks
    站点。
  • 将 PHP 应用程序连接至 Apache
    Derby
    (developerWorks,2004 年 9 月)和 运用 Apache Derby 开发 Perl
    应用程序
    (developerWorks,2004 年 10 月)这简单篇稿子是 PHP 和 Perl
    开发人员必读的文章。
  • phpMyAdmin 项目
    包含了很多灵光的信,并可下载者典型之因 Web 的 MySQL
    管理工具。
  • Practical Unix & Internet
    Security
    (O’Reilly
    & Associates,1996)
    是相同据有关系统安全性各个方面的佳绩参考书,内容涉嫌从用户管理到拟安全政策。
  • PHP.net
    提供了一个在线的不过搜索函数库,它于查找有关 PHP
    方法的详细信息和学语言构造出死十分的相助。
  • The PHP Extension and Application Repository
    (PEAR) 提供了有可以简化 PHP 编程的零件,包括充分流行的
    PEAR::DB。
  • 有关 MySQL 的帮助, MySQL reference
    manual
    中含有了有关这流行数据库各个方面的详细信息。
  • 请访问 Apache HTTP Server
    Project,可以找到有关 Web 的最为风靡 http
    服务器的风行版本与信息。
  • 在 developerWorks Linux
    专区
    中好找到更多啊 Linux 开发者准备的资源。
  • 从 developerWorks 的 Speed-start your Linux
    app
    专区下载运行为 Linux 之上的 IBM 中间件产品之免费测试版本,其中包
    WebSphere® Studio Application Developer、WebSphere Application
    Server、DB2® Universal Database、Tivoli® Access Manager 和 Tivoli
    Directory Server,并不过学习 how-to 文章和取技术支持。
  • 经过与 developerWorks
    blogs
    来参与 developerWorks 社区的工作。
  • 每当 Developer Bookstore 的 Linux 区域被置有关 Linux
    的打折书籍。

至于作者

MySQL 5

MySQL 6

Nils-Erik Frantzell
时在位于圣克鲁斯的加州大学学习电脑是。他的兴趣包括 Linux、Web
编程(尤其是
PHP)、网络、开源技术与部分计算机硬件。他的业余时间用于喂养有食肉性的鱼类与观赏电子音乐。您可以通过
nfrantze@ucsc.edu 与 Nils-Erik 联系。

网站地图xml地图