2013-12-03 2 views
6

Я тестирую некоторые PHP-код на сервере и базы данных Oracle подключения Ubuntu проверяется командой "tnsping"PHP oci_connect() TNS: не удалось разрешить идентификатор подключения (ORA-12154)

Used TNSNAMES adapter to resolve the alias 
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL))) 
OK (10 msec) 

Но , oci_connect функция в PHP показывает предупреждение, как в

предупреждение: oci_connect(): ORA-12154: TNS: не удалось разрешить идентификатор подключения, указанный в /usr/local/ipm5/wui/manager/123.bih на линии 6 2

конечно, OCI8 включен (проверяется через phpinfo), а некоторые среды (PATH, ORACLE_BASE, ORACLE_HOME, ORACLE_SID, TNS_ADMIN, LD_LIBRARY_PATH) переменные устанавливаются в /etc/bash.bashrc

ли кто-нибудь рекомендовать ?? в чем проблема.

ответ

12

вместо ORCL, вы можете поместить всю строку в oci_connect

(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL))) 

PHP код:

oci_connect($username, $password, '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))'); 

проверка phpinfo() выход "Окружающая среда" часть, если вы этого не сделаете имеют ORACLE_HOME, TNS_ADMIN, вам необходимо сделать их доступными для вашей рабочей среды PHP, для apache, скомпилированных с php_module

export ORACLE_HOME=/path/to/oracle_home 
export TNS_ADMIN=/path/to/tns_admin 
apachectl start 

для PHP-CGI или PHP-FPM

export ORACLE_HOME=/path/to/oracle_home 
export TNS_ADMIN=/path/to/tns_admin 
/script/to/start/fpm 
+0

Я знаю, что ваш автоответчик так и работать нормально. но я хочу подключить oracle через имя tns, потому что у oracle есть несколько прослушивателей. конечно, ваш код также может выражать несколько слушателей, но этот способ может вызвать некоторые проблемы с управлением ... спасибо. – user2990252

+0

@ user2990252 вам нужно проверить «среду» вывода phpinfo, форматировать отображение кода, я обновил свой ответ, спасибо. – ray

+0

большое спасибо! У меня есть еще один вопрос. вы знаете, что команда export является volatile, поэтому я хочу знать, какой файл хранит среду ORACLE_HOME? – user2990252

Смежные вопросы

 Смежные вопросы