oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm
2、安装Oracle即时客户端程序包
rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm
echo "/usr/lib/oracle/11.1/client/lib/" > /etc/ld.so.conf.d/oracle_client.conf
/sbin/ldconfig
3、安装OCI8 PHP扩展(使用PHP自带的OCI8,假设PHP程序安装在/usr/local/php/)
yum install libaio
wget http://pecl.php.net/get/oci8-1.3.5.tgz
tar zxvf oci8-1.3.5.tgz
cd oci8-1.3.5/
/usr/local/php/bin/phpize
CFLAGS="-I/usr/include/oracle/11.1/client/"
CXXFLAGS="-I/usr/include/oracle/11.1/client/"
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=/usr/lib/oracle/11.1/client/
make
make install
4、修改PHP配置文件(/usr/local/php/etc/php.ini)
在extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"后增加一行:
extension = "oci8.so"
5、重启PHP
6、创建一个phpinfo.php文件(内容如下)并通过Web访问,如果有“oci8”这一项,则表明安装成功。
phpinfo();
?>
(1).
/usr/local/soft/oci8-1.3.5/oci8.c:3082: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'php_oci_ping_init'
make: *** [oci8.lo]
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.1/client/lib/
(2).
[root@localhost etc]# ulimit -SHn 65535
[root@localhost etc]# /usr/local/php/sbin/php-fpm restart
Shutting down php_fpm . done
Starting php_fpm PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/oci8.so' - /usr/lib/oracle/11.1/client/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied in Unknown on line 0
done
原来不是安装的问题,是linux下面自带的SELinux全称是Security Enhanced Linux在作怪,于是关掉它就ok了
[root@localhost etc]#
[root@localhost etc]# /usr/sbin/setenforce 0
使用php -m命令可以查看php是否已经装载了oci8模块
[root@localhost etc]#php -m | grep oci
oci8