blogger

    blogger
  • hot log

  • comment

    twitter

    • 空间续费,加上ssl连接。。

      2018-11-22 01:04

    • 12.10.xC6出来时候碰到"Could not determine encryption mode from page zero",竟果然是BUG!http://www-01.ibm.com/support/docview.wss?rs=630&uid=swg21973408

      2015-12-21 20:15

    • 空间已经转移到新加坡,希望会好一些。

      2015-11-16 14:34

    • 增加新域名liaosnet.cc,与liaosnet.com同指向。

      2015-10-09 15:25

    • 空间迁移到香港。或许速度会快一点。。

      2014-02-13 20:10

    • More»

    blog sort

    links

    record

    banner

    配置支持informix和pdo_informix的apache的php

    暗夜星空's Memory from Apr 4 , 2012 at 17:25 PM , under Category:IFX/GBase
    目的:
    由于业务需要(老的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的支持
    在<IfModule mime_module> 模块中增加
    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

    Post a comment:

    Your email address will not be published. Required fields are marked﹡