У меня есть эта строка подключения на старом сервере, который отлично работает и подключается к удаленному серверу oracle.
На этом новом сервере я установил простой клиент oracle Instant и devel и php pecl oci8. Ниже приведен снимок экрана oci8.
Вот код, который я использую для подключения
$db = "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" . $ORACLE_HOST . ")(PORT=" . $ORACLE_PORT . ")))(CONNECT_DATA=(SID=" . $ORACLE_DB . ")))";
$this->dbh = oci_connect($ORACLE_USER, $ORACLE_PASS, $db);
Но когда я пытаюсь подключиться к oracle, я получаю эту ошибку
oci_connect(): Error while trying to retrieve text for error ORA-28547
Если я ввожу случайное имя хоста, я получаю ORA- 12154
ошибка, которая имеет смысл
Если я ввожу случайный SID, я получаю ошибку ORA-12514
, которая имеет смысл
Если я ввожу случайный порт, я получаю ошибку ORA-12545
, которая имеет смысл
Если я nc
сервер и порт, я получаю этот результат
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.10.40.21:1521.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
Используемая мной система - Centos 7 64bit, php 5.6
Кто-нибудь знает, почему это могло произойти?
Кажется, даже несмотря на то, что phpinfo
может обнаружить клиента oracle версии 18. 5, но он не может получить каталог ORACLE_HOME
Если вы только установите
SetEnv ORACLE_HOME "/usr/lib/oracle/18.5/client64/lib"
в конфигурационном файле виртуального хоста клиента
/etc/httpd/conf/sites-available/client.vhost
, то это добавит ORACLE_HOME
. к Переменным PHP
только в которых NO EFFECT исправляет проблему
Вместо
Вам нужно добавить
env[ORACLE_HOME] = /usr/lib/oracle/18.5/client64/lib
в php-файл клиента php-файл
. fpm
config file
/etc/php-fpm.d/client.conf
Это добавляет ORACLE_HOME
в оба раздела PHP Variables
и Environment
, что устраняет проблему.
Настроен ли ваш sqlnet.ora
на простое подключение? (Находится в $ORACLE_HOME//network/admin
)) Посмотрите документацию Oracle Net Services по настройке; там должна быть линия, аналогичная:
NAMES.DIRECTORY_PATH=(ezconnect, tnsnames)
Также смотрите это руководство по устранению неисправностей.
.У вас есть возникли две проблемы:
echo $ ORACLE_HOME
настроено?