php调用exe问题

你好,我遇到一个问题,看到你之前解答过php的问题,特来像你请教,问题的具体描述我写在这里了(http://segmentfault.com/q/101000000301... 你好,我遇到一个问题,看到你之前解答过php的问题,特来像你请教,问题的具体描述我写在这里了(http://segmentfault.com/q/1010000003010434?_ea=273066),希望得到你的解答。谢谢!
你好,非常感谢你的解答!我做了如下尝试:
3、我尝试在php文件中加入该语句; "exec ('julia -v')",
php文件中代码为:

得出结果如图:

说明"exec('julia -v')"执行正常。
顺便补充一下,Julia是console环境,进入cmd.exe输入Julia,软件界面以及命令行执行“exec('julia -v')”效果如图:

因此,在php中运行 "exec('julia -v')" 能正常返回结果,难道我要添加HOMEDRIVE变量么?不清楚这是什么。
尝试过切换用户,右击Apache->用管理员身份打开,结果去任务管理器里查看,用户名还是显示为SYSTEM,也就是说还是非cmd.exe运行用户执行该软件。
下面一直在尝试有关用户权限的问题,怀疑是用户不同造成的,一直在尝试。
请问你对这个有什么其他看法呢?期待你的解答,谢谢!
展开
 我来答
阳光上的桥
2015-08-22 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65810
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
PHP里面exec其它命令可以成功执行,而调用特定的程序没有成功,我推测有三个方面的原因:

一是APACHE的进程(估计是httpd.exe)身份与你命令行执行的是否相同,可以在进程管理器里面查看。

二是环境不同,你的julia是否需要某些特定环境变量支持,PHP执行的时候这些环境变量是否都有,可以在PHPINFO()里面查看。

三是相对路径不同,命令行下执行时系统查找文件的环境不同,试试看这样写:
exec(" julia 12.jl");

修改为:
exec("c:\\julia\\julia.exe d:\\jl\\12.jl");

此外,你的调试信息显示stderr异常,是否julia必须依赖stderr。还有,julia是CONSOLE环境还是GUI程序,如果是CONSOLE的,能否使用-?或者-v参数显示简单信息,用以测试调用julia是否成功,例如你的julia支持julia -version显示版本号,那么你可以在PHP里面这样写:
exec(" julia -version");

查看命令行和浏览器里面的效果。
更多追问追答
追问

你好,非常感谢你的解答!我做了如下尝试:

1、我查看了Apache (httpd.exe)的运行身份

然后查看了cmd.exe的运行身份

2、之前用 "2>&1" 加入代码中,尝试输出错误,报错:“ERROR : Key not found : HOMEDRIVE” 有网友说是我缺少HOMEDRIVE环境变量,但是我不知道如何添加,搜索很多答案无果。

追答
julia是否支持-?或者-v等参数,是否CONSOLE应用,如果是,请测试exec('julia -?');是否成功,以便分析错误在于加载julia呢,还是julia加载12.jl
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式