繁体   English   中英

php exec()不刷新Path环境变量

[英]php exec() not refreshing Path environment variable

我升级了Java jvm,他们更改了将jvm的位置存储在PATH环境变量中的方式。

它粘贴“ C:\\ ProgramData \\ Oracle \\ Java \\ javapath;” 在Path变量的开头。

现在,问题是当我执行exec(“ java blah blah blah”)时,php无法找到新路径。 我懂了

"'java' is not recognized as an internal or external command, operable program or batch file."

仅当我执行完整路径时,它才有效:

exec("c:\My\Path\To\Java\java blah blah blah")

当我执行phpInfo(INFO_ENVIRONMENT)时,它显示了更改之前的Path变量。 它被缓存在某个地方了吗? 我在其他线程中读到,重新启动服务器或重新启动Apache会有所帮助,但似乎不起作用。 我尝试了多次重启。

var_dump($ _ SERVER ['PATH']),var_dump(getenv('PATH'))似乎显示了新路径。 为什么phpInfo中的值会不同? 某处是否有Path变量的单独副本?

我有一个在Windows Vista上测试过的开发环境,但没有这个问题。 在Windows 2008环境中进行测试时,出现了问题。

我试图避免对路径进行硬编码。

在exec语句之前,您可以像这样将路径添加到path变量中

putenv('PATH='.getenv('PATH').'path to java here');  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM