今天在centos上扩展php连接oracle数据库,遇到几个问题,特此备注一下
1、在csdn论坛发现一个朋友在make的时候,报一堆Error,和我的问题一样,原因是 php.ini 把oci8的扩展先不要打开。
2、到oracle的官网要下载两个文件。
oracle-instantclient-basic-10.2.0.5-1.i386.rpm
oracle-instantclient-devel-10.2.0.5-1.i386.rpm
rpm安装命令为rpm -ivh xxx.rpm
安装后,执行命令whereis oracle回显如下结果:
oracle: /usr/lib/oracle /usr/include/oracle /usr/share/oracle
说明oracle client已经安装到以上目录了,接着配置环境变量
(备注:我只是下了basic的rpm,结果在设置环境变量的时候,一直出现很多Error,
checking for unistd.h... yes
checking size of long int... 4
checking checking if we're on a 64-bit platform... no
checking Oracle Instant Client directory... /usr/lib/oracle/10.2.0.5/client/lib/
checking Oracle Instant Client SDK header directory... configure: error: Oracle Instant Client SDK header files not found
这个SDK就是devel的那个rpm也要安装。。。)
安装后就可以了。
3、设置环境变量:
/usr/local/php/bin/phpize CFLAGS="-I/usr/include/oracle/10.2.0.5/client/" CXXFLAGS="-I/usr/include/oracle/10.2.0.5/client/"
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/10.2.0.5/client/lib/
make
make install
4、成功后的信息如下:
[root@localhost oci8-1.4.10]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
[root@localhost oci8-1.4.10]# find / -name "oci8.so"
/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/oci8.so
/www/oci8-1.4.10/modules/oci8.so
/www/oci8-1.4.10/.libs/oci8.so
[root@localhost oci8-1.4.10]#
5、修改php.ini,打开oic8扩展
增加:extension = "oci8.so"
还有一个vi模式下 /oci 来搜索