PHP7连接Oracle及PDO_OCI的安装

        php通常是搭配Mysql使用,但也会有连接Oracle的需求。现在PHP的版本已经来到了7.2,网上PHP连接Oracle的参考文档早已过时,几乎找不到一篇可以顺利在PHP7环境下成功安装PDO_OCI的教程,所以我自己总结了一下:

        我的系统环境是RHEL/CentOS 7,PHP7.0.27

        首先从PHP的官方GitHub仓库下载对应的PHP版本源码,我下载的是7.1.13,下载完成后解压

1. 安装InstantClient

instantclient是oracle的连接数据库的简单客户端,从 这里 选择需要的版本下载,只需Basic和Devel两个rpm包。

# 安装
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm


#64位系统需要创建32位的软链接,这里可能是一个遗留bug,不然后面编译会出问题

ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client

接下来还要让系统能够找到oracle客户端的库文件,修改LD_LIBRARY_PATH

#在/etc/profile.d/下面新建oracle.sh文件

vi /etc/profile.d/oracle.sh


export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
执行source /etc/profile.d/oracle.sh使环境变量生效。

2. 安装OCI8

进入php源码中的oci8目录

cd php-src-php-7.1.13/ext/oci8
编译安装oci8扩展

phpize

./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib

make && make install

    如果再出现以下提示    如果执行phpize时提示Can't find PHP header in /usr/include/phpize,可能是你没有安装php-devel这个安装包。phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,phpize是属于php-devel的内容,所以只要运行yum install php-devel

yum install php-devel  #却出现以下提示

Error:php56w-commen conflicts with php-commen-5.3.3-46.el6_7.1.x86_64

you could try using --skip-broken to work around the problem

you could try running :rpm -Va --nofiles --nodigest

就说明仓库里默认的phpize和php版本不一致,所以安装与当前系统对应的php-devel就可以了

yum install 70w-devel

要启用oci8扩展,在/etc/php.d/下新建一个oci8.ini文件,内容:
最后出现Setting up Install Process就说明安装成功。

extension=oci8.so

验证安装成功

php -i | grep oci8

# 看到类似下面的内容则安装成功
/etc/php.d/oci8.ini,
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20

3. 安装PDO_OCI

进入php源码中的pdo_oci目录

cd php-src-php-7.1.13/ext/pdo_oci

编译安装pdo_oci扩展

phpize
./configure --with-pdo-oci=instantclient,/usr,11.2
make && make install

要启用这个扩展,在/etc/php.d/下新建一个pdo_oci.ini文件,内容:

extension=pdo_oci.so

验证是否安装成功

php -i | grep oci

# 看到类似下面的内容则安装成功
/etc/php.d/pdo_oci.ini,
PDO drivers => mysql, oci, sqlite
# 或
php -m

启动httpd4. 测试连

systemctl start httpd
systemctl enable httpd

测试

apache的默认路径在/var/www/html下,在这个目录新建一个test.php文件,然后写入以下内容

phpinfo();?>
在浏览器打开 http://服务器ip/test.php ,如果能够显示php信息,则说明已经php环境已经成功搭建;如果打不开,关闭防火墙

systemctl stop firewalld
如果还是失败,查看80端口是否被占用

netstat -apn | grep 80


























你可能感兴趣的:(PHP7连接Oracle及PDO_OCI的安装)