PHP / Server:我使用什么架构?

时间:2011-01-06 03:11:49

标签: php linux

我怎么能知道我是使用64位服务器还是32位服务器? 以及如何构建已安装的PHP(32位或64位模式)?

我通过uname获取以下服务器信息:

Linux #1 (here are some unnecessary information) x86_64

3 个答案:

答案 0 :(得分:3)

文件cmd应该给你答案,我试过ox-s和Centos 6.3 - 见下面的输出。很清楚:

OS-X: $ file / usr / local / zend / bin / php / usr / local / zend / bin / php:Mach-O可执行文件i386

CentOS的: $ file / usr / bin / php-cgi / usr / bin / php-cgi:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接(使用共享库),用于GNU / Linux 2.6.18,剥离

答案 1 :(得分:1)

只有在运行64位内核时才会显示x86_64。否则它将是旧的/ 32位架构之一,如386或686.至于PHP,如果您运行的是发行版附带的版本,它应该编译为与系统其余部分相同的架构,换句话说,在64位Linux发行版上,默认情况下应该有64位PHP。

对于基于Debian的系统,您可以在包中查询信息:

dpkg -p php5-cli

返回

[...snip...]
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Source: php5
[...snip...]

e.g。这个版本的PHP是64位编译。

答案 2 :(得分:1)

好吧,x86_64意味着它是64位版本。

我的uname -a-a显示所有信息)是:

Linux [can't see this] 2.6.35-23-generic #41-Ubuntu SMP Wed Nov 24 11:55:36 UTC 2010 x86_64 GNU/Linux,所以我知道我在64位系统上。

要测试PHP的构建,我会查看此命令的输出:

php -r "echo phpinfo();"

它会吐出大量的HTML,所以如果你愿意,可以将它传输到一个文件,然后用浏览器查看:

php -r "echo phpinfo();" > PHPinfo.html

我查看了我的内容,并没有对版本或架构说太多。

接下来,让我们看看php -v说的是什么。我吐了出来:

PHP 5.3.3-1ubuntu9.1 with Suhosin-Patch (cli) (built: Oct 15 2010 14:00:18) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Suhosin v0.9.31, Copyright (c) 2007-2010, by SektionEins GmbH

仍然没有。让我们来探讨Debian的钟表机构:

如果您正在运行Debian衍生产品,请运行:

dpkg -p php5-cli | grep "Architecture"

它应该告诉你PHP的构建架构。我说:

Architecture: amd64

这证实PHP是64位。

祝你好运!


只是为了让它更兼容,如果你无法运行dpkg,就不要害怕; file就在这里!

运行file {press key to the left of 1}which php5{press key to the left of 1}告诉您二进制信息。

我明白了:

/usr/bin/php5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, from 'o', stripped

这证实我正在运行64位PHP。