php - exec 函数在 PHP 中不起作用

标签 php linux ubuntu lamp

在 php exec 函数中无法运行 shell 命令。

如果我在终端中运行

   $ avconv -i in.mp4 -f mp3 -ab 192000 -vn rip.mp3 

该命令工作正常,该命令用于将视频转换为 mp3。 但是当我尝试通过 PHP 执行时,它不起作用。

   exec("avconv -i in.mp4 -f mp3 -ab 192000 -vn rip.mp3");

或者如果我尝试 exec("whoami");给了我正确的输出。

最佳答案

很可能您需要为命令提供文件的完整路径,因为 PHP 中的当前目录与 shell 中的目录不同。

exec("avconv -i /path/to/in.mp4 -f mp3 -ab 192000 -vn /path/to/rip.mp3");

也许即使是 aconv 的完整路径也是安全的:

exec("/bin/avconv -i /path/to/in.mp4 -f mp3 -ab 192000 -vn /path/to/rip.mp3");

使用 which aconv 检查 aconv 的正确路径是什么。

要检查是否有错误,请向 exec 命令添加第二个参数并打印它:

exec('...', $result);
var_dump($result);

关于php - exec 函数在 PHP 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31112506/

相关文章:

linux - 颠覆 : unable to update the repository (RapidSVN Linux SVN GUI Tool)

JavaScript 没有在 Android webview 中重新加载?

linux - Wireshark/tcpdump/libpcap 在 Linux 内核中的何处拦截数据包?

php - 签署 ElasticSearch AWS 调用

python - 从 python 脚本运行进程,进程永远不会停止

image - 格式无效 : not a PNG file

ubuntu - 无法将 Elasticsearch 作为服务启动

java - 混合模式下的 jstack : WrongTypeException: No suitable match for type of address

php - PDOStatement::getColumnMeta 返回原始表名而不是 View 名

php - session 变量未以 php 和 mysql 形式插入数据库