0

我在 php 中通过 shell_exec 脚本运行蹩脚的编码器时遇到问题。

而且我的问题只是这个脚本,并注意到如果我在终端中通过 php 命令运行它,该脚本可以工作,但如果我在浏览器中打开它就不能工作。为了以防万一,我将所有文件的权限设置为 777。

这是代码

< ?php

exec('lame -f -V 9 ../furniture/sound/107887.wav ../furniture/sound/107887.ogg');

问题是,如果我使用 php 命令在终端中运行脚本,但不通过浏览器运行,该脚本可以工作。

哦,这个脚本最多需要两秒钟,所以它不会是超时或任何东西。我也没有得到 php 或 nginx 错误。

我该如何解决这个问题?

4

2 回答 2

2

php的执行很蹩脚PATH吗?尝试替换lame/usr/bin/lame或其他。

文件参数的相对路径名怎么样?../furniture/PHP 所见的当前目录等是否正确?如果有疑问,也用完整的路径名替换它们,看看是否能解决问题。

不太可能但值得一提:您可能想要检查其lame自身是否已设置所有可执行位。如果您拥有该文件并且它只能由所有者执行,则 apache 将无法运行它。

于 2012-05-06T09:54:35.413 回答
0

可能有很多原因导致它无法从网络服务器工作,可能与资源或权限相关。您可以通过使用 exec 的第二个可选参数来找出这一点:

<?php
$output = "";
exec('lame -f -V 9 ../furniture/sound/107887.wav ../furniture/sound/107887.ogg',$output);
echo $output;
?>
于 2012-05-06T01:45:00.650 回答