从PHP shell_exec运行macports安装的程序

时间:2016-05-18 16:42:37

标签: php macos macports shell-exec

我已经使用Macports在我的Mac(OS X El Capitan)上安装了反词:

200

我现在想在网络服务器上的PHP程序中使用它,以便能够转换Word文档文件以便在我的Web应用程序中使用。所以我试过了:

sudo port install antiword

这种方法在我的Linux(Centos 6)服务器以及Linux Ubuntu客户端上运行良好。但是,它在Mac上不起作用。

我认为问题在于Macports已经安装了antiword以供我的用户使用,而Apache则在另一个用户“_www”下运行。

有谁知道如何将Macports和/或Apache击败提交,以便shell_exec()(或exec()或system() - 它们都表现相同)可以找到反词并使用它?

1 个答案:

答案 0 :(得分:0)

(感谢克里斯,他的评论指出了我正确的方向)。

问题是反义词必须在Apache执行shell命令时使用的路径中。您可以在phpinfo Apache环境部分找到它。我看起来像:

(*inst.ptr)();
inst.ptr();

以下链接说明了如何设置Ubuntu的路径:https://serverfault.com/questions/151328/setting-apache2-path-environment-variable

然而,这对OS X El Capitan来说并不适用。我尝试使用envvars文件并在.htaccess或httpd.conf中添加了一个SetEnv指令 - 这些都不起作用。

最后,我放弃了尝试将/ opt / local / bin添加到路径中,只需将antiword复制到/ usr / bin中,这使得一切正常。不理想,因为它不会获得升级,但总比没有好。