我一直在寻找大约2天,找不到任何关于我的问题,我试图运行一个简单的cmd代码,如果我直接从cmd控制台运行它,它可以正常工作。但是当我从PHP中运行它时,什么也没有发生,我相信这是某种权限问题,有什么想法吗?
这是我要运行的代码,它执行html5point_converter。exe将我的ppt文件转换为html
exec("C:''WINDOWS''system32''cmd.exe /c C:''inetpub''wwwroot''HTML5PointSDK''html5point_converter.exe '"C:''inetpub''wwwroot''HTML5PointSDK''arquivos''upload1''teste1.ppt'"");
我尝试执行以下代码,以便我可以测试cmd是否在php内工作,并且它工作正常:
exec("C:''WINDOWS''system32''cmd.exe /c dir", $output);
我正在运行windows server 2008 R2, IIS 7和PHP 5.5,并安装了Web platform Installer 5.
为了测试目的,我在
中设置了安全权限为"完全控制每个人":Folder: C:'Program Files (x86)'PHP
Folder: C:'inetpub'wwwroot'HTML5PointSDK
File: C:'WINDOWS'system32'cmd.exe
File: C:'inetpub'wwwroot'HTML5PointSDK'html5point_converter.exe
提前感谢,你的,•迪奥戈Araujo
编辑1我还测试了:
exec("C:''inetpub''wwwroot''HTML5PointSDK''html5point_converter.exe '"C:''inetpub''wwwroot''HTML5PointSDK''arquivos''upload1''teste1.ppt'"");
exec("C:''WINDOWS''system32''cmd.exe /c START C:''inetpub''wwwroot''HTML5PointSDK''html5point_converter.exe '"C:''inetpub''wwwroot''HTML5PointSDK''arquivos''upload1''teste1.ppt'"");
如高亮笔所示,您的代码中有语法错误。您需要转义字符串中的引号:
exec("C:'WINDOWS'system32'cmd.exe /c C:'inetpub'wwwroot'HTML5PointSDK'html5point_converter.exe '"C:'inetpub'wwwroot'HTML5PointSDK'arquivos'upload1'teste1.ppt'", $output);