...

® Ubuntu Linux Express-C

by user

on
Category: Documents
2

views

Report

Comments

Transcript

® Ubuntu Linux Express-C
®
IBM® DB2® for Linux®, UNIX®, and Windows®
最佳实践
在 Ubuntu Linux 上部署 IBM DB2
Express-C 和 PHP
Craig Tobias
软件工程师
IBM 加拿大实验室
Farzana Anwar
DB2 信息开发人员
IBM 加拿大实验室
发布日期:2011 年 12 月
目录
执行摘要 ................................................................................................... 3
简介 ........................................................................................................... 4
DB2 Express-C 服务器需求 ................................................................... 6
准备操作系统 ............................................................................................ 7
更新软件存储库 ........................................................................................ 7
设置 Apache 和 PHP ................................................................................ 8
设置 DB2 Express-C ................................................................................. 9
集成 PHP 和 DB2 Express-C .................................................................. 10
测试 PHP 到 DB2 的连接 ........................................................................ 11
最佳实践.................................................................................................... 13
结束语 ....................................................................................................... 14
参考资料.................................................................................................... 15
公告 ........................................................................................................... 17
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
2 /18
执行摘要
本文旨在提供有关在 Ubuntu Linux 操作系统 (Ubuntu) 上安装和配置 IBM DB2 Express-C
软件 (DB2 Express-C)、PHP Hypertext Preprocessor 和 Apache HTTP Server 的详细方
法。
在本文中,您将使用流行的 Advanced Packaging Tool (APT) 包管理系统来下载、安装
和配置必要的软件组件。APT 是管理 Ubuntu 上的软件安装的推荐系统,它大大简化了
软件包管理的所有方面。
本文介绍如何安装具有内置 PHP5 支持的 Apache 2 HTTP Server。文中介绍了针对 PHP
的 ibm_db2 扩展的安装。您可以使用 PEAR pecl 实用程序下载和重新编译 PHP 模块,
以启用对 ibm_db2 PECL 扩展的支持。
本文详细介绍了 DB2 Express-C 9.7 Fix Pack 4 的下载和安装。具体说明包括默认 DB2 实例
的设置和供测试使用的样例数据库的创建。本文还提供了样例 PHP 脚本,以测试与 Web 服
务器的连接并从样例数据库检索数据。
完成本文中的所有步骤后,您将拥有一个全功能的 PHP Web 应用服务器,它使用 DB2
Express-C 作为后端数据服务器。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
3 /18
简介
您可以部署使用 PHP 编程语言的 IBM DB2 数据库服务器以及 Apache HTTP Server 来开
发和提供动态 Web 页面。此最佳实践文章将提供有关在 Ubuntu 操作系统上安装和配置
IBM DB2 Express-C 以及 Apache HTTP Server 和 PHP 的说明。
IBM DB2 Express-C 是基于 DB2 for Linux, UNIX, and Windows 的成熟核心技术,但是
可供免费下载、使用和重新分发。DB2 Express-C 非常简单、灵活、强大且可靠。它是小
型企业、开发人员、教师和学生的理想选择。DB2 Express-C 提供了以下功能:
•
支持 Linux、Windows、Solaris 和 Mac 操作系统。
•
有效管理关系和 XML 数据。
•
自助管理功能和自动性能优化
•
为构建和部署各种使用关系数据库数据的网站和应用程序提供稳固基础。您可以
使用 PHP、C/C++、Java™、.NET® 、Ruby on Rails、Python 和其他编程语言开
发网站和应用程序。
•
与其他 DB2 版本实现全面的互操作性。
•
一个可选的低成本产品,包含更高的资源限制、24x7 IBM 客户支持,以及其他特
性(如高可用性集群和复制等)。
Ubuntu 操作系统是如今市场上最流行,发展最快的开源操作系统之一。此操作系统可
供组织和个人在服务器、台式机、笔记本和上网本中使用。
PHP Hypertext Preprocessor 是一种集成的编程语言,主要用于开发 Web 应用程序。由
于对性能、便携性和易用性的关注,PHP 成为一种流行的 Web 应用程序开发语言。
Apache HTTP Server 提供了安全、有效、可扩展的 HTTP 服务,所有的服务均遵守最新
的 HTTP 标准。自 1996 年 4 月以来,Apache HTTP Server 已成为互联网上最流行的开源
Web 服务器,并由 Apache HTTP Server Project 提供维护。
与 DB2 Express-C 一样,您可以免费获取和部署 Ubuntu 操作系统、PHP 和 Apache
HTTP Server。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
4 /18
互联网上的众多网站均使用了 PHP 和 Apache Server。在 Ubuntu 操作系统上向 PHP 和
Apache Server 添加 DB2 Express-C,可为构建动态、数据驱动的站点和应用程序带来一
种强大的技术组合。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
5 /18
DB2 Express-C 服务器需求
软件需求
在本文中,使用了以下软件栈来部署数据库驱动的动态网页:
•
DB2 Express-C Version 9.7 Fix Pack 4
•
PHP 5
•
Ubuntu 10.04 Long Term Support (LTS)
•
Apache HTTP Server Version 2.0
DB2 Express-C 仅支持 Ubuntu 操作系统的 LTS 版本。
硬件需求
您可以在具有任意数量处理器和内存量的任意大小的系统上运行 DB2 Express-C。但是,
DB2 Express-C 限制了总资源利用率,如下所示:
•
处理器:2 核
•
内存:2 GB
磁盘需求
DB2 Express-C 需要的磁盘空间取决于您选择的安装类型和所拥有的文件系统类型。
DB2 Setup 向导提供的大小估算值基于您在典型、精简或自定义安装期间选择的组件。
记住为通信产品和数据库等其他软件提供磁盘空间。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
6 /18
内存需求
内存需求受数据库系统的大小和复杂性、数据库活动的范围,以及访问系统的客户端数量
的影响。在最低限度下,一个 DB2 数据库系统需要 256 MB RAM。对于只运行一个 DB2
产品和 DB2 GUI 工具的系统,需要至少 512 MB RAM。但是,建议使用 1 GB RAM,以改
进性能。这些需求不包含针对您系统上运行的其他软件的任何其他内存需求。
必须为 DB2 数据库服务器启用换页(也称为交换)功能。大部分系统其合理的最小交换
或换页空间应为 RAM 的 25% - 50%。您可能需要更多的交换或换页空间,以防内存过量
使用。
准备操作系统
开始之前,请确保您运行的是 Ubuntu 10.04 LTS(长期支持)。要下载和安装 Ubuntu
10.04 LTS,请访问 Ubuntu 网站 http://www.ubuntu.com/download/server/download。
按照步骤下载该软件,创建一个 CD 或可引导的 U 盘,然后开始安装。Ubuntu 安装程序
将指导您执行整个安装过程。
更新软件存储库
Advanced Packaging Tool (APT) 包管理系统将用于下载和安装 DB2 Express-C、Apache
以及关联的 PHP 库和工具。
要确保所有包均可供使用,可向 /etc/apt/sources.list 文件添加一个 Canonical
Partner Repository for Ubuntu,使用最新的包列表更新存储库。Canonical Partner
Repository for Ubuntu 包含 DB2 Express-C 包。
1.
添加 Canonical Partner Repository:
编辑 /etc/apt/sources.list 文件:
sudo vi /etc/apt/sources.list
确保以下行存在于文件中,并且没有被注释掉:
deb http://archive.canonical.com/ubuntu lucid partner
deb-src http://archive.canonical.com/ubuntu lucid partner
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
7 /18
注释使用井号 (#) 字符表示。要取消注释行,可删除此字符。如果这些行不存在,
则请将它们添加到文件中的任何位置。
2.
要使用最新的包列表更新存储库,执行以下命令:
sudo apt-get update
更新可能需要几分钟。更新完成后,APT 实用程序即可访问安装和配置 DB2 Express-C 与
Apache 和 PHP 所需的最新包。
设置 Apache 和 PHP
使用下面的步骤安装具有 PHP 支持的 Apache HTTP 服务器。如果 Apache 和 PHP 已在
您系统上运行,则跳过本节。
1.
通过执行 apt-get 命令下载和安装 Apache 和 PHP:
sudo apt-get install apache2
sudo apt-get install php5
2.
执行下面的命令重新启动 Apache HTTP Server:
sudo /etc/init.d/apache2 restart
只有重新启动后,Apache HTTP Server 才能加载 php5 Apache 模块。php5 Apache 模块是在网页中
执行嵌入式 PHP 脚本所需要的。
3.
通过在 Web 浏览器中打开您 Web 服务器的主机名或 IP 地址,确认 Apache HTTP
Server 有效。如果服务器有效,通常会显示一个“It Works”页面。否则,将显示
一条错误消息。
4.
使用一个简单的 PHP 脚本确认 PHP 有效:
a.
将以下 PHP 脚本内容复制到 /var/www/index.php 文件中。如果该文件不存
在,则创建它。Web 内容(也称为 DocumentRoot)的默认位置为 /var/www/
目录。您需要使用根访问权限在 /var/www 中创建和写入文件。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
8 /18
index.php
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo “PHP Works!!!” ?>
</body>
</html>
b. 删除或重命名 /var/www/ 路径中的任何 index.html 或 index.htm 文件,以便使用 index.php
作为默认网页。
c.
刷新浏览器窗口。如果 PHP 有效,它会显示“PHP Works!!!”。
设置 DB2 Express-C
使用 APT 实用程序下载和安装 DB2 Express-C。然后,创建 SAMPLE 数据库,使用一个 SQL 查询测试连
接。
1. 使用 APT 包管理器下载、安装和配置附带最新修复包的 DB2 Express-C Version
9.7。DB2 Version 9.7 Fix Pack 4 是撰写本文时最新的产品。
执行下列命令以下载和安装 DB2 Express-C:
sudo apt-get install db2exc
此命令创建默认的 DB2 数据库用户 db2inst1 并启动 DB2 服务器。
2.
验证 DB2 Express-C 的安装:
a.
登录到 db2inst1 帐户:
sudo su db2inst1
b.
执行以下命令来创建 SAMPLE 数据库:
db2sampl
c.
激活您的数据库,以便应用程序无需等待数据库管理器启动数据库:
db2 activate db sample
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
9 /18
d. 连接到数据库,并执行一条简单的 SELECT 语句:
db2 connect to SAMPLE
db2 "SELECT * FROM EMP"
如果 DB2 Express-C 已正确安装和配置,SELECT 语句会从 EMP 表返回一个结果集。
3.
设置 db2inst1 密码,以便 PHP 能够连接到 SAMPLE 数据库:
a.
以根用户身份登录:
sudo su
b.
通过执行以下命令并在提示时输入新密码,以更改 db2inst1 密码。
passwd db2inst1
c.
退出根帐户:
exit
集成 PHP 和 DB2 Express-C
您必须配置 PHP,以便它能够与 DB2 Express-C 通信。ibm_db2 PECL 扩展支持 PHP 使用 DB2 Call Level
Interface (DB2 CLI) 连接到一个 DB2 Express-C 数据库。在使用 ibm_db2 PECL 扩展之前,您必须安装
PHP PEAR 软件。PEAR 提供了 pecl 实用程序,需要该实用程序才能下载和安装诸如 ibm_db2 的 PECL
扩展。
1.
执行下列 apt-get 命令来下载 PHP PEAR 软件,包括 pecl 实用程序:
sudo apt-get install php-pear
2. 要让 PHP 加载 ibm_db2 PECL 扩展,pecl 实用程序需要使用 ibm_db2 支持重新编译 PHP。这需要
在安装 ibm_db2 PECL 之前安装 php5-dev 包。
通过执行以下命令,在安装 ibm_db2 PECL 扩展之前安装 php5-dev 模块:
sudo apt-get install php5-dev
3. 安装 ibm_db2 PECL 扩展:
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
10 /18
sudo pecl install ibm_db2
系统会提示您输入 DB2 数据库服务器安装目录。对于本文中执行的安装,该目录为
/home/db2inst1/sqllib。针对您的 DB2 数据库实例,将其替换为合适的目录。输入目录并按回车
键继续。PHP 现在已使用 ibm_db2 进行重新编译。
4. 在 /etc/php5/apache2/conf.d 目录中,创建一个名为 ibm_db2.ini 的文件。需要此文件,
Apache 才能加载 ibm_db2 PECL 扩展。必需具有根用户权限才能写入此文件。
将以下行添加到该文件中并保存更改:
extension=ibm_db2.so
5. 要使更改生效,执行以下命令重新启动 Apache Web 服务器:
sudo /etc/init.d/apache2 restart
有关 ibm_db2 PECL 扩展的详细信息,包括详细的配置信息和连接 DB2 Express-C 数据库的 API 完整列
表,请参阅下列网站的 ibm_db2 在线文档:http://ca.php.net/ibm_db2。
测试 PHP 到 DB2 的连接
要验证配置,可以使用一个简单的 PHP 应用程序,该应用程序使用 ibm_db2 PECL 扩展库连接 DB2
SAMPLE 数据库。
1.
以根用户身份,在 /var/www 目录中创建 testdb2.php 文件。
sudo vi /var/www/testdb2.php
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
11 /18
2. 将以下 PHP 脚本的内容复制到 /var/www/testdb2.php 文件中,更新该文件以与
您的 SAMPLE 数据库的用户 ID 和密码匹配:
<head><title>DB2 and PHP Sample</title></head>
<body>
<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'db2inst1';
$conn = db2_connect($database, $user, $password);
if ($conn) {
echo "<h2>Employee Names</h2>\n";
$sql = "SELECT * FROM DB2INST1.EMP";
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
print("<table>\n");
print("<tr><th>First</th><th>Middle</th><th>Last</th></tr>");
while ($row = db2_fetch_array($stmt)) {
print "\t<tr><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td></tr>\n";
}
print "</table>\n";
db2_close($conn);
}
else {
echo "Connection failed.";
}
?>
</body>
</html>
3.
在 Web 浏览器中访问这个新文件:
http://localhost/testdb2.php
如果连接成功,将显示来自 SAMPLE 数据库的 EMP 表的员工列表。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
12 /18
最佳实践
•
DB2 Express-C 仅支持 Ubuntu 操作系统的 LTS 版本
• 使用 Advanced Packaging Tool (APT) 安装和配置 PHP 5、Apache
HTTP Server 和 DB2 Express-C。
•
将 Canonical Partner Repository 添加到 /etc/apt/sources.list 配置
文件中。
•
使用 apt-get 更新命令刷新存储库列表中的包。
•
激活数据库以消除花在数据库初始化上的任何应用程序时间。
•
使用 PEAR PECL 实用程序下载和安装 ibm_db2 PECL 扩展。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
13 /18
结束语
在运行 Ubuntu Linux<reg/> 操作系统的系统上结合 IBM<reg/> DB2<reg/> Express-C 的强
大功能与 Apache HTTP Server 和 PHP 编程语言,能够提供一个强大、灵活且可靠的应用
程序开发平台。此平台是小型企业、开发人员、教师和学生的理想选择,因为软件组件可
供免费下载和使用。
通过执行本文中介绍的任务,您在 Ubuntu 操作系统上成功安装了 IBM DB2 Express-C、
PHP 和 Apache HTTP Server。您现在可以开始为您的网站开发和部署数据驱动的动态内容
了。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
14 /18
参考资料
有关快速准备和运行这些产品的更多信息,请参阅以下相关的参考资料。这些参考资料
包含有关安装和配置 DB2 Express-C、Ubuntu、PHP 和 Apache 的补充信息。
•
DB2 最佳实践:http://www.ibm.com/developerworks/data/bestpractices/
•
DB2 Express-C:http://www-01.ibm.com/software/data/db2/express/
•
DB2 V9.7 信息中心:http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp
•
Ubuntu:http://www.ubuntu.com/
•
Ubuntu 10.04:https://help.ubuntu.com/10.04/index.html
•
PHP Hypertext Preprocessor:http://www.php.net/
•
Apache HTTP Server:http://projects.apache.org/projects/http_server.html
•
ibm_db2 PECL 扩展:http://pecl.php.net/package/ibm_db2
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
15 /18
贡献者
Rahul Priyadarshi
系统软件工程师
IBM 印度软件实验室
Ambrish Bhargava
软件开发人员
IBM 印度软件实验室
Deepen Manek
DB2 质量保证经理
IBM 加拿大实验室
Serge Boivin
DB2 信息开发人员
IBM 加拿大实验室
Shakeb Shere
DB2 支持分析师
IBM 加拿大实验室
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
16 /18
公告
本信息是针对在美国提供的产品和服务而开发的。
IBM 可能未在其他国家/地区提供本文中介绍的产品、服务或功能。请咨询您当地的 IBM 销售代表,获
取有关您所在区域目前可用的产品和服务的信息。对 IBM 产品、程序或服务的任何引用不代表或暗示
仅可使用该 IBM 产品、程序或服务。可使用任何不侵犯 IBM 知识产权且具有类似功能的产品、程序或
服务。但是,评估和验证任何非 IBM 产品、程序或服务的操作是用户自己的责任。
IBM 可能拥有涉及本文中介绍的主题的专利或专利申请。拥有本文不代表向您授予这些专利的任何许
可。您可以以书面形式将许可咨询发送到:
IBM Director of Licensing
IBM Corporation North
Castle Drive Armonk,
NY 10504-1785
U.S.A.
本段内容不适用于英国或这些规定与其本地法律不符的任何其他国家/地区:国际商业机器公司“按原
样”提供本文,不提供任何明示或暗示的担保,包括但不限于对非侵权性、适销性或特定用途的适用
性的暗示担保。一些国家不允许在某些交易中对明示或暗示的担保免除责任,因此本条款可能不适合
您。
在不限制上述免责声明的前提下,对于与本文中提供的任何信息或建议的准确性、可靠性或可服务性相
关的内容,或者使用该信息或遵循此处提供的任何建议可能带来的任何结果,IBM 不提供任何担保或表
示。本文中包含的信息未进行任何正式 IBM 测试并按原样分发。对本信息的使用或此处的任何建议或技
术的实现是客户自己的责任,取决于客户评估它们并将它们整合到客户的操作环境中的能力。尽管 IBM
在特定的条件下对每项内容执行了准确性检查,但不保证在其他环境中会获得相同或类似的结果。任何
尝试针对自己的环境调整这些技术的人风险自负。
本文和此处包含的信息应该尽可能地与本文中探讨的 IBM 产品一起使用。
本信息可能包含技术错误或录入错误。此处的信息会定期更改;这些更改会合并到出版物的新版本
中。IBM 随时可能对本文中描述的产品和/或程序进行改进和/或更改,恕不另行通知。
本信息中对非 IBM 网站的任何引用仅供参考,不以任何方式用作对这些网站的认可。这些网站上
的材料不是本 IBM 产品的材料的一部分,使用这些网站时风险自负。
IBM 可以以它认为合适且不会为您带来任何责任的任何方式使用或分发您提供的信息。
此处包含的任何性能数据都是在受控环境中确定的。因此,在其他操作环境中获得结果可能有很大出
入。一些度量结果可能是在开发级系统中获得的,不保证这些度量结果会在普通系统上保持相同。此
外,一些度量结果可能是通过推断获得的。实际结果可能有所不同。本文的用户应针对他们的具体环
境验证合适的数据。
与非 IBM 产品相关的信息是从这些产品的提供商、他们发布的公告或其他公共可用来源获得的。
IBM 未测试这些产品,无法确认与非 IBM 产品相关的性能、兼容性或其他
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
17/18
任何声明的准确性。有关非 IBM 产品的功能的问题应提交给这些产品的提供商。
关于 IBM 未来发展方向或打算的声明仅代表 IBM 的发展目标,如有变更或撤销,恕不另行通知。
本信息包含日常业务操作中使用的数据和报告的示例。为了尽可能完整地演示它们,示例中提供了一
些个人、公司、品牌和产品的名称。所有这些名称均是虚构的,如与实际商业企业使用的名称和地址
有任何雷同,纯属巧合。
版权许可:© 版权所有 IBM Corporation 2011。保留所有权利。
本信息包含源语言形式的示例应用程序,演示了在各种操作平台上的编程技术。为了开发、使用、推广
或分发符合操作平台应用编程接口(样例程序正是为之而编写)的应用程序,您可以以任何形式复制、
修改和分发这些样例程序,无需向 IBM 付费。这些示例未在所有条件下进行全面测试。因此,IBM 不能
保证或暗示这些程序的可靠性、可服务性或功能。
商标
IBM、IBM 徽标和 ibm.com 是国际商业机器公司在美国和/或其他国家/地区的商标或注册商标。如
果这些和其他 IBM 商标词汇在本信息中首次出现时标注了商标符号(? 或 ?),这些符号表示 IBM
在本信息发布之际在美国的注册商标或普通法规定的商标。这些商标也可能是其他国家/地区的注册
商标或约定俗成的商标。可在网络上获取 IBM 商标的最新列表,请查看
www.ibm.com/legal/copytrade.shtml 上的“Copyright and trademark information”部
分。
Windows 是 Microsoft Corporation 在美国和/或其他国家/地区的商标。
UNIX 是 The Open Group 在美国和其他国家/地区的注册商标。
Linux 是 Linus Torvalds 在美国和/或其他国家/地区的注册商标。
其他公司、产品或服务名称可能是其他公司的商标或服务标志。
最佳实践:在 Ubuntu Linux 上部署 IBM DB2 Express-C 和 PHP
17/18
Fly UP