2016已经过去,2017新规划,新目标!

开放源码软件之一:Apache Friends 中的 XAMPP。

linux运维 Txun 426℃ 0评论

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 for Linux 5.5.37, 5.6.23 & 7.0.8

#tar xvfz xampp-linux-1.4.7.tar.gz -C /opt

#cd /opt/lampp

#./lampp start

打开一个浏览器并在地址栏中输入 http://localhost,并按回车键。此时浏览器会被重定向到 XAMPP 的 welcome 页面。

安装一个简单的应用程序

创建数据库

要在 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。

现在让我们插入记录 “Hello World!”。点击 Insert 标签,并在 Value文本域中输入 “Hello World!”。 Function 下拉列表在这个例子中可以保留不变。点击 Go,将 “Hello World!” 记录插入数据库中。

要确认记录已经成功插入数据库,请点击 Browse 标签。现在会显示 “hello world”。

脚本

现在后端软件已经启动并运行了,应该处理脚本部分了。我们将使用两个脚本,一个使用 Perl 编写,另外一个使用 PHP 编写。对于每个脚本来说,惟一的要求就是一个数据库连接、数据库访问权限以及在屏幕上输出检索到的行。

简单的数据库连接,以及在 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("
$row->hello_column
"); $result->free(); }
$db->disconnect(); //disconnect from the database

这两个脚本都会连接到数据库上,并检索一行数据,并将该行输出到屏幕上。PHP 的数据库访问是使用 PEAR::DB 完成的,这是一个方便的数据库抽象层,不管数据库是如何实现的,它都可以使用相同的数据库访问代码。不幸的是,XAMPP 中并没有包含一个用于 Perl 的数据库抽象层。

存放脚本
我们现在感兴趣的目录是 /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。您应该会看到下面的界面:

hello_world!恭喜!您已经设置好 XAMPP 上的一个应用程序了。

声明:文章摘直网络总结!

转载请注明:T讯脚印 » 开放源码软件之一:Apache Friends 中的 XAMPP。

喜欢 (9)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. 都是大神级的文章 :smile:
    我兜里有糖2016-08-05 13:12 回复
    • Txun
      吼吼~~ 这篇是摘自网络总结!
      Txun2016-08-05 13:13 回复
  2. Txun
    XAMPP官网网站下载:https://www.apachefriends.org/download.html
    Txun2016-08-04 16:31 回复