Я недавно обновил Apache и PHP из-за безопасности, и я также использую PHP для связи с базами данных Oracle. В новой версии PHP есть только модуль php_oci8_12c.dll, поэтому я также установил клиент Oracle 12c.
После того, как я включил модуль oci8, я заметил, что модуль не отображается в Apache, когда я запускаю phpinfo (), но если я запускаю php -m, я нахожу там модуль oci8. Дальнейшая проверка показала, что переменная среды PATH не обновлялась после обновления, и что новый путь добавляется только в конце переменной PATH.
Я вставляю ниже (урезанные) данные PATH из Apache:
C:\oracle\client11gR2_32\bin;C:\www\Apache24\bin;C:\www\php548;C:\database\mysql5528\bin;C:\oracle12c\client12c_32\bin;C:\www\php562;C:\www\php562\ext
По сравнению с системной переменной PATH:
C:\oracle12c\client12c_32\bin;C:\oracle\client11gR2_32\bin;C:\www\Apache24\bin;C:\www\php562;C:\www\php562\ext;C:\database\mysql5528\bin
Я попытался перезапустить службу Apache, а также удалить / переустановить, но ни один не работает. Кажется, что данные как-то «кэшируются» в отдельном месте, но я не могу сказать, где. Если я переименую папку Oracle client 11g HOME, то модуль oci8 будет обнаружен и загружен в Apache.
Я искал по всему интернету «сброс» переменной Apache PATH, но безрезультатно, поэтому выкладываю ее здесь. Пожалуйста помоги.
Есть две возможные причины, которые я могу придумать:
SYSTEM
аккаунт может увидеть изменения.)В последнем случае перезагрузка сервера решит проблему. Если вы не можете перезагрузить сервер, попробуйте остановить Apache, открыть диалоговое окно Environment Variables и просто нажать OK
(в этом и во всех родительских диалоговых окнах) для повторной инициализации системной среды. Запустите Apache снова, и он должен выбрать новую настройку.
На соответствующее примечание: Вы должны действительно заменить прилагаемый драйвер OCI (1.4.10) на самая последняя сборка от PECL (в настоящее время 2.0.8). Как указано в описании PECL:
Используйте более старый PHP OCI8 1.4.10 при использовании PHP 4.3.9
до PHP 5.1.x, или когда только клиент Oracle Database 9.2
библиотеки доступны.
Загрузка Windows содержит php_oci8.dll
, php_oci8_11g.dll
, а также php_oci8_12c.dll
, Таким образом, вам не нужно было пытаться изменить установку клиента Oracle.
Других решений пока нет …