由于安全性,我最近升级了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变量,但无济于事,因此我在这里发布。请帮忙。
答案 0 :(得分:0)
我可以想到两个可能的原因:
SYSTEM
帐户可以看到更改。)假设后一种情况,服务器重启将解决问题。如果您无法重启服务器,那么您可以尝试停止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.dll
,php_oci8_11g.dll
和php_oci8_12c.dll
。因此,您无需尝试更改Oracle客户端安装。