在你开始前
本文假定使用基于RPM的32位Linux系统。 提供的步骤已在Red Hat Enterprise Linux 4和SUSE Linux 9上完成。但是,总体思想可以在任何Linux发行版中传达。
安装前步骤
首先,您需要拥有Informix Dynamic Server和Informix软件开发套件。 如果您没有这些产品,则可以在Informix产品系列页面上找到它们。
大多数Linux发行版都预装了部分或全部LAIP组件。 通常,它们不是从源代码安装的,因此可能没有正确编译扩展名。为了删除这些组件,并且避免遇到RPM麻烦,必须首先以root用户身份登录:
su - root
然后,您可以查找系统上当前安装的所有软件包:
rpm -qa | grep -i apache
rpm -qa | grep -i httpd
rpm -qa | grep -i php
然后,您可以删除上述命令中找到的所有软件包:
rpm -e filename
现在,您应该已经可以使用“干净的” Linux发行版来安装和设置组件。
获取并解压缩所有应用程序的源代码
- 移至存储所有源代码的位置:
cd /usr/local/src
- 获取所需的组件:
wget http://www.php.net/distributions/php-5.1.2.tar.gz wget http://apache.osuosl.org/httpd/httpd-2.2.0.tar.gz wget http://www.pecl.php.net/get/PDO_INFORMIX-1.0.0.tgz
此安装过程中使用了以下版本的LAIP产品:
产品 | 版 |
---|---|
PHP | 5.1.2 |
Apache HTTP服务器 | 2.2.0 |
Informix动态服务器(IDS) | 10.00.UC4 |
Informix客户端软件开发套件(客户端SDK) | 2.90.UC4 |
Informix PHP数据对象(PDO) | 1.0.0 |
上述产品的不同版本可能需要不同的步骤集才能使设置正常运行。 给出的步骤是上述产品所独有的。 但是,可以跨版本遵循一般思想。
解压所有源代码
tar zxf httpd-2.2.0.tar.gz
tar zxf php-5.1.2.tar.gz
tar zxf PDO_INFORMIX-1.0.0.tgz
安装Informix和Client SDK
要将Informix安装到Linux环境中,请执行以下步骤:
- 检查您的操作系统是否需要任何修补程序。 您可以转到Informix Dynamic Server页面,查看是否需要任何修补程序。
- 创建Informix用户和组。 Informix用户充当Informix数据库的根帐户。 确保此帐户的安全性。 可以按以下步骤完成创建(其中xxxx是用户Informix的密码):
groupadd informix useradd -g informix -p xxxx -d /dev/null informix
- 创建安装目录。 缺省位置是/ opt / informix。 另外,最后两个命令是确保目录归Informix用户和组所有:
su informix mkdir /opt/informix chown informix.informix /opt/informix chown informix.informix /opt/informix
- 设置所需的所有环境变量。 INFORMIXDIR应该是您用于安装Informix的位置。 使用默认值的操作如下: Bourne Again shell(bash):
INFORMIXDIR=/opt/informix export INFORMIXDIR PATH=$PATH:$INFORMIXDIR/bin export PATH
要么
C shell(csh):setenv INFORMIXDIR /opt/informix setenv PATH ${PATH}:${INFORMIXDIR}/bin
- 使用给定的Informix tar文件提取Informix文件。 如果Informix Server和Client SDK的tar文件位于当前目录中,则将文件解压缩(如果该文件类似于IIF * .tar):
mv IIF*.tar /opt/informix cd /opt/informix su informix tar -xvf IIF*.tar
- 转至解压缩的文件并运行IDS的安装。 有三种安装IDS的方法。 默认为控制台方法。 还有图形和静音方法。 您可以选择适合自己需要的任何东西。 在此示例中使用控制台方法。 控制台方法可以如下运行:
./install_rpm -acceptlicense=yes
运行脚本后,只需按照屏幕上的说明完成Informix的安装。 确保使用/ opt / informix作为安装目录。 仅当您接受Informix许可证时,才应添加接受许可证标志。
- 将Client SDK tar文件解压缩到/ opt / informix。
mv client*.tar /opt/informix cd /opt/informix su informix tar -xvf client*.tar
- 运行安装脚本以安装客户端SDK。 运行脚本之后,只需按照屏幕上的说明完成Informix的Client SDK部分的安装:
./installclientsdk
配置Informix和Informix客户端SDK
- 创建启动和运行Informix服务器所需的环境文件。 将在主目录中创建一个.informix文件,其内容如下: Bourne Again shell(bash):
set INFORMIXDIR=/opt/informix set INFORMIXSQLHOSTS=/opt/informix/etc/sqlhosts set ONCONFIG=onconfig set INFORMIXSERVER=myserver set SERVERNUM=1 set PATH=$INFORMIXDIR/bin:.:$PATH
要么
C shell(csh):setenv INFORMIXDIR /opt/informix setenv INFORMIXSQLHOSTS /opt/informix/etc/sqlhosts setenv ONCONFIG onconfig setenv INFORMIXSERVER myserver setenv SERVERNUM 1 setenv PATH $INFORMIXDIR/bin:.:$PATH
- 将服务器添加到sqlhosts文件。 sqlhosts文件位于/ opt / informix / etc中。 您必须将上面在环境变量中给定的INFORMIXSERVER名称添加到sqlhosts文件中。 sqlhosts中添加的行应遵循以下格式:
dbservername nettype hostname servicename [options]
这是添加的内容:
myserver onsoctcp myserver port_alias
给定的端口也必须在您的系统上打开。 在此示例中,它是在/ etc / services文件中打开的。 这是添加到服务文件的行的示例:
port_alias 8201/tcp
- 创建onconfig文件。 onconfig文件必须位于/ opt / informix / etc目录中。 应该已经有一个名为onconfig.std的标准onconfig文件。 以下内容适合该示例的系统需求。 您可能需要添加额外的变量,或者可能不需要下面显示的所有变量。 onconfig文件包含以下内容:
DBSERVERNAME myserver DUMPDIR /tmp LOGDIR /opt/informix/logdir MSGPATH /opt/informix/logdir/online.log PHYSDBS rootdbs ROOTNAME rootdbs ROOTPATH /opt/informix/logdir/rootdbs ROOTSIZE 30000
DBSERVERNAME是指与此特定数据库服务器实例关联的唯一名称。 DUMPDIR指服务器在其中转储共享内存和消息的目录。 LOGDIR是IDS实例的日志目录。 MSGPATH是消息日志文件的完整路径名。 PHYSDBS是包含物理日志的dbspce的名称。 ROOTNAME是根数据库空间的名称。 ROOTPATH是根数据库空间的初始块的完整路径名。 ROOTSIZE是根数据库空间的初始块的大小。
- 添加上面指定的日志目录和根空间。 对于此示例中的设置,已完成以下操作:
su informix mkdir /opt/informix/logdir su informix chmod 777 /opt/informix/logdir cd /opt/informix/logdir su informix touch rootdbs su informix chmod 660 rootdbs su root chown informix.root rootdbs
- 确保一切正常。
- 尝试启动服务器:
cd /opt/informix/bin oninit -i
- 使用以下命令检查以确保其正确启动:
onstat -
- 如果看到
"shared memory not initialized for INFORMIXSERVER 'myserver'"
,则该设置无效。 但是,如果看到类似于"IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 00:00:07 -- 19508 Kbytes"
,则一切正常。如果以后要关闭服务器,则可以发出以下命令:
onmode -kuy
- 尝试启动服务器:
有关Informix Dynamic Server的任何问题,请参阅IBM Informix Dynamic Server v10.0信息中心以获取故障排除帮助。
安装和配置Apache
请按照以下步骤安装Apache,以支持动态加载的模块:
cd /usr/local/src/httpd-2.2.0/
./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so
make
make install
- 编辑http.conf文件以正确处理.php文件。 可以在/usr/local/apache/conf/httpd.conf中找到httpd.conf文件。 查找以下行:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps - 如果发现这些
#
从这些行的开头删除它们。 如果它们不在文件中,则添加不带#
的它们。 这使Apache能够正确处理和显示php文件。 - 您可以通过编辑/ usr / local / apache / conf中的httpd.conf文件来更全面地配置Apache服务器。 Internet上有很多有关此主题的文档。
安装和配置PHP
请按照以下步骤安装PHP:
- 将PDO_INFORMIX文件夹复制到PHP的ext目录中:
cd /usr/local/src/php-5.1.2/ext cp -R ../../PDO_INFORMIX-1.0.0 pdo_informix
- 使用PDO配置和制作PHP:
cd /usr/local/src/php-5.1.2 ./buildconf --force ./configure --with-apxs2=/usr/local/apache/bin/apxs \ --disable-debug \ --disable-ftp \ --disable-inline-optimization \ --disable-magic-quotes \ --disable-mbstring \ --enable-wddx=shared \ --enable-xml \ --with-dom \ --with-regex=system \ --with-xml \ --with-jpeg-dir=/usr/lib \ --with-zlib-dir=/usr/lib \ --with-zlib \ --without-pdo-sqlite \ --without-iconv \ --without-sqlite \ --enable-shared \ --enable-pdo \ --with-pdo-informix=/opt/informix make make install cp php.ini-dist /usr/local/lib/php.ini
- 现在,您可以查看PHP安装是否按计划进行。 您可以发出以下命令:
php -m
- 该命令的输出应同时包括PDO和pdo_informix模块。 如果不包括这些,则
buildconf
,configure
,make
或make install
命令不会按计划进行。可以选择在与PHP本身不同的时间配置pdo_informix。
- 您可以自己编译pdo_informix,但是它需要从PHP的安装位置进行phpize。 如果在配置或编译PHP时配置或编译了pdo_informix,则无需执行此步骤。
cd pdo_informix phpize ./configure make
- 将正确的扩展名添加到php.ini文件。 可在/usr/local/lib/php.ini中找到它。 可加载的扩展目录在php.ini文件中指定。 这是该行后最常见的:
; Directory in which the loadable extensions (modules) reside.
; Directory in which the loadable extensions (modules) reside.
本示例中使用的条目如下所示:
; Directory in which the loadable extensions (modules) reside. extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20050922/"
php.ini文件中需要进行的其他更改是PDO和pdo_informix扩展的定义。 它们位于php.ini中的“动态扩展”部分。 如果将它们创建为共享模块,则需要将这些模块复制到上述扩展目录中,并在php.ini文件中启用它们,如下所示:
extension=pdo.so
extension=pdo_informix.so
测试新的动态Web服务器
要测试新的动态Web服务器,请完成以下步骤:
- 启动Apache。 您需要做的是以下操作(再次以root用户身份):
/usr/local/apache/bin/apachectl start
打开您喜欢的浏览器,然后在地址栏中输入localhost 。 将显示默认的Apache起始页。 这确认Apache已启动。
- 确保PHP与Apache一起使用。 您需要编辑浏览器中显示的index.html文件。 这对应于您安装Apache的位置。 此示例使用的位置在这里:/usr/local/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是否正在运行,请执行以下操作:
ps -aef | grep oninit
如果找到任何进程,则Informix正在运行。 如果没有,请使用上面给出的命令启动Informix。 Informix使用的工具是dbaccess来创建或删除数据库,创建或删除表以及插入或删除数据。 您可以从以下位置运行dbaccess:
/opt/informix/bin/dbaccess
请记住要执行以下操作:
- 在sysuser数据库中添加需要访问'informix'.sysauth表的用户。
- 添加一个新的数据库和包含数据的表以测试服务器的设置。
如果您不熟悉dbaccess,则Internet上有文档。
- 检查以确保您PHP和PDO Informix设置正常运行。 您应该转到默认的Apache文档位置(/ usr / local / apache / htdocs)以添加一个test.php文件。 以下是test.php文件的内容(如下所述):
<?php $db = new PDO("informix:host=servername.domain.com; service=8201; database=test_db; server=testserver; protocol=onsoctcp; EnableScrollableCursors=1;", "testuser", "testpass"); 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数据库的连接字符串。 INFORMATIONIX:是启动连接字符串所必需的。 主机就是服务器主机名。 服务是为数据库打开的端口号(/ etc / services)。 数据库是您在上面创建的数据库的名称。 服务器是您先前创建的数据库实例的名称。 协议类型是您在/ etc / sqlhosts文件中输入的协议。 其余选项不言自明。 PDO对象的最后两个选项是用户名和密码。 确保已如上所述将用户添加到sysuser数据库。
当您打开test.php的网页时,您应该看到
Connection Established!
和Table Contents
然后是您添加到表格中的实体内容。
恭喜你! 您已准备好使用LAIP系统!
翻译自: https://www.ibm.com/developerworks/data/library/techarticle/dm-0606bombardier/index.html