从 php exec 调用 ansi2html.sh 会在 OSX 上给出 gawk 错误


Calling ansi2html.sh from php exec gives gawk error on OSX

我正在尝试从 php 网页上显示的命令行实用程序获取格式化的彩色输出。

我正在使用 http://www.pixelbeat.org/scripts/ansi2html.sh 中的 ansi2html.sh

如果我从命令行运行相同的命令,它可以正常工作。我在OSX上。

我正在运行的命令是:

exec ("vendor/bin/phinx migrate -e development | ../../phinx_upgrades/ansi2html.sh 2>&1", $phinx_output, $phinx_return);

我得到的输出是:

../../phinx_upgrades/ansi2html.sh: line 38: gawk: command not found

所以我假设它运行脚本,但它找不到 gawk。我做了brew install gawk但它已经安装了。

我可以从命令行运行 gawk,gawk --version给了我GNU Awk 4.1.1, API: 1.1

如果我问which gawk我会得到/usr/local/bin/gawk

当我echo $PATH时,我/usr/local/bin视为我的道路之一。

我不熟悉OSX,但我认为您必须gawk文件夹添加到您的环境变量中PATH
另外,直接检查你的 bash 是否可以启动 gawk ,如果它在你的 bash 中工作正常,所以重新启动你的 Apache 服务器

希望对:)有所帮助

回答 PHP exec $PATH变量缺少元素应该为为 php 调用设置正确的$PATH提供提示。 作为快速修复,您可以编辑 ansi2html.sh 脚本以直接引用/usr/local/bin/gawk