最近同事調試項目需要windows本地搭建php連接oracle數據庫,以前一直想寫,但是忘記了或者沒時間,這次有時間就把部署過程記錄下來,留給自己或者不了解的人參考一下
instantclient部署
1.首先我們要下載oracle連接客戶端支持 instantclient 下載鏈接 https://www.ora cle.com/database/technologies/instant-client/downloads.html
此處根據自己的電腦位數 選擇對應的版本
2.然后選擇適合自己的版本,此處我選擇的是12.2版本
3.下載完了以后解壓,然后將解壓的文件夾放到自己指定的目錄,如下
4.然后
a.在D:\oracle\instantclient_12_2下新建tnsnames.ora配置文件,內容如下:
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.being.com)
)
)
右擊計算機 ->屬性->高級系統設置->環境變量
b.將D:\oracle\instantclient_12_2添加至系統環境變量
c.新增系統變量
NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252 -->> 服務器端字符集
TNS_ADMIN=D:\oracle\instantclient_12_2 -->> 指定tnsnames.ora所在位置
接下來配置php oci擴展
php連接oracle模塊支持pdo_oci:
http://pecl.php.net/package/PDO_OCI PDO_OCI-1.0.tgz Oracle Call Interface
driver for PDO
http://pecl.php.net/package/oci8 oci8-2.0.8.tgz Extension for Oracle Database,allows you to access Oracle databases
然后在本地網站根目錄創建文件 phpinfo.php ,並寫入代碼如下
<?php phpinfo(); ?>
然后運行php文件,查看php版本和位數
根據自己的php版本和位數 和線程安全情況,下載對應的pdo oci擴展和php oci擴展,如下
NTS是非線程安全 TS是線程安全
解壓這兩個文件夾,將php_pdo_oci.dll 和php_oci8.dll 、php_oci8_11g.dll 、php_oci8_12c.dll 放入php安裝目錄下的ext目錄下,其中php_oci8_11g.dll和php_oci8_12c.dll根據自己要鏈接的oracle版本是 11g 還是12c 按需放入,如果不清楚的就一起放入
然后在php安裝目錄內的配置文件php.ini 添加擴展代碼
extension=php_oci8.dll extension=php_oci8_11g.dll extension=php_oci8_12c.dll extension=php_pdo_oci.dll
最后重啟nginx 或者apache服務,再次查看phpinfo,如果出現如下圖所示,就說明oci擴展安裝成功,liunx的php oci擴展部署思路和windows類似