如何确定正在使用哪个PHP?


10

如何确定正在使用哪个PHP?

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

Answers:


11

如果您使用的是PHP CLI,请尝试使用theese 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配置文件,而不是php path。如果您有2个版本的php可执行文件,则将对您有所帮助。如果它们是相同的版本,那么哪一个是谁并不重要:)

如果要查找php版本,则php -v将在CLI和已安装的所有Zend模块中打印php版本。

如果要查找包含的ini文件,则php --ini将显示php模块加载的ini文件列表(这适用于CLI版本)。


感谢您的所有投入。显然,该which命令是我所需要的。
Randell

@Randell-不要使用which;使用command -v代替。另请参阅检查Bash脚本中是否存在程序

7

只需添加一个简单的脚本

<?php phpinfo(); ?>

这不会php从用户的登录名运行吗?不一定是Apache使用的php吗?

5

假设您正在通过Web服务器使用:
您可以在脚本中放置以下功能:

<?php 
phpinfo(); 
?>

如果这不起作用,可能是因为在php.ini中禁用了此功能。这样做通常是出于安全考虑。如果是这种情况,则您的php.ini中将包含以下一行:

disable_functions = phpinfo

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

disable_functions =

如果您将PHP用于Shell脚本:

  1. 顶部应该有“ shebang线”,例如

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

  2. 您确定其中一个不是另一个的链接吗?做

    ls -l / usr / local / bin / php

  3. 别 ;-)


5

同样从命令行:

$ php -v

具有Suhosin-Patch 0.9.6.2(cli)的PHP 5.2.6-3ubuntu4(内置:2009年3月31日)(c)1997-2008版权所有(c)PHP Group Zend Engine v2.2.0,(c)1998- 2008 Zend Technologies


这不会php从用户的登录名运行吗?不一定是Apache使用的php吗?

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

0

如果您正在谈论由Apache Web服务器调用的Web脚本,并且PHP被配置为Apache模块,那么答案是“无”。

您在问题中提到的位置是命令行脚本解释器,将由shebang表示法调用,例如

 #!/usr/local/bin/php

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

您可以分别呼叫您提到的口译员,因为他们的名字不同

# php

将调用/ usr / local / bin / php并

# php5

会叫/ usr / local / bin / php5

如果您通过Apache模块使用PHP,则不会使用其中任何一个。如果使用php的CGI版本,它将显示在phpinfo();中。输出。



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

即使您没有外壳程序访问权限,此方法也有效。;-)


我认为这并不能满足要求的人员的需求。这仅告诉您在PATH查找中最终将使用什么shell环境。这不一定与执行脚本的PHP相同。
Theuni 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.