安装在Debian机器上的Apache版本

如何检查在Debian机器上安装了哪个版本的Apache?

有这样的命令吗?

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

这适用于我的Debian:

 $ /usr/sbin/apache2 -v 

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

我使用的是Red Hat Linux ,下面的命令可以工作:

 httpd -V 

该命令根据您的Linux版本如何命名Apache服务器而有所不同。

在Debian和Mac OS上:

 apachectl -v 

在红帽和亚马逊的EC2 Linux上使用:

 httpd -v 

在Linux的其他verisons尝试:

 apache2 -v 

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

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

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

 whereis httpd 

尝试与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.... 

您也可以直接使用软件包pipe理器:

 dpkg -l | grep apache 

这不是仅仅关注版本号 ,而是更广泛的search,它会给你其他有用的信息,比如模块版本。

对我来说,这在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)
服务器内置:12月17 2011 19:57:53

另一种方法检查基于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 

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

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

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

 ./apachectl -v 

这对我工作,并返回输出:

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

我希望这有帮助。

  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" 

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

对我来说apachectl -V没有工作,但apachectl fullstatus给了我我的版本。

一些Apache的安装是fubar(考虑Oracle的包装,OHS),不理解-V标志,也不能直接调用,而不会遇到缺less的库错误。

最简单的方法是在httpd二进制文件中使用strings命令( binutils一部分),grep中使用可能类似于一个版本的string。 例如,假设你的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 

大多数二进制文件(不是全部)都包含它们的版本(至less是它们的主要版本)作为静态string。 这是我得到版本的方法(或者证实二进制的帮助信息与现实中的真实情况是相匹配的)。

或者不那么直接:

nmap -A localhost -p 80

 dlocate -s apache2 | grep '^Version:' 

当然,在shell中input/ usr / sbin / apache2 -v是最好的和最快捷的方式,顺便提一下,另外一个select是,如果你的服务器上也有PHP,并且你有兴趣收集Apache版本更多的信息)在快速的程序化步骤。

只需在你的Apache web根文件夹(或任何你喜欢的)中创build一个info.php文件,然后在里面写下这些文件:

 <?php phpinfo(); ?> 

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

您将在PHPvariables部分看到您的Apache版本,这里是一个例子:

phpinfo()示例转储页面

此外,请注意,这些步骤显然适用于任何与PHP集成的Web服务器 ,所以它不仅限于Apache,而且一旦创build该页面可以在开发时方便(只是不要忘记在生产环境中删除它!