热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Windows安装、配置Apache,Informix与PHP服务器环境

开始之前本文将带您遍历安装、配置和测试一个“WAIP”系统所需的步骤。WAIP是Windows、Apache、Informix和PHP的首字母大写组合。期望这些步骤能够帮助您轻松安装并设置一个非常强大的动态Web系统。本文假设使用WindowsXPPro(32位)系统。以下
开始之前

本文将带您遍历安装、配置和测试一个 “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):


echo "PHP and Apache are playing nicely!";
?>

当打开修改后的页面(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 文件的内容(下面做了解释):
$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 系统已经准备就绪了。


推荐阅读
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 解决UIScrollView自动偏移问题的方法
    本文介绍了一种有效的方法来解决在使用UIScrollView时出现的自动向下偏移的问题,通过调整特定的属性设置,可以确保滚动视图正常显示。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • Awk是一款功能强大的文本分析与处理工具,尤其在数据解析和报告生成方面表现突出。它通过读取由换行符分隔的记录,并按照指定的字段分隔符来划分和处理这些记录,从而实现复杂的数据操作。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • 最适合初学者的编程语言
    本文探讨了适合编程新手的最佳语言选择,包括Python、JavaScript等易于上手且功能强大的语言,以及如何通过有效的学习方法提高编程技能。 ... [详细]
author-avatar
超_级如新公司
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有