在Windows中重置Apache PATH环境变量

时间:2014-11-14 11:10:02

标签: php oracle apache environment-variables oci

由于安全性,我最近升级了Apache和PHP,并且我还使用PHP与Oracle数据库进行通信。新的PHP版本只有php_oci8_12c.dll模块,所以我也安装了Oracle 12c客户端。

启用oci8模块后,我注意到当我运行phpinfo()时模块没有显示在Apache中,但如果我运行php -m,我会在那里找到oci8模块。进一步检查发现自升级以来PATH环境变量尚未更新,并且新路径仅附加在PATH变量的末尾。

我粘贴在Apache下面的(精简的)PATH数据下面:

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文件夹,则会在Apache中检测并加载oci8模块。

我已经在互联网上搜索过了重置' Apache PATH变量,但无济于事,因此我在这里发布。请帮忙。

1 个答案:

答案 0 :(得分:0)

我可以想到两个可能的原因:

  1. 12c客户端的路径是用户变量,而不是系统变量(但我希望它位于路径列表的末尾)
  2. 12c客户端安装程序已直接修改注册表以添加路径,因此系统环境尚未识别更改。 (如果您将Apache作为服务运行,那么仅仅因为您的帐户可以看到路径更改并不意味着SYSTEM帐户可以看到更改。)
  3. 假设后一种情况,服务器重启将解决问题。如果您无法重启服务器,那么您可以尝试停止Apache,打开环境变量对话框,只需按OK(在此和所有父对话框上)即可重新初始化'系统环境。再次启动Apache,它应该选择新的设置。


    在相关说明中:您应该使用most recent build from PECL(目前为2.0.8)替换捆绑的OCI驱动程序(1.4.10)。如PECL描述中所述:

      

    使用PHP 4.3.9时使用较旧的PHP OCI8 1.4.10   通过PHP 5.1.x,或者只有Oracle Database 9.2客户端   提供图书馆。

    Windows下载包含php_oci8.dllphp_oci8_11g.dllphp_oci8_12c.dll。因此,您无需尝试更改Oracle客户端安装。