gpt4 book ai didi

php - 命令在 SSH 终端中有效,但在 PHP 脚本中无效

转载 作者:太空宇宙 更新时间:2023-11-04 09:21:17 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。我在我的服务器上安装了 ffmpeg。当我从 SSH (PuTTY) 运行“ffmpeg”时,它会确认安装:

ffmpeg via ssh

然后我将以下代码放在一个 PHP 文件中,在同一台服务器上的一个网站内:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$output = exec('ffmpeg -h');
echo "<pre>$output</pre>";
?>

但是当我运行 PHP 脚本时,页面是空白的,没有输出。我可以确认 exec 工作正常,因为当我运行 php -v | grep cli 在 PHP 和终端中,它们都输出相同的东西。

我正在使用 Plesk(网络主机版)管理网站,并已授予它通过 SSH (/bin/sh) 访问服务器的权限

我在这里错过了什么?

最佳答案

您想使用 ffmeg 的完整路径,因为它可能不在网络服务器用户的路径环境变量中。

还有,exec()的返回是输出的最后一行,可能是空行,你永远不知道。所以使用第二个参数来捕获数组中的所有输出:

exec('/path/to/ffmpeg -h', $output);
echo implode('<br>', $output);

或者你可以试试system()或者passthru()直接输出:

echo "<pre>" . system('/path/to/ffmpeg -h') . "</pre>";

关于php - 命令在 SSH 终端中有效,但在 PHP 脚本中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41623127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com