DebianマシンにインストールされているApacheのバージョン


314

DebianマシンにインストールされているApacheのバージョンを確認するにはどうすればよいですか?

これを行うためのコマンドはありますか?


4
Stack Overflowは、プログラミングと開発に関する質問のためのサイトです。この質問はプログラミングや開発に関するものではないため、トピックから外れているようです。ヘルプセンターで、どのようなトピックについて質問できますかをご覧ください。おそらく、スーパーユーザーまたはUnix&Linux Stack Exchangeのほうがよいでしょう。また、Dev Opsに関する質問どこに投稿すればよいですか?
jww 2016年

回答:


418

apachectl -Vを試してください:

$ apachectl -V
Server version: Apache/2.2.9 (Unix)
Server built:   Sep 18 2008 21:54:05
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
... etc ...

うまくいかない場合は、でコマンドを実行してくださいsudo


2
警告:Ubuntu 14でApache 2.4を実行している場合、apache2ctl -Vroot権限がないと動作しません(...バージョンを出力しません)。一方、Apache 2.2を搭載したUbuntu 12では動作します。トリッキー。
philippe_b 2014年

これは、Ubuntuの12.04で動作し、私はまだ、まだ14にアップグレードしたくないのUbuntu 12.04、私のように、使用している多くの人々の様々なソフトウェアを使用して、すべてのバグが解消されるまでcomplete.y信じる
JohnMerlino

上の作品Debian 7.1
Cyclonecode

apachectl -Vはsuse10.04では機能しません。代わりに/ usr / sbin / apache2ctl -vと入力して、root権限で正しい回答を取得する必要があります
farzam

1
Red Hat Enterprise Linux 6(64ビット)で
正常に動作


34

新しいDebianまたはUbuntuディストリビューションでは、apache2ctl -vまたはapache2 -vを使用する必要があります。

apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built:   May 12 2011 11:58:18

または、apache2 -Vを使用して詳細情報を取得できます。

apache2 -V
Server version: Apache/2.2.16 (Debian)
Server built:   May 12 2011 11:58:18
Server's Module Magic Number: x
Server loaded:  APR 1.4.2, APR-Util 1.3.9
Compiled using: APR 1.2.12, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....

大文字の-Vまたは小文字の-vのどちらでもかまいませんが、rootとしてログインしていない限り、sudoを使用する必要がある場合があります。
sdexp 2018

27

コマンドは、使用しているLinuxのバージョンでのApacheサーバーの命名方法によって異なります。

DebianおよびMac OSの場合:

apachectl -v

Red HatとAmazonのEC2 Linuxを使用する場合:

httpd -v

Linuxの他のバージョンでは、次のことを試してください。

apache2 -v

2つの異なるフラグを使用できます。

-v # gives you the version number
-V # gives you the compile settings including version number.

user3786265のように完全なディレクトリでコマンドを実行したいが、apacheの場所がわからない場合は、whereis次のコマンドを使用します。

whereis httpd

1
鮮やかさ。あなたの答えは、Apacheのバージョンを見つけようとしている可能性のあるサーバー環境の範囲をカバーしています。それが私の質問だったら、私はこれを答えとしてマークしたでしょう。おそらく、私があなたの答えに追加することを提案する唯一のものは、共通のパスです。一部の環境では、コマンドが$ PATHに含まれていない場合があるため、これらのコマンドを実行しようとする人が行き詰まることがあります。たとえば、私のDebian環境では、$ /usr/sbin/apache2 -v単に$ apache2 -v戻るだけなので、使用する必要がありましたcommand not found。:このコマンドは、必要に応じて、ユーザーが、apacheのパスを見つけるのに役立ちますps -ef | grep apache
inspirednz

apache2 -vDebian(少なくともRaspberry Pi上のDebian 8(Jessie))でも動作します。
Peter Mortensen


15

sudoでお試しください

apachectl -V
-bash: apachectl: command not found

sudo apachectl -V
Server version: Apache/2.4.6 (Debian)
Server built:   Aug 12 2013 18:20:23
Server's Module Magic Number: 20120211:24
Server loaded:  APR 1.4.8, APR-UTIL 1.5.3
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   32-bit
Server MPM:     prefork
  threaded:     no
  forked:     yes (variable process count)
Server compiled with....
bla bla....

構成ファイルに現在構文エラーがある場合、これは機能しません
Wolfgang Fahl

12

