PHP516 用phpize增加擴充套件PDO_OCI和OCI8
環境:centos5.5、PHP5.1.6、oracle10.2.0.5 客戶端
1、從oracle官網下載oracle客戶端包
oracle-instantclient-basic-10.2.0.5-1.i386.rpm
oracle-instantclient-devel-10.2.0.5-1.i386.rpm
oracle-instantclient-sqlplus-10.2.0.5-1.i386.rpm
2、從官網下載PHP5.1.6的安裝包,要下有帶有原始碼的:php-5.1.6.tar.gz
3、安裝oracle客戶端
rpm -ivh oracle-instantclient*
4、修改/etc/ld.so.conf檔案,新增:/usr/lib/oracle/10.2.0.5/client/lib/,這個需要和你自己的配置相關。
5、修改/etc/profile檔案,最後加入如下內容:
export ORACLE_HOME=/usr/lib/oracle/10.2.0.5/client/
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.5/client:$LD_LIBRARY_PATH
export NLS_LANG="AMERICAN_AMERICA.US7ASCII" //具體字符集,請檢視你的oracle服務端sql
儲存後,執行命令,使其起效:
source /etc/profile
6、安裝模組,要使用原始碼安裝方式,原始碼位置在php-5.1.6.tar.gz解壓縮出來的資料夾裡面的ext裡面。
7、安裝pdo_oci
1)進入資料夾
# cd php-5.1.6/ext/pdo_oci/
2) 用phpize來擴充套件,資料夾內執行: phpize
[root@jinniu-test3 pdo_oci]# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
3) 編譯安裝
# ./configure --with-php-config=/usr/bin/php-config --with-pdo-oci=instantclient,/usr,10.2.0.5
# make && make install
這是靜態編譯方式,儘量使用這個方式來,如果不加後面--with-pdo-oci=instantclient,/usr,10.2.0.5,應該是動態方式,動態方式好像有時候會出錯,安裝之後,識別不到SO檔案。
8、安裝OCI8
基本一樣,進入php5.1.6/oci8/資料夾,phpize命令,編譯安裝
# ./configure --with-php-config=/usr/bin/php-config --with-oci8=instantclient,/usr,10.2.0.5
# make && make install
同樣要採用靜態編譯,要不然可能出錯。
9、到此基本安裝就算完成了,後面就是如何啟用的問題,我出問題,主要出在這裡。
PHP對模組的啟用,應該是有兩種方式,一是PHP.INI中增加,二是在/etc/php.d/資料夾下增加INI檔案。這兩種啟用的方式,具體是那個引數配置的,我不知道。
推薦辦法是,先確定安裝沒有出錯,全部是使用靜態編譯的辦法,然後現在PHP.INI檔案中,增加
extension=oci8.so
extension=pdo_oci.so
然後使用php -v命令來檢測配置檔案是否正確,如果出錯,表示無法載入,那麼可能要使用第二種配置方式:
在/etc/php.d/資料夾下增加特定的INI檔案。
啟用OCI8,增加oci8.ini,內容是extension=oci8.so。
啟用pdo_oci,增加pdo_oci.ini,內容是extension=pdo_oci.so。
然後再用php -v來檢測,如果沒有報錯,說明正確了,然後重啟HTTPD服務,service httpd restart 。
10、說明,OCI8和PDO_OCI這個編譯過程,是可以重複進行的,如果已經安裝了,沒有成功,可以直接進行再次安裝,不需要解除安裝過程,安裝過程會覆蓋之前安裝的檔案。
11、新建test.php:
$dbconn=OCILogon("system","manager","(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=遠端資料庫IP地址)(PORT = 1521))(CONNECT_DATA =(SID=遠端資料庫全域性名)))");
if($dbconn!=false)
{
echo "連線成功";
if(OCILogOff($dbconn)==true)
{
echo "關閉連線成功!";
}
}
else
{
echo "連線失敗";
}
?>
用瀏覽器開啟test.php,結果為連線成功關閉連線成功!。說明連線oracle成功。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9606200/viewspace-1435659/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用 phpize 安裝 openssl 擴充套件PHP套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- VSCode擴充套件應用VSCode套件
- PHP 擴充套件安裝。解決 Homestead6.1.0 裡沒有 phpize 的問題PHP套件
- Laravel 遷移增加表備註擴充套件方法Laravel套件
- Vue.js 元件複用和擴充套件之道Vue.js元件套件
- plain framework的實際應用和擴充套件AIFramework套件
- 乾貨丨如何水平擴充套件和垂直擴充套件DolphinDB叢集?套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- laravel框架應用和composer擴充套件包開發Laravel框架套件
- SQL_Postgresql-一些擴充套件和應用SQL套件
- easyui應用(四)--- easyui擴充套件UI套件
- 並查集擴充套件應用並查集套件
- Bundler和Minifier Visual Studio擴充套件Nifi套件
- 安裝Swoole框架和擴充套件框架套件
- Ray:用於擴充套件和分發Python和ML應用的框架套件Python框架
- 擴充套件工具套件
- Sanic 擴充套件套件
- Mybatis擴充套件MyBatis套件
- SpringMVC 擴充套件SpringMVC套件
- ORACLE 擴充套件Oracle套件
- 使用Kotlin擴充套件函式擴充套件Spring Data案例Kotlin套件函式Spring
- JMeter 擴充套件開發:擴充套件 TCP 取樣器JMeter套件TCP
- Airflow 中文文件:用Dask擴充套件AI套件
- 聊聊Spring擴充套件點BeanPostProcessor和BeanFactoryPostProcessorSpring套件Bean
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- iOS 通知擴充套件iOS套件
- swift擴充套件ExtensionsSwift套件
- 擴充套件BSGS/exBSGS套件
- Json擴充套件方法JSON套件
- 分類擴充套件套件
- 提高擴充套件性套件
- HttpContext擴充套件類HTTPContext套件
- DOM部分擴充套件套件
- LINQ擴充套件方法套件
- Flask 自建擴充套件Flask套件
- 新增php擴充套件PHP套件
- 擴充套件表示式套件