PHP exec(" php")返回错误的结果

时间:2014-10-15 08:55:42

标签: php macos

我的OS X Mavericks上的本地开发站点使用exec(“which php”) - 命令。这个exec() - Command的结果是“/ usr / bin / php”,这实际上是错误的,它应该返回“opt / local / php5 / bin / php”。 “opt / local / php5 / bin / php”是我的终端会话中命令“which php”的结果。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果你提出错误的问题,你会得到错误的结果。 ;)

which命令返回可执行文件的完整路径。 which查找命令的位置在$PATH环境变量中定义,它看起来像这样:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/android-sdk/sdk/platform-tools:/opt/android-sdk/sdk/tools

这些是常用命令路径,以冒号分隔。

显然,您的计算机上安装了多个PHP。你得到的是主要的路径,可能是你的包经理安装的。

如果您将/opt添加到您的网络服务器用户的envinonment,并且必须在/opt/local/php5/bin之前,就会找到/usr/bin中的一个。

现在,您如何设置网络服务器的$PATH?根据您的服务器(Apache,Nginx,...)和您的发行版,有不同的可能性。对于类似Debian的系统上的Apache,它通常是/etc/apache2/envvars

如果尚未定义PATH,只需添加以下行:

export PATH="/opt/local/php5/bin:$PATH"

(请注意,开头的PATH没有$符号。)

然后重新启动您的网络服务器。