バイナリまたはソースのインストールの種類を確認する必要があると思います。インストールされているバイナリパッケージを確認するには、root権限で次のコマンドを実行します。

dpkg -l |grep apache2

結果は次のようになります。

dpkg -l |grep apache2
ii  apache2                               2.4.10-10+deb8u8                      amd64        Apache HTTP Server
ii  apache2-bin                           2.4.10-10+deb8u8                      amd64        Apache HTTP Server (modules and other binary files)
ii  apache2-data                          2.4.10-10+deb8u8                      all          Apache HTTP Server (common files)
ii  apache2-doc                           2.4.10-10+deb8u8                      all          Apache HTTP Server (on-site documentation)

あなたが実行できるバージョンを見つけるには:

apache2ctl -V |grep -i "Server version"

結果は次のようになります:サーバーのバージョン:Apache / 2.4.10(Debian)


11

パッケージマネージャを直接使用することもできます。

dpkg -l | grep apache

これはバージョン番号だけに焦点を合わせているわけではありませんが、より広い範囲で検索が行われ、モジュールのバージョンなど、他の有用な情報が得られます。


apacheへの制限はdpkgに直接渡されるかもしれません。自動解釈の場合、リストではなく単一の値も必要です。「アンインストールされた」apache2- *パッケージは表示されません。dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-または もご検討くださいdpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
smoe 2017年

6

Debianベースのシステムにインストールされているパッケージ(Apacheを含む)のバージョンを確認する別の方法として、次の方法を使用できます。

apt-cache policy <package_name>

例:Apache

apt-cache policy apache2

これは次のようなものを表示します(Installed行を見てください):

$ apt-cache policy apache2
apache2:
  Installed: (none)
  Candidate: 2.2.22-1ubuntu1.9
  Version table:
     2.2.22-1ubuntu1.9 0
        500 http://hk.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     2.2.22-1ubuntu1 0
        500 http://hk.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

6

私にとってこれはDebian 6(Squeeze)で動作します

Linux www809 2.6.26-2-xen-686#1 SMP Wed Sep 21 09:56:47 UTC 2011 i686 GNU / Linux

私は正しい道に行かなければなりませんでした:

/usr/local/apache/bin** $ **./apachectl -v

./apachectl:71行目:ulimit:ファイルを開くことができません:制限を変更できません:操作は許可されていません
サーバーのバージョン:Apache / 2.2.21(Unix)
サーバーの構築:2011年12月17日19:57:53


5

コマンド「httpd -V」と「apachectl -V」を実行しようとしましたが、実行できず、エラーが発生しました:

-ksh:php:not found [そのようなファイルまたはディレクトリはありません]

それから私は別の方法を試しました。サーバーのApacheディレクトリに移動して、次のコマンドを実行してみました。

./apachectl -v

これは私のために働き、出力を返しました:

Server version: Apache/2.2.20 (Unix)
Server built:   Sep  6 2012 17:22:16

これがお役に立てば幸いです。


5
  1. apachectl -Vまたはを使用できますapachectl -v。どちらもApacheのバージョン情報を返します!

        xgqfrms:~/workspace $ apachectl -v
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
    
    
        xgqfrms:~/workspace $ apachectl -V
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
        Server's Module Magic Number: 20120211:27
        Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
        Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
        Architecture:   64-bit
        Server MPM:     prefork
          threaded:     no
            forked:     yes (variable process count)
        Server compiled with....
         -D APR_HAS_SENDFILE
         -D APR_HAS_MMAP
         -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
         -D APR_USE_SYSVSEM_SERIALIZE
         -D APR_USE_PTHREAD_SERIALIZE
         -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
         -D APR_HAS_OTHER_CHILD
         -D AP_HAVE_RELIABLE_PIPED_LOGS
         -D DYNAMIC_MODULE_LIMIT=256
         -D HTTPD_ROOT="/etc/apache2"
         -D SUEXEC_BIN="/usr/lib/apache2/suexec"
         -D DEFAULT_PIDLOG="/var/run/apache2.pid"
         -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
         -D DEFAULT_ERRORLOG="logs/error_log"
         -D AP_TYPES_CONFIG_FILE="mime.types"
         -D SERVER_CONFIG_FILE="apache2.conf"

  2. apache2 -Vまたはを使用する方が好きかもしれませんapache2 -v。覚えやすい!

        xgqfrms:~/workspace $ apache2 -v
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
    
    
        xgqfrms:~/workspace $ apache2 -V
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
        Server's Module Magic Number: 20120211:27
        Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
        Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
        Architecture:   64-bit
        Server MPM:     prefork
          threaded:     no
            forked:     yes (variable process count)
        Server compiled with....
         -D APR_HAS_SENDFILE
         -D APR_HAS_MMAP
         -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
         -D APR_USE_SYSVSEM_SERIALIZE
         -D APR_USE_PTHREAD_SERIALIZE
         -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
         -D APR_HAS_OTHER_CHILD
         -D AP_HAVE_RELIABLE_PIPED_LOGS
         -D DYNAMIC_MODULE_LIMIT=256
         -D HTTPD_ROOT="/etc/apache2"
         -D SUEXEC_BIN="/usr/lib/apache2/suexec"
         -D DEFAULT_PIDLOG="/var/run/apache2.pid"
         -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
         -D DEFAULT_ERRORLOG="logs/error_log"
         -D AP_TYPES_CONFIG_FILE="mime.types"
         -D SERVER_CONFIG_FILE="apache2.conf"


