如何确定使用哪个PHP?

如何确定使用哪个PHP

例如,如果有/usr/local/bin/phpusr/local/bin/php5 ,我怎么知道我的PHP脚本正在使用哪一个?

如果您使用的是PHP CLI,那么请尝试使用shell命令(我假设您在这里使用的是linux)

 which php - will locate the php executable (this should be the default php used by you) whereis php - The first path displayed will be the location of the php executable echo $PATH - will print a list of paths separated by ":" where the system looks for commands 

如果你使用PHP作为Apache模块,那么phpinfo()会告诉你所用的php版本,以及php的configuration文件,而不是php的path 。 如果你有2个版本的PHP可执行文件,那么这将帮助你。 如果他们是相同的版本,那么它不会真的很重要哪一个是谁:)

如果你想findphp版本,那么php -v将在CLI中打印php版本,并安装任何Zend模块。

如果你想找出包含的ini文件,那么php –ini将显示由php模块加载的ini文件列表(这适用于CLI版本)。

只需添加一个简单的脚本

 <?php phpinfo(); ?> 

假设您正在通过Web服务器使用:
你可以把下面的函数放在一个脚本中:

 <?php phpinfo(); ?> 

如果这不起作用,可能是因为这个function在php.ini中被禁用了。 这通常是为了安全。 如果是这样的话,你会在你的php.ini中有一行:

 disable_functions = phpinfo 

如果是这种情况,请暂时将其更改为

 disable_functions = 

如果你使用PHP的shell脚本:

  1. 在顶端应该有'shebang line',就像

    #!/ usr / local / bin / php -q

  2. 你确定自己不是一个和另一个的smybolic链接吗? 做

    ls -l / usr / local / bin / php

  3. 别 ;-)

另外从命令行:

$ php -v

PHP 5.2.6-3ubuntu4与Suhosin-Patch 0.9.6.2(cli)(构build于:2009年3月31日02:11:31)Copyright(c)1997-2008 PHP Group Zend Engine v2.2.0,Copyright(c)1998- 2008年Zend技术

 <?php // prints eg 'Current PHP version: 4.1.1' echo 'Current PHP version: ' . phpversion(); ?> 

如果您正在讨论您的Apache Web服务器调用的Web脚本,并将PHPconfiguration为Apache模块,那么答案是NONE。

您在问题中提到的位置是命令行脚本解释器,将被shebang符号调用

  #!/usr/local/bin/php 

在你的php命令行脚本的顶部

你可以打电话给你提到的口译员,因为他们有不同的名字

 # php 

会调用/ usr / local / bin / php和

 # php5 

会调用/ usr / local / bin / php5

如果您通过Apache模块使用PHP,则不会使用这两者之一。 如果你使用php的CGI版本,它应该显示在phpinfo(); 输出。

 <?php phpinfo(); ?> 
 <?php echo shell_exec('which php'); ?> 

即使您没有shell访问权限,这也是有效的。 😉