centos安裝php的oracle擴充套件
一.準備工作
本機已有環境為PHP,apache,mysql,需要連oracle資料庫,所以需要開啟oracle擴充套件。我們需要做的工作有:安裝oracle客戶端、pdo_oci擴充套件、oci8擴充套件
二.檔案下載
(1)oracle客戶端rpm包下載地址
下載如下兩個檔案(下載檔案需註冊哦):
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
(2)擴充套件檔案下載,有兩種方式,第一種是下載單獨的擴充套件檔案,一種是直接下載PHP原始碼,在ext資料夾中有對應的擴充套件資料夾,以下我們以第二種方式給大家介紹。
PDO_OCI-1.0.tgz Oracle Call Interface driver for PDO
oci8-1.4.5.tgz Extension for Oracle Database,allows you to access Oracle databases
下載你本機對應版本的PHP
三.安裝及配置oracle客戶端
1.安裝
[php] view plaincopy
#rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
#rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
以下幾條rpm相關命令供參考:
[php] view plaincopy
rpm -qa | grep oracle //檢視oracle是否安裝
rpm -qa //檢視所有已安裝的人rpm包
rpm -e oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm //解除安裝已安裝的rpm包
rpm -ivh --force oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm //強制安裝rpm包
2.配置
修改/etc/ld.so.conf 或在ld.so.conf.d資料夾下新增oracle-x86_64.conf檔案,寫入安裝oracle客戶端的lib路徑:
[php] view plaincopy
#vi /etc/ld.so.conf
/usr/lib/oracle/11.2/client64/lib/ //加入此行,儲存退出
或者
echo '/usr/lib/oracle/11.2/client64/lib/' > /etc/ld.so.conf.d/oracle-x86_64.conf
64位系統需要建立32位的軟連結(這裡可能是一個遺留bug,不然後面編譯會出問題)
[php] view plaincopy
ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client
ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
定義環境變數
[php] view plaincopy
vi etc/profile
加入以下幾行
[php] view plaincopy
export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
命令列輸入以下語句使環境配置立即生效
[php] view plaincopy
#source /etc/profile
四.安裝pdo_oci模組
1.準備工作
防止pdo_oci對oracle11支援不足(pdo_oci可能不支援oracle11g,需要做個軟連結成作為oracle10版本才能編譯過去):
[php] view plaincopy
ln -s /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1
ln -s /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1
2.安裝
進入對應的擴充套件資料夾,例如/php/ext/php_oci
然後開始安裝
[php] view plaincopy
#phpize
# ./configure --with-php-config=php-config --with-pdo-oci=instantclient,/usr,10.2.0.1
#make && make install
#ll /usr/lib64/php/modules/
可看到php_oci.so已在資料夾中
3.配置
有兩種方法,其一,直接在php.ini中開啟擴充套件,其二,在php.d資料夾中新增對應的ini檔案及內容
[php] view plaincopy
#vi /etc/php.ini
extension=pdo_oci.so //在php.ini中加入此行
或者直接在命令列輸入
echo 'extension=pdo_oci.so' > /etc/php.d/pdo_oci.ini
五.安裝oci8模組
1.安裝
進入對應的擴充套件資料夾,開始安裝
[php] view plaincopy
phpize
#./configure --with-php-config=php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib
#make && make install
#ll /usr/lib64/php/modules
可看到oci8.so已在資料夾中
2.配置
有兩種方法,其一,直接在php.ini中開啟擴充套件,其二,在php.d資料夾中新增對應的ini檔案及內容
[php] view plaincopy
#vi /etc/php.ini
extension=oci8.so //在php.ini中加入此行
或者直接在命令列輸入
echo 'extension=oci8.so' > /etc/php.d/oci8.ini
最後重啟apache即可。phpinfo()可看到,php_oci及oci8擴充套件均已成功開啟
六.錯誤及解決方案
1.checking for oci.h... configure: error: I'm too dumb to figure out where the include dir is in your Instant Client install
解決方法:檢查--with-oci8,--with-pdo-oci的路徑是否正確
2.configure: error: Oracle Instant Client SDK header files not found
解決方法:是否是sdk檔案未安裝,即rmp檔名中包含devel的檔案,確認是否安裝成功。
如果確定已安裝,可能是以下問題產生的,可能是你PHP的版本過低,我的PHP版本是PHP Version 5.1.6出現此問題之後,百思不得其解,各種查資料也找不到答案。
兩個解決方案:
第一,將你的PHP版本升級,至少升到>=5.2.6
第二,我前面說過,可以自行去下載擴充套件檔案,我下載了oci8 1.4.5之後安裝成功。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2334/viewspace-2809523/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CentOS 下安裝 PHP Swoole 擴充套件CentOSPHP套件
- CentOS安裝RabbitMQ及PHP擴充套件CentOSMQPHP套件
- PHP 擴充套件安裝PHP套件
- centos單獨安裝PHP的mysql和mysqli擴充套件CentOSPHPMySql套件
- 安裝PHP的memcache擴充套件PHP套件
- PHP安裝redis擴充套件PHPRedis套件
- php amqp擴充套件安裝PHPMQ套件
- (MAC) PHP擴充套件安裝MacPHP套件
- php mysql擴充套件安裝PHPMySql套件
- php 安裝yar擴充套件PHP套件
- php安裝openssl 擴充套件PHP套件
- php gmp擴充套件安裝PHP套件
- PHP opcache擴充套件安裝PHPopcache套件
- PHP安裝fastDFS擴充套件PHPAST套件
- php以及php擴充套件memcache 安裝PHP套件
- 安裝php擴充套件 ffmpeg-phpPHP套件
- Centos6下給PHP安裝Qconf擴充套件CentOSPHP套件
- centos安裝php缺失fileinfo.so擴充套件解決CentOSPHP套件
- centos7 yum安裝php5.6以及擴充套件CentOSPHP套件
- php7安裝redis擴充套件和memcache擴充套件PHPRedis套件
- docker PHP 安裝 Redis 擴充套件DockerPHPRedis套件
- PHP 安裝 yaconf 擴充套件PHP套件
- php 擴充套件安裝(隨筆)PHP套件
- PHP 安裝 amqp、rabbitmq 擴充套件PHPMQ套件
- php安裝filter擴充套件模組PHPFilter套件
- php擴充套件模組安裝-lampPHP套件LAMP
- 安裝PHP及Memcache擴充套件PHP套件
- 【PHP】php安裝bcmath擴充套件指令碼PHP套件指令碼
- 【PHP】PHP安裝擴充套件-mysqli.soPHP套件MySql
- PHP:php7.2.3 安裝pcntl 擴充套件PHP套件
- memcached安裝和php擴充套件memcache安裝PHP套件
- Centos環境下給PHP7.0安裝yaf擴充套件CentOSPHP套件
- CentOs環境下給PHP7.0安裝fileinfo擴充套件CentOSPHP套件
- redis的PHP擴充套件包安裝方法RedisPHP套件
- Linux 上安裝 PHP 擴充套件LinuxPHP套件
- laradock 中安裝 PHP 擴充套件PHP套件
- Homestead 安裝 PHP Redis 擴充套件PHPRedis套件
- PHP安裝ssh2擴充套件PHP套件