PHP oci_connect () TNS: не удалось разрешить идентификатор соединения (ORA-12154)

Я тестирую некоторый код PHP на сервере Ubuntu, а соединение базы данных оракула проверяется командой «tnsping»

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 среды ( PATH , ORACLE_BASE , ORACLE_HOME , ORACLE_SID , TNS_ADMIN , LD_LIBRARY_PATH ) установлены в /etc/bash.bashrc

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

вместо 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 () вывод «Environment», если у вас нет 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