作者bottle7839 (Ping)
看板PHP
标题[请益] php在windows系统伺服器执行exec()
时间Tue Oct 22 21:49:52 2013
大家好,虽然在板上对於php执行exec()有很多的讨论,
相关的解决方法我都一一试过 ex: 检查safe mode, disable function,
改cmd权限(完全控制), 改资料夹的权限(直接把使用者在wamp权限改到最高
,存取的资料夹也是), 也改过服务里面的wampapache的"允许服务与桌面互动"..
都没有办法,全面崩溃中....
我的环境:
OS:Windows 7
Server:Apache/2.4.4(Win 32)
PHP version:5.4.16
程式目的:
让使用者上传图片(预设到A资料夹),用exec()跑程式之後,程式会自动产生一张图片
再放到A资料夹里面。
问题程式码如下:
$commandline = "XXXXX.exe";
exec($commandline,$output,$ret);//execute the program
echo "return".$ret."<br/>";
结果:
return0 <-- 这应该代表执行成功
但是A资料夹下没有任何我程式产生的图片,只有使用者上传的图片Orz...
PS:
1.我看过A资料夹,权限故意开到最大,可是还是没有办法。
2.之前版本有跑过绝对路径,也是出现error的情形。
以上,恳请板上高手解惑Q_Q
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.214.166
1F:→ CaptainH:只有我觉得很奇怪吗 10/22 21:52
2F:→ CaptainH:用windows又能设777; 没给错误讯息又说「也是有error」 10/22 21:53
抱歉,我一开始是用Linux跑程式,所以有用chmod("资料夹名称", 0777);
//chagne chmod = 777
因为exe档,在linux下不能执行 才换伺服器
只是要强调都把权限都打开了而已Q_Q
我的error指的是没有出现预期的结果(产生图片在A资料夹)
没有出现error message,return 值都是0
※ 编辑: bottle7839 来自: 140.113.214.166 (10/22 21:59)
※ 编辑: bottle7839 来自: 140.113.214.166 (10/22 21:59)
3F:推 LaPass:chmod("资料夹名称", 0777); <= ??? 10/22 22:05
4F:→ LaPass:其实.... 你可以打开cmd直接下指令看看 10/22 22:06
5F:→ bottle7839:痾 那是之前在linux环境的时候写的orz... 10/22 22:06
6F:→ LaPass:那些php用exec之类的指令,最後也是这样跑 10/22 22:07
奇妙的是我打cmd指令,可以成功产生图片在资料夹...
可是只要用网站的方式执行就没有反应@@"
※ 编辑: bottle7839 来自: 140.113.214.166 (10/22 22:09)
7F:推 LaPass:那应该要往php的执行权限下手看看,你改成fopen把输出的字 10/22 22:10
8F:→ LaPass:串先印出来 10/22 22:10