Сбросить переменную среды Apache PATH в Windows
Я недавно обновил Apache и PHP из-за безопасности, а также использую PHP для связи с базами данных Oracle. Новая версия PHP имеет только php_oci8_12c.dll модуль, поэтому я также установил клиент Oracle 12c.
После включения модуля oci8 я заметил, что модуль не отображается в Apache при запуске phpinfo(), но если я запускаю php-m, я нахожу модуль oci8 там. Дальнейшая проверка показала, что переменная среды 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
По сравнению с системной переменной ПУТИ:
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 11g, то модуль oci8 будет обнаружен и загружен в Apache.
Я искал по всему Интернету "сброс" переменной ПУТИ Apache, но безрезультатно, поэтому я публикую ее здесь. Пожалуйста, помогите.
1 answers
Я могу придумать две возможные причины:
- Путь к клиенту 12c - это пользовательская переменная, а не системная переменная (но тогда я ожидал бы, что она будет в конце списка путей)
- Установщик клиента 12c напрямую изменил реестр, чтобы добавить путь, и поэтому системная среда еще не распознала это изменение. (Если вы используете Apache в качестве службы, то только потому, что ваша учетная запись может видеть изменение пути, не означает, что учетная запись
SYSTEM
может смотрите изменение.)
Предполагая, что в последнем случае перезагрузка сервера устранит проблему. Если вы не можете перезагрузить сервер, вы можете попробовать остановить Apache, открыть диалоговое окно Переменные среды и просто нажать 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.