Недавно я обновил 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, а также удалить / переустановить, но ничего не работает. Кажется, что данные каким-то образом «кешируются» в отдельном месте, но я не могу сказать где. Если я переименовал папку HOME клиента Oracle 11g, то модуль oci8 будет обнаружен и загружен в Apache.
Я искал по всему Интернету «сброс» переменной Apache PATH, но безрезультатно, поэтому размещаю его здесь. Пожалуйста помоги.