PHP OCI8 для Oracle DB не работает с IIS (OCI_CRED_EXT) в Windows

#php #laravel #oracle #yajra-datatable

Вопрос:

Запуск сервера PHP IIS.

ошибка Использование неопределенной константы OCI_CRED_EXT — предполагается, что «OCI_CRED_EXT» (это приведет к ошибке в будущей версии PHP)

Запустив php, artiasan обслуживает подключение к базе данных Oracle.

конфигурация:

Windows 10 x64 Pro версии 20H2

Вручную установленный 7.3 Не Потокобезопасный x86 добавьте путь к env

Сервер IIS версии 10

Ларавель 8

OCI 8.2.2 для WIndows Не Потокобезопасный (NTS) x86 распаковать C:Program Файлы (x86)Php(X86)7.3

композитор устанавливает laravel-oci8

instantclient-basic-nt-11.2.0.4.0 добавить путь к env

добавить php.ini extensions:php_oci8.dll

команда cmd

php —ri oci8

oci8

Поддержка OCI8 => включена

Поддержка OCI8 DTrace => отключена

Версия OCI8 => 2.2.0

Версия клиентской библиотеки Oracle для времени выполнения => 11.2.0.4.0

Версия мгновенного клиента Oracle во время компиляции => 10.2

Директива => Локальное значение =>> Основное значение

oci8.max_persistent => -1 =>> -1

oci8.persistent_timeout => -1 =>> -1

oci8.ping_interval => 60 =>> 60

oci8.privileged_connect => Выключено =>> Выключено

oci8.statement_cache_size => 20 =>> 20

oci8.default_prefetch => 100 =>> 100

oci8.old_oci_close_семантика => Выкл =>> Выкл

oci8.события => Выключено =>> Выключено

Статистика =>

Активные Постоянные Соединения => 0

Активные соединения => 0

phpinfo не отображает модуль oci8.

функцию error_log PHP предупреждение: PHP в стартап: не удается загрузить динамическую библиотеку ‘php_oci8.dll’ (пробовал: C:Program файлы (для x86)PHP(в архитектуре x86)7.3extphp_oci8.dll (указанный модуль не может быть найден.), Файлы C:Program (для x86)PHP(в архитектуре x86)7.3extphp_php_oci8.dll.dll (указанный модуль не может быть найден.)) в неизвестных на линии 0

php_oci8.dll библиотека существует по указанному пути.

попытался проверить мгновенный клиент oracle, sqlplus подключается к базе данных.

прочитал много информации, но я в тупике, как двигаться дальше.

Ответ №1:

Ваша конфигурация не принимает мгновенного клиента. Где он установлен и вы установили ПУТЬ? Может быть, вам нужно переместить библиотеки туда, где находятся библиотеки DLL php?

Некоторые действительно старые заметки, которые у меня есть, находятся в https://blogs.oracle.com/opal/how-to-use-iis,-php-и-oracle

Кроме того, по историческим причинам OCI_CRED_EXT не поддерживается в Windows, см. https://github.com/php/php-src/blob/php-8.0.3/ext/oci8/oci8.c#L941-L948

Для чего вам нужен OCI_CRED_EXT?

(И почему вы используете такие старые клиентские библиотеки Oracle! — вы должны иметь возможность добавить более новый набор, так как они сохраняют совместимость)

Комментарии:

1. путь добавлен к переменным среды для мгновенного клиента. Добавлены библиотеки в php, безрезультатно. 11 клиент, который я использую для подключения к базе данных oracle 9i. OCI_CRED_EXT как я могу отключить эту авторизацию. Почему служба artisan отлично работает с базой данных connect oracle9i?