本文将带您遍历安装、配置和测试一个 “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.msihttp://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.ziphttp://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:srcapacheUnpack php-5.1.2.tar.gz into C:srcphp
Unpack PDO_INFORMIX-1.0.0.tgz into C:srcpdo_informix
回页首
安装 Informix 和 Client SDK如果您已经将 IDS 安装在一台远程机器上,那么就只需要安装 Client SDK 了。可跳过下列 IDS 安装和设置步骤。
检查您的操作系统是否需要任何补丁,请参见 Informix 产品系列 页面,看是否需要任何补丁。
从给定的 Informix tar 文件解压出 Informix 文件。如果 Informix 服务器的 tar 文件已经在当前目录中,则可像下面这样解压文件(如果文件名类似于 IIF*.tar):
Unpack IIF*.tar to C:srcinformix
转到解压出的文件并运行 IDS 安装。运行 setup 后,按照屏幕指示即可完成 Informix 的安装。请确保全都采用默认选项,除非您有特定的需要,而且您知道更改默认设置不会对 WAIP 服务器的设置产生破坏。
从 C:srcinformix 运行 IDS 的 setup。
(仅在使用远程 IDS 的情况下才执行本步骤)解压 Client SDK tar 文件:
Unpack client*.tar to C:srccsdk
运行 setup 安装 Client SDK。运行 setup 之后,只要按照屏幕指示即可完成 Informix 的 Client SDK 部分的安装:
从 C:srccsdk 运行 Client SDK 的 setup。
回页首
配置 Informix 和 Informix Client SDKIDS 的大多数配置工作在安装过程中就可完成。但是,您应该创建服务器实例并尝试对其进行初始化,以检验配置是否正确。
进入 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 FilesIBMInformix)。
转到 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 一节。
从源代码编译 ApacheApache 有一个很好的网站介绍了如何进行此工作。请访问 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:srcapache)。
为发布版本运行 nmake 命令(输入 nmake /f Makefile.win _apacher),或者
为调试版本运行 nmake 命令(nmake /f Makefile.win _apached)。
在编译成功后,您需要安装 Apache:
打开一个命令提示符(Start > Run > cmd)。
转到 Apache 源目录(输入 cd C:srcapache)。
运行 nmake 命令安装发布版本(输入 nmake /f Makefile.win installr INSTDIR="C:wwwapache")
或者
运行 nmake 命令安装调试版本(输入 nmake /f Makefile.win installd INSTDIR="C:wwwapache")。
回页首
配置 Apache编辑 http.conf 文件以正确地处理 .php 文件。可在 C:wwwapacheconfhttpd.conf 或 C:Program FilesApache Software Foundationconfhttpd.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 FilesPHP。
创建一个 php.ini 文件:
Copy C:Program FilesPHPphp.ini-dist to C:WINDOWSphp.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 FilesPHPext"
其他需要在 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 FilesPHPext:
Copy php_pdo.dll to C:Program FilesPHPext
Copy php_pdo_informix.dll to C:Program FilesPHPext
经过以上步骤后,应该已完成安装和 PHP 设置。您现在可前进到 测试新的动态 Web 服务器 一节。
从源代码编译、安装和配置 PHPPHP 有一个很好的网站介绍了进行此工作。更多信息请参考 “PHP: Building from source”(php.net,2006 年 6月)。这些步骤的重要部分在下面进行了突出显示。
将 PDO_INFORMIX 文件夹从 C:srcPDO_INFOMRIX 拷贝到 PHP 的 ext 目录:
Copy C:srcpdo_informixPDO_INFORMIX-1.0.0 to C:srcphpextPDO_INFORMIX
在可以编译 PHP 之前,需要满足一些需求。您需要用到:
解压 win32 和 bindlib_w32 的源文件:
Extract win32build to C:srcwin32build
Extract bindlib_w32 to C:srcbindlib_w32
然后必须执行以下操作:
Copy C:srcwin32buildbinbison.simple to C:usrlocallibbison.simple
执行以下操作构建 resolv.lib:
转到 bindlib_w32 目录(例如,“cd C:srcbindlib_w32”)。
运行 VCVARS32.BAT 以设置开发变量(例如,“C:Program FilesMicrosoft Visual StudioVC98binVCVARS32.BAT”)。
运行 msdev 命令以构建发布版本(例如,“msdev bindlib.dsp /MAKE "bindlib - Win32 Release”),或者 运行 msdev 命令以构建调试版本(例如,“msdev bindlib.dsp /MAKE "bindlib - Win32 Debug”)。
把新的 resolv.lib 文件拷贝到合适的位置:
Copy C:srcbindlib_w32Releaseresolv.lib to C:srcwin32buildlibresolv.lib
Accept the overwriting of the old resolv.lib
在编译 PHP 之前,您或许要对一些文件重新命名以便编译工作能够正确进行。此操作因环境不同而异,因此要依据您所使用的系统进行适当的调整:
Rename C:srcapacheliblibapr-1.lib to C:srcapacheliblibapr.lib
Rename C:srcapacheliblibaprutil-1.li to C:srcapacheliblibaprutil.lib
利用 PDO_INFORMIX 配置和制作 PHP:
打开一个命令提示符(Start > Run > cmd)。
输入下列命令:
cd C:srcphp
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 FilesInformixClient-SDK",shared
--with-extra-includes="C:wwwapacheinclude"
--with-extra-libs="C:wwwapachelib"
nmake
现在,您可以看到 PHP 安装是否按预期的那样工作。输入下列命令:
此命令的输出应该包括 PDO 和 pdo_informix 模块。否则,接下来的 buildconf、configure、make 和 make install 等命令不能按预期工作。
配置 PHP 的最后一步是为 php.ini 文件添加正确的扩展名。可在 C:srcphpphp.ini 中找到该文件。可加载的扩展名目录是在 php.ini 文件中指定的。一般可在此行后找到该目录:; Directory in which the loadable extensions (modules) reside。本文使用的输入如下:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:wwwphpext"
还需要在 php.ini 文件中更改 PDO 扩展名的定义。可在 php.ini 文件中的 Dynamic Extensions 区段找到这一更改。您所需要添加的全部内容如下:
extension=php_pdo.dll
extension=php_pdo_informix.dll
创建一个 PHP 目录并把适当的文件移到该目录:
创建一个目录:C:wwwphp。
把 php.exe 和所有的 .dll 文件从 C:srcphpRelease_TS 拷贝到 C:wwwphp。
回页首
测试新的动态 Web 服务器如果 Apache 还没在运行,执行下列步骤启动 Apache:
打开一个命令提示符(Start > Run > cmd)。
转到 Apache 安装目录(cd C:wwwapache)。
转到 bin 文件夹(cd bin)。
运行 httpd.exe。
打开您喜欢的浏览器并在地址栏中输入 localhost。会显示默认的 Apache 启动页面,说明 Apache 已经启动了。
请确保 PHP 与 Apache 正常工作。您需要编辑显示在浏览器中的 index.html 文件。这对应于您安装 Apache 的位置。对于本文中使用的例子,位置是 C:wwwapachehtdocsindex.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 FilesIBMInformix)。
转到 bin 文件夹(cd bin)。
运行 dbaccess(dbaccess)。
然后执行以下步骤:
添加需要访问 sysuser 数据库中 ‘informix’.sysauth 表的用户。
添加一个新数据库和表,其中带有用来测试服务器的设置的数据。
用 Setnet32 中的 locale 将数据库位置信息与 dbaccess 中创建的数据库进行匹配。如果您不了解 dbaccess 的话,可参考 Internet 上的相关文档。
进行检查以确保 PHP 和 PDO_INFORMIX 设置正确工作。您应该转到默认的 Apache 文档位置(C:wwwapachehtdocs),添加一个 test.php 文件和这里需要的其他文件。下面是本文使用的 test.php 文件的内容(下面做了解释):
<?php
$db = new PDO("informix:DSN=myDSN", "user", "pass");
print "Connection Established!nn";
$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 系统已经准备就绪了。