配置支持informix和pdo_informix的apache的php

目的:

由于业务需要(老的php连接informix程序和新版本的openadmin),需配置PHP同时支持informix和pdo_informix(使用PECL (PHP Extension Community Library))。

环境:

操作系统:rhel as 5u8
网页服务器:apache2.2.22
PHP版本:5.2.17 (选用此版本的原因是openadmin对php 5.3.x支持不够)

相关软件包:

httpd-2.2.22.tar.gz (www.apache.org)
php-5.2.17.tar.gz (www.php.net)
IBM Informix CSDK (www.ibm.com/informix/downloads.html ,openadmin需要3.50以上版)
php-5.2.0_informix.tgz (从php-5.2.0中分离出来的--with-informix连接源码)
PDO_INFORMIX-1.2.7.tgz (http://pecl.php.net/package/PDO_INFORMIX)

附加软件库(视需要增加,库文件的安装使用系统自带,可能需要从源或者光盘安装)
zlib-devel
curl-devel
freetype-devel
soap-devel
openssl-devel

建立用户apache2,并设置密码

root# useradd -d /opt/apache2 -m -s /bin/bash apache2  
root# groupadd informix  
root# useradd -g informix -d /opt/informix -m -s /bin/bash informix  # (安装csdk需要informix用户)  

1. informix csdk的安装

csdk安装于/opt/apache2/csdk目录下(示例中使用此目录),安装过程略。

2. apache的安装(httpd-2.2.22) --好多2的版本,汗~

配置用户apache2的环境 .bash_profile,内容如下:

INFORMIXDIR=/opt/apache2/csdk
INFORMIXSERVER=ids_online_net
PATH=$HOME/httpd/bin:$HOME/php/bin:$INFORMIXDIR/bin:$PATH

export INFORMIXDIR INFORMIXSERVER PATH

使apache2用户环境生效。
解压缩httpd-2.2.22.tar.gz,使用编译安装方式安装apache2

apache2@rhel58 ~$  tar -zxvf httpd-2.22.tar.gz
apache2@rhel58 httpd-2.2.22$  ./configure --prefix=/opt/apache2/httpd \
--enable-so \
--enable-track-vars \
--enable-mods-shared=all \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-rewrite \
--enable-cgi \
--with-zlib
apache2@rhel58 httpd-2.2.22$ make
apache2@rhel58 httpd-2.2.22$ make install

配置httpd/conf下的httpd.conf,配置使用的端口号,即完成apache2的安装。

apache2@rhel58 conf$  vi httpd.conf
#Listen 12.34.56.78:80
Listen 8080
#ServerName 中使用服务器IP加上端口号(示例IP为192.168.80.58)
ServerName 192.168.80.58:8080

测试apache2运行

apache2@rhel58 $ apachectl start

检查运行 apache2% ps -ef | grep httpd
应有httpd进程在运行。
同时使用浏览器访问 http://192.168.80.58:8080 ,应有显示 It works!
停止apache2

apache2@rhel58 $  apachectl stop

3. PHP的安装配置(php-5.2.17)

同样使用用户apache2编译安装的方式

apache2@rhel58 $ tar -zxvf php-5.2.17.tar.gz
apache2@rhel58 php-5.2.17$ ./configure --prefix=/opt/apache2/php \
--with-apxs2=/opt/apache2/httpd/bin/apxs \
--enable-fastcgi \
--with-zlib \
--with-curl \
--with-freetype-dir \
--enable-ftp \
--enable-zip \
--enable-soap \
--with-gd \
--with-openssl \
--enable-sockets
apache2@rhel58 php-5.2.17$ make
apache2@rhel58 php-5.2.17$ make install

配置php.ini包含扩展
复制php-5.2.17目录下的php.ini-dist文件到~/php/lib/目录下为php.ini,并修改以下内容

    include_path = ".:/opt/apache2/php/lib/php"
    extension_dir = "/opt/apache2/php/lib/php/extensions/ no-debug-non-zts-20060613”

配置httpd.conf增加对php5的支持
模块中增加

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .html

完成以上,即完成php的配置,再次启动apache,测试对php5的支持

apache2@rhel58 $ apachectl start

在~/httpd/htdocs目录下编写测试文件testphp.php,内容如下:

    <?php phpinfo(); ?>

在浏览器上浏览http://192.168.80.58:8080/testphp.php
能正常显示php的信息,此时并未包含informix和pdo_informix项。

4. php支持informix和pdo_informix

php通过PECL (PHP Extension Community Library)支持informix和pdo_informix。
将informix和pdo_informix编译成库文件

解压PDO_INFORMIX-1.2.7.tgz

apache2@rhel58 $ tar -zxvf PDO_INFORMIX-1.2.7.tgz

使用phpize扩展PDO_INFORMIX,使之生成可编译安装的代码

apache2@rhel58 PDO_INFORMIX-1.2.7 $ phpize

然后进行编译成pdo_informix.so库文件(环境中应有INFORMIXDIR项)

apache2@rhel58 PDO_INFORMIX-1.2.7$ ./configure \
--prefix=/opt/apache2/php/lib/php/extensions/no-debug-non-zts-20060613 \
--with-php-config=/opt/apache2/php/bin/php-config \
--with-pdo-informix

注:指定的安装目录为php-config输出的extension-dir,指定连接php-config的目录

apache2@ rhel58 PDO_INFORMIX-1.2.7$ make
apache2@ rhel58 PDO_INFORMIX-1.2.7$ make install

完成后在/opt/apache2/php/lib/php/extensions/no-debug-non-zts-20060613下生成pdo_informix.so库文件,同样的方式编译informix.so

解压php-5.2.0_informix.tgz

apache2@rhel58 $ tar -zxvf php-5.2.0_informix.tgz

使用phpize扩展informix,使之生成可编译安装的代码

apache2@rhel58 php-5.2.0_informix$ phpize

然后进行编译成informix.so库文件

apache2@rhel58 php-5.2.0_informix$ ./configure \
--prefix=/opt/apache2/php/lib/php/extensions/no-debug-non-zts-20060613 \
--with-php-config=/opt/apache2/php/bin/php-config \
--with-informix

注:指定的安装目录为php-config输出的extension-dir,指定连接php-config的目录

apache2@rhel58 php-5.2.0_informix$ make
apache2@rhel58 php-5.2.0_informix$ make install

完成后在/opt/apache2/php/lib/php/extensions/no-debug-non-zts-20060613下生成informix.so库文件

配置php.ini以扩展informix.so和pdo_informix.so
在第一个;extension= 前增加

extension=informix.so
extension=pdo_informix.so

再次重启apache服务,在浏览器上浏览http://192.168.80.58:8080/testphp.php
应能正常显示php的信息,此时应包含informix和pdo_informix项。
请输入图片描述
附件:php_informix(pdo).zip 含php-5.2.0_informix和pdo_informix-1.2.7

标签: none

添加新评论