级别: 初级 Kellen F. Bombardier (kfbombar@us.ibm.com), 软件工程师, IBM
2006 年 9 月 07 日 学习如何安装、配置和测试 Windows®, Apache, Informix® 与 PHP (WAIP) 服务器。Windows、Apache、Informix 以及 PHP 共同形成一个非常强大且动态的 Web 服务器。
开始之前
本文将带您遍历安装、配置和测试一个 “WAIP” 系统所需的步骤。WAIP 是 Windows、Apache、Informix 和 PHP 的首字母大写组合。期望这些步骤能够帮助您轻松安装并设置一个非常强大的动态 Web 系统。
本文假设使用 Windows XP Pro(32 位)系统。以下所述步骤已在 XP Pro 上执行成功,但也有可能在其他的 Windows 版本上执行。
安装前的步骤
首先,您需要具备 Informix Dynamic Server (IDS) 和 Informix Software Development Kit (SDK)。如果您还没有这些产品,请参见 参考资料 一节并下载试用产品。
其次,您需要删除那些为安装 WAIP 服务器而必须删除的组件。为了删除这些组件,您首先必须是所使用计算机的管理员。
寻找下列当前可能已经安装在您系统上的软件包:
- Apache 或 Apache2
- PHP 或 PHP5
- Informix 或 Informix Client SDK
通过选择 Start > Control Panel > Add/Remove Programs,
删除所有上述软件包。
现在,您应该具备了一个 “干净” 的 Windows 环境,可以开始安装和设置组件了。
二进制文件安装或从源代码编译
您在设置 WAIP 服务器时遇到的第一个主要决策就是:是愿意从源代码编译所有组件,还是找到二进制文件并运行适当的安装。大多数区段除了包含 Informix 和 Informix Client SDK 区段之外,还包含二进制区段和源代码区段。请使用适当的区段。
获得并安装所需应用程序
您首先需要从 Web 上获得所需的应用程序。打开您喜欢的浏览器并下载所需的应用程序。如果您使用的是二进制文件,请获得以下应用程序:
http://apache.osuosl.org/httpd/binaries/win32/apache_2.2.2-win32-x86-no_ssl.msi
http://www.php.net/distributions/php-5.1.2-Win32.zip
http://pecl4win.php.net/download.php/ext/5_1/5.1.2/php_pdo.dll
http://pecl4win.php.net/download.php/ext/5_1/5.1.2/php_pdo_informix.dll
|
如果您是从源代码编译,请获得以下应用程序:
http://mirrors.isc.org/pub/apache/httpd/httpd-2.2.2-win32-src-rev2.zip
http://www.php.net/distributions/php-5.1.2.tar.gz
http://www.pecl.php.net/get/PDO_INFORMIX-1.0.0.tgz
|
在该设置过程中,使用了以下版本的 WAIP 产品:
| PHP | 5.1.2 | | Apache HTTP 服务器 | 2.2.2 | | IDS | 10.00.UC4 | | Informix Client Software Development Kit (Client SDK) | 2.90.UC4 | | Informix PHP Data Objects (PDO) | 1.0.0 |
以上产品的不同版本可能需要不同的安装步骤才可以正常工作。本文中的操作步骤特定于以上产品,但是不同版本之间遵循相同的基本思想。
解压所有源代码(仅在使用源代码设置的情况才完成这一步)
您可能会需要一个实用工具来解压所有的源代码(例如,使用 WinZip)。把所有的源代码解压到 C:\src(apache、php、pdo_informix)。
Unpack httpd-2.2.0-win32-src-rev2.zip into C:\src\apache
Unpack php-5.1.2.tar.gz into C:\src\php
Unpack PDO_INFORMIX-1.0.0.tgz into C:\src\pdo_informix
|
安装 Informix 和 Client SDK
如果您已经将 IDS 安装在一台远程机器上,那么就只需要安装 Client SDK 了。可跳过下列 IDS 安装和设置步骤。
- 检查您的操作系统是否需要任何补丁,请参见 Informix 产品系列 页面,看是否需要任何补丁。
- 从给定的 Informix tar 文件解压出 Informix 文件。如果 Informix 服务器的 tar 文件已经在当前目录中,则可像下面这样解压文件(如果文件名类似于 IIF*.tar):
Unpack IIF*.tar to C:\src\informix
|
-
转到解压出的文件并运行 IDS 安装。运行 setup 后,按照屏幕指示即可完成 Informix 的安装。请确保全都采用默认选项,除非您有特定的需要,而且您知道更改默认设置不会对 WAIP 服务器的设置产生破坏。
从 C:\src\informix 运行 IDS 的 setup。
-
(仅在使用远程 IDS 的情况下才执行本步骤)解压 Client SDK tar 文件:
Unpack client*.tar to C:\src\csdk
|
-
运行 setup 安装 Client SDK。运行 setup 之后,只要按照屏幕指示即可完成 Informix 的 Client SDK 部分的安装:
从 C:\src\csdk 运行 Client SDK 的 setup。
|
配置 Informix 和 Informix Client SDK
IDS 的大多数配置工作在安装过程中就可完成。但是,您应该创建服务器实例并尝试对其进行初始化,以检验配置是否正确。
进入 Server Instance Manager 创建服务器实例:
Start > All Programs > IBM Informix Dynamic Server 10 > Server Instance Manager
简单地按照 Server Instance Manager 提示的步骤创建一个新的实例。但是,您需要记住在设置 Client SDK 时输入的值。在设置的最后,选择 “Yes” 以初始化该实例。如果成功进行了初始化,则说明前面的设置操作是正确的。
执行以下步骤以检查服务器实例是否已创建好并正在运行:
- 打开一个命令提示符(Start > Run > cmd)。
- 转到 Informix 安装目录(cd C:\Program Files\IBM\Informix)。
- 转到 bin 文件夹(cd bin)。
- 运行 onstat 以检查服务器实例是否已创建好并且在线(onstat -)。
如果看到以下信息:shared memory not initialized for INFORMIXSERVER
'servername',则说明设置不能正确地工作。而如果看到以下信息:IBM Informix Dynamic Server Version 10.00.TC4 -- On-Line -- Up 00:00:07 -- 19508 Kbytes,则说明前面的安装设置是正确的,并正在工作。
如果您在 IDS 方面遇到任何问题,请访问
Informix Information Center
寻求解决问题的帮助。
现在您已经为配置 Client SDK 而准备就绪了。
- 建立从 Client SDK 到 IDS 的连接:
运行 Setnet32:Start > All Programs > IBM Informix Client-SDK 2.90。
- 确保 Encironment 选项卡中的 INFORMIXDIR 和 INFORMIXSERVER 变量是正确的。
- 确保 Server Information 和 Host Information 选项卡中的字段值与您在 Server Instance Manager 中所输入的一致。
- 最后,应该创建连接到 Informix 数据库时所需要的 Data Source Name (DSN):
- 运行 Data Sources:Start > Control Panel > Administrative Tools > Data Sources (ODBC)。
- 转到 System DSN 选项卡,单击 Add。
- 向下滚屏并单击 IBM INFORMIX 3.82 32 BIT 驱动程序。
- 在所有的选项卡中填写来自 IDS 实例的信息。
- 确保选中了 Environment 选项卡中的 Use Server Database Locale 选项。
通过以上 DSN 创建活动,您就有了一个连接到 Informix 数据库的合适途径。请记住 DSN 名称,以便稍后在 PHP 脚本中使用。
安装 Apache
如果您打算从二进制文件安装,请转到 从二进制文件安装 Apache 一节。否则,跳到 从源代码编译 Apache 一节。
从二进制文件安装 Apache
- 从二进制文件安装 Apache 的第一步是双击您早先从 Apache.org 下载的安装程序:运行 Apache 安装程序。
- 在安装过程中,保持所有默认设置不变,除非您清楚更改默认设置不会对 WAIP 服务器的设置带来破坏。
- 安装完成后启动 Apache 服务器,此时,您的 Apache 设置已经完成了。
现在您可以进入 配置 Apache 一节。
从源代码编译 Apache
Apache 有一个很好的网站介绍了如何进行此工作。请访问
Compiling Apache for Microsoft Windows 站点,获得完整的详细信息。那些步骤的重要部分在下面进行了突出显示。
本文中使用的所有编译都是利用 Visual C++ 6 完成的。您还需要 Microsoft 的 Platform SDK。我推荐使用的最新 Platform SDK 是 2003 年 2 月版。您还需要下载 awk.exe,并确保其在您的路径中。必须确保将 awk 文件命名为 awk.exe,以免下载的是 awk95.exe 或其他派生程序。
应该执行下列步骤以编译 Apache:
- 打开一个命令提示符(Start > Run > cmd)。
- 转到 Apache 源目录(输入命令
cd C:\src\apache)。
- 为发布版本运行 nmake 命令(输入
nmake /f Makefile.win _apacher),或者
为调试版本运行 nmake 命令(nmake /f Makefile.win _apached)。
在编译成功后,您需要安装 Apache:
- 打开一个命令提示符(Start > Run > cmd)。
- 转到 Apache 源目录(输入
cd C:\src\apache)。
- 运行 nmake 命令安装发布版本(输入
nmake /f Makefile.win installr INSTDIR="C:\www\apache")
或者
运行 nmake 命令安装调试版本(输入 nmake /f Makefile.win installd INSTDIR="C:\www\apache")。
配置 Apache
- 编辑 http.conf 文件以正确地处理 .php 文件。可在 C:\www\apache\conf\httpd.conf 或
C:\Program Files\Apache Software Foundation\conf\httpd.conf
中找到 httpd.conf 文件(取决您选择哪个安装选项)。
- 更改 php 模块目录(其位置取决于安装位置):
LoadModule php5_module "C:/www/php5/php5apache2.dll"
|
- 寻找下面两行:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
|
- 如果找到这些行,则删除它们前面的 #。如果文件中没有这些行,则添加不包含 # 的这些行。这样可以使 Apache 正确处理和显示 php 文件。
通过编辑 httpd.conf 文件,可以更加充分地配置 Apache 服务器。在 Internet 上有很多关于此类主题的参考文档。
安装和配置 PHP
如果您从二进制文件安装,则前进到 从二进制文件安装和配置 PHP。否则,跳到 从源代码编译、安装和配置 PHP。
从二进制文件安装和配置 PHP
- 解压早先从 PHP.net 下载的 PHP 文件。
将 PHP 文件解压到 C:\Program Files\PHP。
- 创建一个 php.ini 文件:
Copy C:\Program Files\PHP\php.ini-dist to C:\WINDOWS\php.ini
|
- 配置 PHP 的最后一步是为 php.ini 文件添加正确的扩展名。可加载的扩展名目录是在 php.ini 文件中指定的。该目录通常可在此行后找到:; Directory in which the loadable extensions (modules)
reside。本文使用的输入如下:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:\Program Files\PHP\ext" |
- 其他需要在 php.ini 文件进行的更改是 PDO 和 PDO_INFORMIX 扩展名的定义。这可在 php.ini 文件中的 Dynamic
Extensions 区段找到。您所需要添加的全部内容如下:
extension=php_pdo.dll
extension=php_pdo_informix.dll
|
- 把早先下载的 php_pdo.dll 和 php_pdo_informix.dll 文件拷贝到
C:\Program Files\PHP\ext:
Copy php_pdo.dll to C:\Program Files\PHP\ext\
Copy php_pdo_informix.dll to C:\Program Files\PHP\ext\
|
经过以上步骤后,应该已完成安装和 PHP 设置。您现在可前进到 测试新的动态 Web 服务器 一节。
从源代码编译、安装和配置 PHP
PHP 有一个很好的网站介绍了进行此工作。更多信息请参考 “PHP: Building from source”(php.net,2006 年 6月)。这些步骤的重要部分在下面进行了突出显示。
- 将 PDO_INFORMIX 文件夹从 C:\src\PDO_INFOMRIX 拷贝到 PHP 的 ext 目录:
Copy C:\src\pdo_informix\PDO_INFORMIX-1.0.0 to C:\src\php\ext\PDO_INFORMIX
|
在可以编译 PHP 之前,需要满足一些需求。您需要用到:
- 解压 win32 和 bindlib_w32 的源文件:
Extract win32build to C:\src\win32build
Extract bindlib_w32 to C:\src\bindlib_w32
|
- 然后必须执行以下操作:
Copy C:\src\win32build\bin\bison.simple to C:\usr\local\lib\bison.simple
|
- 执行以下操作构建 resolv.lib:
- 转到 bindlib_w32 目录(例如,“cd C:\src\bindlib_w32”)。
- 运行 VCVARS32.BAT 以设置开发变量(例如,“C:\Program Files\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT”)。
- 运行 msdev 命令以构建发布版本(例如,“msdev bindlib.dsp /MAKE "bindlib - Win32 Release”),或者
运行 msdev 命令以构建调试版本(例如,“msdev bindlib.dsp /MAKE "bindlib - Win32 Debug”)。
- 把新的 resolv.lib 文件拷贝到合适的位置:
Copy C:\src\bindlib_w32\Release\resolv.lib to C:\src\win32build\lib\resolv.lib
Accept the overwriting of the old resolv.lib
|
- 在编译 PHP 之前,您或许要对一些文件重新命名以便编译工作能够正确进行。此操作因环境不同而异,因此要依据您所使用的系统进行适当的调整:
Rename C:\src\apache\lib\libapr-1.lib to C:\src\apache\lib\libapr.lib
Rename C:\src\apache\lib\libaprutil-1.li to C:\src\apache\lib\libaprutil.lib
|
- 利用 PDO_INFORMIX 配置和制作 PHP:
- 打开一个命令提示符(Start > Run > cmd)。
- 输入下列命令:
cd C:\src\php
buildconf
cscript /nologo configure.js --disable-debug --disable-cgi --enable-apache2handler
--disable-ftp --disable-mbstring --with-xml
--enable-zlib --without-libxml --without-pdo-sqlite
--without-iconv --without-sqlite --enable-pdo=shared --without-gd
--with-pdo-informix="C:\Program Files\Informix\Client-SDK",shared
--with-extra-includes="C:\www\apache\include" --with-extra-libs="C:\www\apache\lib"
nmake
|
- 现在,您可以看到 PHP 安装是否按预期的那样工作。输入下列命令:
此命令的输出应该包括 PDO 和 pdo_informix 模块。否则,接下来的 buildconf、configure、make 和 make install 等命令不能按预期工作。
- 配置 PHP 的最后一步是为 php.ini 文件添加正确的扩展名。可在 C:\src\php\php.ini 中找到该文件。可加载的扩展名目录是在 php.ini 文件中指定的。一般可在此行后找到该目录:
; Directory in
which the loadable extensions (modules) reside。本文使用的输入如下:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:\www\php\ext"
|
- 还需要在 php.ini 文件中更改 PDO 扩展名的定义。可在 php.ini 文件中的 Dynamic
Extensions 区段找到这一更改。您所需要添加的全部内容如下:
extension=php_pdo.dll
extension=php_pdo_informix.dll
|
- 创建一个 PHP 目录并把适当的文件移到该目录:
- 创建一个目录:C:\www\php。
- 把 php.exe 和所有的 .dll 文件从 C:\src\php\Release_TS 拷贝到 C:\www\php。

 |

|
测试新的动态 Web 服务器
- 如果 Apache 还没在运行,执行下列步骤启动 Apache:
- 打开一个命令提示符(Start > Run > cmd)。
- 转到 Apache 安装目录(cd C:\www\apache)。
- 转到 bin 文件夹(cd bin)。
- 运行 httpd.exe。
- 打开您喜欢的浏览器并在地址栏中输入 localhost。会显示默认的 Apache 启动页面,说明 Apache 已经启动了。
- 请确保 PHP 与 Apache 正常工作。您需要编辑显示在浏览器中的 index.html 文件。这对应于您安装 Apache 的位置。对于本文中使用的例子,位置是 C:\www\apache\htdocs\index.html。把 index.html 文件中的内容替换为下列内容(命名为 index.php):
<html>
<body>
<?php
echo "PHP and Apache are playing nicely!";
?>
</body>
</html>
|
- 当打开修改后的页面(http://localhost/index.php),您应该可以看到
PHP and Apache are playing nicely!。如果您看到的是 PHP 代码本身,则说明您的 PHP 和 Apache 的安装或配置有缺陷。
- 确保 Informix 在运行(如果 Informix 服务器运行在一台单独的远程服务器上,那么您可以跳过此检查步骤)并且存在您可以查询的信息。要检查 Informix 是否在运行,请打开 Task Manager(按 Cntrl-Alt-Delete 并单击 Process 选项卡)并寻找 oninit 进程。
如果找到 oninit 进程,则说明 Informix 正在运行。否则,利用以上的命令启动 Informix。Informix 使用 dbaccess 工具来创建或删除数据库和表,以及插入或删除数据。您也可执行以下步骤来运行 dbaccess(如果 Informix 安装在本地):
- 打开一个命令提示符(Start > Run > cmd)。
- 转到 Informix 安装目录(cd C:\Program Files\IBM\Informix)。
- 转到 bin 文件夹(cd bin)。
- 运行 dbaccess(dbaccess)。
- 然后执行以下步骤:
- 添加需要访问 sysuser 数据库中 ‘informix’.sysauth 表的用户。
- 添加一个新数据库和表,其中带有用来测试服务器的设置的数据。
- 用 Setnet32 中的 locale 将数据库位置信息与 dbaccess 中创建的数据库进行匹配。如果您不了解 dbaccess 的话,可参考 Internet 上的相关文档。
- 进行检查以确保 PHP 和 PDO_INFORMIX 设置正确工作。您应该转到默认的 Apache 文档位置(C:\www\apache\htdocs),添加一个 test.php 文件和这里需要的其他文件。下面是本文使用的 test.php 文件的内容(下面做了解释):
<?php
$db = new PDO("informix:DSN=myDSN", "user", "pass");
print "Connection Established!\n\n";
$stmt = $db->query("select * from test_table");
$res = $stmt->fetch( PDO::FETCH_BOTH );
$rows = $res[0];
echo "Table contents: $rows.\n";
?>
|
连接串中的变量满足系统要求。选择变量以及相应的值以符合您的系统和环境。第一行是 Informix 数据库的连接串。informix: 需要用来启动连接串。DSN 名称是您在创建 DSN 时指定的名称。
当打开网页 test.php 时,您应该看到 Connection Established! 和 Table Contents,后面是您添加到表中的实体内容。
恭喜!您现在的 WAIP 系统已经准备就绪了。
参考资料 学习
获得产品和技术
讨论
关于作者  | 
|  | Kellen Bombardier 是 IBM 的一名软件工程师及 Information Management 团队的一名开发人员。 |
对本文的评价
|