我的OS X Mavericks上的本地开发站点使用exec(“which php”) - 命令。这个exec() - Command的结果是“/ usr / bin / php”,这实际上是错误的,它应该返回“opt / local / php5 / bin / php”。 “opt / local / php5 / bin / php”是我的终端会话中命令“which php”的结果。我该如何解决这个问题?
答案 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
没有$
符号。)
然后重新启动您的网络服务器。