设置 php 和 ffmpeg 的 ENV PATH,以便在 PHP 脚本中使用 CLI,例如 shell_exec()

Set ENV PATH of php and ffmpeg to use it inside PHP scripts with CLI like shell_exec()

我想在 php 脚本中执行这样的命令:

<?php
shell_exec(php myfile.php)

<?php
shell_exec(ffmpeg -i ...)

我的问题,我认为是 php 和 ffmpeg 路径在我的 apache 环境中没有正确配置,因为当我执行这个时:

<?php
var_dump(shell_exec("which php"));
var_dump(shell_exec("which ffmpeg"));

我得到这个答案:

string '/usr/bin/php' (length=13)
null

但是当我在终端中输入时:

which php
which ffmpeg

我得到这个答案:

/usr/local/opt/php55/bin/php
/usr/local/bin/ffmpeg

那么如何正确设置 php 和 ffmpeg 环境路径而不总是重新输入完​​整路径?

我在 Mac OsX 10.10 下,我安装了 php 和 ffmpeg whith brew。

ffmpeg 添加到您的 PATH 环境变量,重新启动 Apache 服务器并重试

您可以像 shell 一样在命令中放置环境变量。

示例:

shell_exec('PATH=/usr/local/bin:/usr/local/opt/php55/bin:$PATH which ffmpeg');

备选方案:

如果你不想让代码变脏,你可以配置你的 Apache 环境变量如下。

Mac:

编辑

/System/Library/LaunchDaemons/org.apache.httpd.plist

并添加

<key>EnvironmentVariables</key>
<dict>
    <key>PATH</key>
    <string>/usr/local/bin:/usr/local/opt/php55/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>

(从 $PATH environment variable for apache2 on mac 复制的答案)

其他平台:(供大家参考)

https://serverfault.com/questions/151328/setting-apache2-path-environment-variable