Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP exec(“哪个PHP”)返回错误的结果_Php_Macos - Fatal编程技术网

PHP exec(“哪个PHP”)返回错误的结果

PHP exec(“哪个PHP”)返回错误的结果,php,macos,Php,Macos,我的OS X Mavericks上的本地开发站点使用execwhich php命令。这个exec命令的结果是/usr/bin/php,这实际上是错误的,它应该返回opt/local/php5/bin/php。 opt/local/php5/bin/php是php在终端会话中执行的命令的结果。我如何解决这个问题?如果你问错了问题,你会得到错误的结果 which命令返回可执行文件的完整路径。查找命令的位置在$PATH环境变量中定义,如下所示: /usr/local/sbin:/usr/local/b

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

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

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/local/php5/bin添加到Web服务器用户的环境中,才能找到/opt中的一个,并且必须在/usr/bin之前

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

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

export PATH="/opt/local/php5/bin:$PATH"
请注意,开头的路径没有$符号


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

您的apache使用的php是否可能重复?