我在php脚本中运行exec命令时遇到问题 这是详细的情景:
我有一个可执行文件 my_exe ,它从命令行运行。此可执行文件使用环境变量,因此我在命令前添加MY_VARIABLE='value'
(工作正常)。
我使用 exec 命令从Php脚本运行此可执行文件。例如:exec("MY_VARIABLE='value' my_exe");
(也可以正常工作,在浏览器中测试)
问题出在这一部分。当我使用 HttpUrlConnection 从Java程序调用php脚本时,我有两种情况:如果我从服务器外部运行Java程序(使用公共IP地址),我会得到很好的结果,但是当我从服务器运行它(使用本地IP,表单命令行ex。" java -jar /path/to/my/jar
"),Php可以运行但exec似乎没有正常工作。在这种情况下没有设置环境变量,因此可执行文件运行但没有正确的值,因此我没有得到任何结果。
感谢任何帮助。我真的被困在这里了。我的猜测是Php或Java权限存在问题,但我无法弄清楚。
答案 0 :(得分:0)
奇怪的命令exec("MY_VARIABLE='value' my_exe");
...它只能在linux机器上运行,不会在Windows上运行。
作为第一步,尝试重写这样的php
代码:
putenv("MY_VARIABLE=value");
exec("my_exe");
看看会发生什么。