我的配置:ocilogon():ORA-12170:TNS:連接超時發生
PHP
PHP 5.4.16
OCI8
OCI8支持啓用 OCI8禁用DTrace支持 OCI8版本2.0.11
環境
LANG C在
路徑/ usr/local/sbin中:在/ usr/local/bin目錄:/ usr/sbin目錄:在/ usr/bin中中:/ opt/instantclient
NOTIFY_SOCKET /運行/ systemd /通知
ORACLE_HOME /選擇/ instantclient
LD_LIBRARY_PATH的/ opt/instantclient
TNS_ADMIN的/ opt/instantclient /網絡/管理員
XERCES_DISABLE_DTD 1
防火牆
禁用
問題
當我執行一個PHP頁面ocilogon:
ocilogon():ORA-12170:TNS:連接超時發生
但如果我嘗試的telnet XXXX 1521我可以連接到數據庫
我的PHP代碼:
$test1 = "(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxxxxx)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = yyy))
)";
$conn=ocilogon(USERNAME,PASSWORD,$test1) or die ("logon problem");
我tryed與oci_connect ,結果相同。
檢查SQL * Plus是否可以連接。您的錯誤指向網絡配置問題,可能是入境或出境防火牆。 –
一些常規的供參考意見:(i)因爲您正在使用即時客戶端,您不需要設置ORACLE_HOME(ii)您在PHP中使用過時的函數名稱。新的類似於oci_connect()(iii)您可以使用'簡單連接'語法而不是舊的完整TNS字符串。新的語法就像'$ test =「xxxxxx/yyy」'。查看Oracle關於PHP OCI8的免費書籍:http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250。html –
ty您的評論克里斯托弗。 正如我之前所說,我嘗試與oci_connect,相同的結果。 –