我想在这样的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环境路径呢?
我使用的是MacOSX10.10,我用Brew安装了PHP和FFMPEG。
最佳答案
您可以像在shell中一样将环境变量放入命令中。
示例:
shell_exec('PATH=/usr/local/bin:/usr/local/opt/php55/bin:$PATH which ffmpeg');
替代解决方案:
如果您不想让代码变脏,可以按如下方式配置您的apache环境变量。
雨衣:
编辑
/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