【问题标题】:PHP exec("which php" ) returns wrong resultPHP exec("which php" ) 返回错误结果
【发布时间】:2014-10-15 08:55:42
【问题描述】:

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

【问题讨论】:

标签: php macos


【解决方案1】:

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

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 中的那个只有在你的网络服务器用户的环境中添加/opt/local/php5/bin 才能找到,并且它必须在/usr/bin 之前。

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

如果还没有定义PATH,只需添加以下行:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    相关资源
    最近更新 更多