2014-11-14 2 views
2

Недавно я обновил Apache и PHP из-за безопасности, а также я использую PHP для связи с базами данных Oracle. Новая версия PHP имеет только php_oci8_12c.dll модуль, поэтому я также установил клиент Oracle 12c.Сбросить переменную среды Apache PATH в Windows

После включения модуля 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 11g HOME, то модуль oci8 будет обнаружен и загружен в Apache.

Я искал по всему Интернету для «перезагрузки» переменной Apache PATH, но безрезультатно, поэтому я размещаю ее здесь. Пожалуйста помоги.

ответ

0

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

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

Предполагая, что последний случай, перезагрузка сервера будет решить эту проблему , Если вы не можете перезагрузить сервер, попробуйте остановить Apache, открыв диалог «Переменные среды» и просто нажав OK (в этом и всех родительских диалогах), чтобы «повторно инициализировать» системную среду. Запустите Apache еще раз, и он должен забрать новую настройку.


На соответствующую записку: Вы действительно должны заменить комплектный драйвер OCI (1.4.10) с most recent build from PECL (в настоящее время 2.0.8). Как указано в описании PECL:

Используйте старый PHP OCI8 1.4.10 при использовании PHP 4.3.9 до PHP 5.1.x или когда только Oracle Database 9.2 клиента библиотек доступны.

загрузки винда содержит php_oci8.dll, php_oci8_11g.dll и php_oci8_12c.dll. Таким образом, вам не нужно было бы пытаться изменить установку клиента Oracle.

+0

Спасибо за отзыв. Я попробовал шаг, чтобы остановить службу Apache, а затем повторно инициализировать Env. Варс. а затем запустить службу Apache, но, к сожалению, это не сработало. Я заплачу за перезагрузку для этого сервера в течение 2-3 дней и обновляю результаты вам. – gpm1982

+0

В конце концов, перезагрузка, наконец, выполняет задание.Наконец, я вижу, что переменные среды PATH в Apache совпадают именно с системой PATH. Спасибо за предложения. – gpm1982

+0

У меня такая же проблема с Apache и PHP, которая не перезагружает Windows Path. Я изменил версию PHP, которая находится в другой папке, но Apache и PHP все еще ищут старый Path, поэтому PHP не может работать (соединение было сброшено). Мне нужно переименовать старую папку PHP в другую, и она снова работает. – vee

Смежные вопросы