簡體   English   中英

PHP /服務器:我使用什么架構?

[英]PHP/Server: What architecture do I use?

如何確定我使用的是64位服務器還是32位服務器? 以及如何構建已安裝的PHP(以32位或64位模式)?

例如,我得到帶有uname的以下服務器信息:

Linux #1 (here are some unnecessary information) x86_64

文件cmd應該給您一個答案,我在ox-s和Centos 6.3上嘗試過-請參見下面的輸出。 很清楚:

os-x:$文件/ usr / local / zend / bin / php / usr / local / zend / bin / php:Mach-O可執行文件i386

CentOS:$ file / usr / bin / php-cgi / usr / bin / php-cgi:用於GNU / Linux的ELF 64位LSB可執行文件,x86-64版本1(SYSV),動態鏈接(使用共享庫) 2.6.18,剝離

僅當您運行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...]

例如,此版本的PHP是64位編譯器。

好吧, 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM