配置支持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