cmd上如何运行php文件,cmd - php文件在命令行可以顺利运行,在浏览器上无法正常运行...

首先感谢抽时间阅读! 我尝试通过浏览器登陆本地服务器运行我的PHP文件,无法正常运行。我安装的是Appserver安装包2.6.0版本(Appserver网站),包内包含的软件版本为:Apache 2.2.8、PHP 6.0.0-dev。为了找出错误原因,我进行了如下步骤: 1、从命令行运行PHP文件,文件名为julia.php。运行成功。运行过程如下: php文件代码为: <?php

exec(" julia 12.jl");

echo "finished!";?> 命令行运行: 同时,php文件中还有一行指令"exec('julia 12.jl')"也执行成功了。这行代码意思是运用julia语言(一种新的编程语言)的REPL环境运行12.jl这个julia文件,12.jl运行成功的话,会在桌面输出一个txt文件。在此处txt文件也成功出现在桌面上了。 但是,当我使用浏览器,从服务器访问julia.php的时候,结果如下: 虽然最后一行代码echo "finished!"顺利执行了,但是"exec('julia 12.jl')"并没有执行成功,因为桌面上没有生成txt文件。 2、我百度谷歌了很久看到一个貌似是查看错误的方法,我也不是很清楚是怎么回事,抱着试试看的态度操作了一下: php文件代码如下: <?php function my_exec($cmd, $input='')

{$proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=>array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);

fwrite($pipes[0], $input);fclose($pipes[0]);

$stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);

$stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);

$rtn=proc_close($proc);

return array('stdout'=>$stdout,

'stderr'=>$stderr,

'return'=>$rtn

);

}$str = " julia 12.jl";

//此处为我要检测是否执行成功的指令" julia 12.jl"var_export(my_exec($str));

echo "finished!";?> 命令行运行该php文件结果: 浏览器访问结果: 百度谷歌了其中的 "ERROR:key not found: "HOMEDRIVE" 并没有找到满意的答案。 请问我这是遇到什么问题了?有什么办法能让我顺利执行该文件中的exec(" julia 12.jl")指令么? 另外,我把其中的调用julia软件运行脚本的命令换成调用MATLAB软件的命令后,无论是在命令行还是在浏览器访问的情况下,均成功运行了MATLAB的m文件。我的php.ini文件也关闭了安全模式。 万分期待你的解答,谢谢! , 多次尝试后,问题得以解决 解决方法:增加了两个系统环境变量:HOMEDRIVE、HOMEPATH。 之前无法解决原因: 1、不清楚Key Not Found的含义,后来尝试才知道,指的是系统的环境变量,而非Apache或者PHP的环境变量,在此感谢xelz的点拨。 2、初次尝试增加HOMEDRIVE系统环境变量,测试后没反应,其实需要重启电脑,windows就这个蛋疼。 3、初次尝试增加HOMEDRIVE系统环境变量,重启电脑后,依然报错,一开始我没注意以为还是缺少HOMEDRIVE系统环境变量,其实这次的错误略有不同,显示的是缺少HOMEPATH系统环境变量。 4、意识到以上错误后,我再次添加HOMEPATH环境变量,重启电脑后,服务器成功运行了PHP文件,成功调用Julia软件运行了jl文件。 十分感谢大家之前的热心回答。, 以下答案只是猜的,希望有帮助 julia需要HOMEDRIVE这个环境变量,命令行运行的时候是以你自己的身份运行的 但是运行apache服务器的用户没有设置这个环境变量,因此报错 不懂julia,如果你写文件用到了相对路径,可以尝试改成绝对路径 如果本来就是绝对路径,或者改成绝对路径也不行, 那么尝试在系统环境变量里设置一个HOMEDRIVE, Apache 过滤掉了一些环境变量大概?用 SetEnv 还是什么指令在配置文件里设置一下试试。, 浏览器上本来就不能运行php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值