3

私にとってapachectl -Vはうまくいきませんでしたapachectl fullstatusが、私のバージョンをくれました。


「apachectl -v」は、Mac、CentOS、およびUbuntuで動作します。どのディストリビューションで走っていましたか?apachectl fullstatusがこれを機能させるにはmod_statusが必要です。したがって、それも普遍的な解決策ではありません。
Konzulic 2014年

apachectl fullstatus私にとってはうまくいきませんでした。/usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.(Debian 8-Raspberry Pi上のRaspbian)を入手しました。しかし、apachectl -Vうまくいきました。
Peter Mortensen、2016

3

Apacheの一部のインストールはfubar(Oracleのパッケージング、OHSと考えてください)であり、-Vフラグを理解していないか、ライブラリが見つからないエラーに遭遇することなく直接呼び出すことができません。

最も簡単な方法は、httpdバイナリstringsでコマンド(の一部binutils)を使用し、バージョンに似ている可能性がある文字列に対してgrepを使用することです。たとえば、httpdバイナリがディレクトリの下にあると仮定します/foo/bar

$ strings /foo/bar/httpd  | grep 2.2
GLIBC_2.2.5
Oracle-HTTP-Server/2.2.22 (Unix)
Success_Accepted_202
202 Accepted

ほとんどのバイナリ(すべてではない)には、静的な文字列としてバージョン(少なくともメジャーバージョン)が含まれています。これは、バージョンを取得するための(またはバイナリのヘルプメッセージが実際に実際にあるものと一致することを裏付ける)ための私の頼りになる方法です。


httpdこれが機能するために、現在のディレクトリにある必要はありませんか?
Peter Mortensen

1
これは、新しいUbuntuインストール内から、マウントされた古いルート上の以前のバージョンを見つけるのに役立ちました。言及する価値がある:「strings」はパッケージ「binutils」の一部
Zefiro

@PeterMortensen、うん。私は私の例では、httpdのは、現在のディレクトリにあるであろうと想定推測(と読者が例からということを推測し、必要に応じて調整するだろうと。)私はそれを反映するために、今、私の答えを編集しています
luis.espinal 2017年

@Zefiro、頭を上げてくれてありがとう。binutilsについて言及するように回答を更新します。
luis.espinal 2017年

2

または、直接より少なく:

nmap -A localhost -p 80


Apacheがバージョン情報をHTTPヘッダーに追加しないように設定されている場合、何も見つかりません。
Marki555 2015

nmapがインストールされていない可能性があります(例:Raspberry Pi):-bash: nmap: command not found
Peter Mortensen

2

確かに/ usr / sbin / apache2 -vをシェルに入力するのが最善で最も速い方法です。サーバーにPHPがあり、Apacheバージョン(および多くの詳細情報)簡単なプログラム手順。

ただ、作るinfo.php ApacheのWebルートフォルダ(またはものは何でもあなたのような)でファイルをし、その中にこれらを記述します。

<?php
    phpinfo();
?>

次にyoursite.com/info.php(またはローカルマシンの場合はlocalhost / info.php)にアクセスします。

PHPの変数セクションにApacheのバージョンが表示されます。次に例を示します。

phpinfo()のダンプページの例

また、これらの手順はPHP統合を備えたすべてのWebサーバーに適用されるので、Apacheに限定されないことに注意してください。一度作成すると、そのページは開発中に便利です(本番環境では削除することを忘れないでください)。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.