PHP exec失败没有错误

Atn*_*ize 5 php permissions cmd unoconv

我想自动导出.odf文件到.pdf.

我尝试了一种叫做unoconv的东西.

在Windows命令提示符下键入时,一切都是正确的.

>"C:\Program Files (x86)\OpenOffice 4\program\python.exe" "C:\Program Files (x86)\OpenOffice 4\program\unoconv-master\unoconv" -f pdf path/to/myfile.odt
Run Code Online (Sandbox Code Playgroud)

一旦在PHP脚本中使用,就不再有用了.没有错误出现.

exec('"C:\Program Files (x86)\OpenOffice 4\program\python.exe" "C:\Program Files (x86)\OpenOffice 4\program\unoconv-master\unoconv" -f pdf path/to/myfile.odt');

//or

shell_exec('"C:\Program Files (x86)\OpenOffice 4\program\python.exe" "C:\Program Files (x86)\OpenOffice 4\program\unoconv-master\unoconv" -f pdf path/to/myfile.odt')
Run Code Online (Sandbox Code Playgroud)

我也试图逃避\或使用'"不同,但我的测试没有一个是决定性的.

$test = exec($cmd, $output, $return);
echo var_dump($test);
echo var_dump($output);
echo var_dump($return);
Run Code Online (Sandbox Code Playgroud)

给我吗

//echo var_dump($test)give nothing

//echo var_dump($ouput);
array (size=0)
  empty

//echo var_dump($return);
int 1
Run Code Online (Sandbox Code Playgroud)

这听起来像权限问题,但我也检查了这一点,所有文件夹都可以访问PHP.

小智 0

我会将其添加为评论,但没有足够的代表......

我在从 WAMP 服务器更改为 IIS 时遇到了这个问题,正如您所说,这是一个权限问题。事实证明,我必须授予“IUSR”用户和“IIS_IUSRS”组完全权限才能执行。

后来我遇到了类似的情况,我相信我决定简单地将 IIS 运行的用户更改为管理员,但这可能不推荐。

当然,如果您不使用 IIS,这将是无关紧要的,但我将把它留在这里,以防万一其他人使用 IIS。