因为要在 CentOS 用 PHP 操作 Oracle 数据库,要安装新的 PHP 扩展 oci8 。
关于安装 PHP 扩展,以前总以为要重新编译 PHP,今天查阅大量资料发现原来可以像apache模块一样动态扩展。今天就以 oci8 举例。
一、进入要安装的扩展的源码目录(没有就到官方下载源代码)
# cd /root/php-5.5.35/ext/oci8
运行 phpize ,如果不知道 phpize 在哪个目录,可以运行 # which phpize 命令
![](https://i-blog.csdnimg.cn/blog_migrate/84d89dee741bb264e000a8341fa1976d.jpeg)
# /usr/bin/phpize # 这一步可能会出现以下错误
![](https://i-blog.csdnimg.cn/blog_migrate/4eeb80145eb8185299941b3fd6c416f0.png)
按照字面的意思,可能是你没安装 php-devel 这个扩展包。
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,phpize 是属于php-devel的内容,所以只要运行yum install php-devel 就行
# yum install php-devel # 却出现以下提示
# yum install php-devel # 却出现以下提示
![](https://i-blog.csdnimg.cn/blog_migrate/3edfc7c5aada7e36b0c1255855f506bf.png)
这说明仓库里默认的 phpize 和 PHP 版本不一致。从下面的命令可以看出:php-devel 版本是 5.3.3 。这就需要我们重新安装 phpize 。
![](https://i-blog.csdnimg.cn/blog_migrate/a298902b68c8527809a95114666f0f04.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/2bfce17f6c7308f1d73bdb2ffe010c8c.jpeg)
安装与当前 PHP 版本一致的 php-devel 。PHP 版本可以通过 php -v 查看。
![](https://i-blog.csdnimg.cn/blog_migrate/ffd65b2cb0664d4bd65bfe3e6474e0e3.jpeg)
所以安装与当前系统 PHP 对应的 php-devel 就可以了。运行 yum install php55w-devel 出现以下信息,安装成功。
![](https://i-blog.csdnimg.cn/blog_migrate/60d127d5ad5e46564bf6071a73204e68.jpeg)
二、运行 /usr/bin/phpize 出现以下信息,说明可以了。
![](https://i-blog.csdnimg.cn/blog_migrate/df588245e1fb46aa7d4fed9b49bbb06c.jpeg)
# ./configure --with-php-config=/usr/bin/php-config
# make
# make install
安装完后会有这样的东西,Installing shared extensions: /usr/lib64/php/modules 。说明系统已经默认把 oci8.so 模块安装在 /usr/lib64/php/modules 目录中了。
![](https://i-blog.csdnimg.cn/blog_migrate/ee0160e04b36c8e74d17246407f8e9ee.jpeg)
三,修改php.ini
# vi /etc/php.ini
![](https://i-blog.csdnimg.cn/blog_migrate/cbc0fd2962018cbfa56425f5dee3575a.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/4a7397ff3aaa9be18c2c27efde468ca8.jpeg)
关于PHP扩展,可以通过 phpinfo(); 来查看。
![](https://i-blog.csdnimg.cn/blog_migrate/80e1793dff67c59911ab9e0c5356a229.jpeg)
四、重启 Apache
![](https://i-blog.csdnimg.cn/blog_migrate/55d0902ba5ba374a4e8e6881cbe93eca.jpeg)