linux centos7 安裝oci8和pdo_oci擴展
一、基本環境
1、centos7_64+Apache/2.4.7+PHP5.3.27;
2、oracle11.2(遠程)
3、設置oracle11.2允許遠程訪問(屬於oracle設置的范疇)
4、設置防火牆允許訪問
5、以下步驟以root身份執行
二、安裝oci8擴展
1、到oracle官網下載: oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm和oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm(注:根據操作系統和數據庫版本選擇不同的版本) 2、安裝以上兩個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 以上的安裝路徑為: /usr/lib/oracle/11.2/client64/lib 和/usr/include/oracle/11.2/client64. 還可能用到以下幾條命令: rpm -qpl 可以查看rpm包會在哪些路徑安裝文件 rpm -qa | grep oracle //查看oracle是否安裝 rpm -qa //查看所有已安裝的人rpm包 rpm -e oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm //卸載已安裝的rpm包 rpm -ivh --force oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm //強制安裝rpm包 3、到php官網下載oci8-2.0.8.tgz(不能使用高版本,否則以下可能會報錯)並解壓為oci8-2.0.8文件夾 4、在oci8-2.0.8文件夾中執行 # phpize(此處為phpize命令的全路徑) # ./configure --with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib ----with-php-config=php-config(此處為php-config命令的完整路徑) # make && make install 執行成功后,界面會輸出oci8.so的完整路徑 5、在php.ini文件中添加 extension=oci8.so(此處應填寫oci8.so的完整路徑,此路徑在上條命令中輸出) 6、重啟php systemctl restart php-fpm.service
三、安裝pdo_oci擴展
先執行上述1、2步驟; 3、執行#vi /etc/ld.so.conf /usr/lib/oracle/11.2/client64/lib/ //加入此行,保存退出 4、執行 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 64位系統需要創建32位的軟鏈接(這里可能是一個遺留bug) 5、執行vi etc/profile 加入以下幾行 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" 6、執行 #source /etc/profile 7、執行 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 注:防止pdo_oci對oracle11支持不足 8、官網下載php-5.3.27.tar.gz,解壓后將其中的pdo_oci文件夾復制到php的擴展目錄中(如主目錄/ext/pdo中) 9、在“主目錄/ext/pdo”中執行: # phpize(此處為phpize命令的全路徑) # ./configure --with-pdo-oci=instantclient,/usr,11.2 --with-php-config=php-config(此處為php-config命令的完整路徑) [php7版本:./configure --with-pdo-oci=instantclient,/usr/lib/oracle/11.2/client64/lib --with-php-config=/opt/php7.2/bin/php-config ] # make && make install 執行成功后,界面會輸出pdo_oci.so的完整路徑 10、在php.ini文件中添加 extension=pdo_oci.so(此處應填寫pdo_oci.so的完整路徑,此路徑在上條命令中輸出) 11、重啟PHP system restart php-fpm.service
四、測試是否安裝成功
1、執行./php -i |grep oci(此處為php命令的全路徑),輸出如下證明成功: oci8 ...... PDO drivers => mysql, sqlite, sqlite2, oci 2、也可以使用php腳本測試 測試pdo_oci:$pdo= new PDO('oci:dbname=//oracle的ip地址:1521/數據庫名;charset=utf8',用戶名,密碼); 測試oci8:$conn = oci_connect(用戶名,密碼, oracle的ip地址:1521/數據庫名);