Сбросить переменную окружения Apache PATH в Windows

Я недавно обновил 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, но безрезультатно, поэтому выкладываю ее здесь. Пожалуйста помоги.

2

Решение

Есть две возможные причины, которые я могу придумать:

  1. Путь к клиенту 12c — это пользовательская переменная, а не системная переменная (но тогда я ожидаю, что она будет в конце списка путей)
  2. Установщик клиента 12c напрямую изменил реестр, добавив путь, и поэтому системная среда еще не распознала это изменение. (Если вы используете Apache в качестве службы, то только то, что ваша учетная запись может видеть изменение пути, не означает, что 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.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]