首页 文章

在Debian机器上安装的Apache版本

提问于
浏览
295

如何查看Debian机器上安装的Apache版本?

这样做有命令吗?

17 回答

  • 31

    试试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 运行命令 .

  • 5

    这适用于我的Debian:

    $ /usr/sbin/apache2 -v
    
  • 3

    对于较新的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....
    
  • 392

    我正在使用Red Hat Linux并且以下命令有效:

    httpd -V
    
  • 15

    该命令取决于您的Linux版本如何命名Apache服务器 .

    在Debian和Mac OS上:

    apachectl -v
    

    在Red Hat和亚马逊的EC2 Linux上使用:

    httpd -v
    

    关于Linux的其他版本,请尝试:

    apache2 -v
    

    您可以使用两个不同的标志:

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

    如果要使用像user3786265这样的完整目录运行该命令,但不知道您的apache所在的位置,请使用 whereis 命令:

    whereis httpd
    
  • 3

    尝试使用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....
    
  • 2

    您也可以直接使用包管理器:

    dpkg -l | grep apache
    

    这不仅仅关注版本号,但它会进行更广泛的搜索,这将为您提供其他有用的信息,如模块版本 .

  • 8

    我想你必须确定你有二进制或源代码的安装类型 . 要检查安装了哪些二进制包:使用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)

  • 24

    对我来说,这适用于Debian 6(挤压):

    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

  • 1

    在基于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
    
  • 25

    我尝试运行命令“httpd -V”和“apachectl -V”,但我无法执行并收到错误:

    -ksh:php:找不到[没有这样的文件或目录]

    然后我尝试了另一种方式 . 我去了服务器上的Apache目录,然后尝试执行命令:

    ./apachectl -v
    

    这对我有用,并返回输出:

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

    我希望这有帮助 .

  • 10
    • 您可以使用 apachectl -Vapachectl -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"
    
    • 您可能更喜欢使用 apache2 -Vapache2 -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"
    
  • 6

    对我来说 apachectl -V 没有用,但 apachectl fullstatus 给了我我的版本 .

  • 5

    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
    

    大多数二进制文件(不是全部)都包含它们的版本(至少是它们的主要版本)作为静态字符串 . 这是我获取版本的最佳方式(或证实二进制文件的帮助信息与实际的真实情况相符 . )

  • 5

    或者,不那么直接:

    nmap -A localhost -p 80

  • 2

    肯定在shell中键入/ usr / sbin / apache2 -v是最好和最快的方法,顺便说一下's another option, just in case there' s PHP也在你的服务器中,你有兴趣快速收集Apache版本(以及更多的信息)程序化的步骤 .

    只需在您的Apache Web根文件夹(或您喜欢的任何内容)中创建一个 info.php 文件,并在其中写入:

    <?php
        phpinfo();
    ?>
    

    现在转到yoursite.com/info.php(或本地机器的localhost / info.php) .

    您将在PHP变量部分中看到您的Apache版本,这是一个示例:

    phpinfo() example dump page

    此外,请注意这些步骤显然适用于 any web server 与PHP集成,所以它's not limited to Apache and once created that page could be handy while developing (just don'忘记在 生产环境 环境中删除它!!)

  • 140
    dlocate -s apache2 | grep '^Version:'
    

相关问题