Answers:
尝试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
。
apache2ctl -V
如果没有root特权,则无法运行(...,并且它不会打印版本)。而它可以在具有Apache 2.2的Ubuntu 12上运行。整rick
Debian 7.1
这适用于我的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....
该命令因您的Linux版本如何命名Apache服务器而异。
在Debian和Mac OS上:
apachectl -v
在Red Hat和Amazon的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
$ /usr/sbin/apache2 -v
因为$ apache2 -v
return command not found
。如果需要,此命令将帮助用户找到apache的路径:ps -ef | grep apache
我正在使用Red Hat Linux,并且以下命令有效:
httpd -V
尝试用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....
我认为您必须确定二进制或源代码的安装类型。要检查安装了哪些二进制软件包:具有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)
您也可以直接使用包管理器:
dpkg -l | grep apache
这不仅关注版本号,而且会进行更广泛的搜索,这将为您提供其他有用的信息,例如模块版本。
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
。
在基于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
您可以使用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"
您可能更喜欢使用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"
对我来说apachectl -V
没有用,但是apachectl fullstatus
给了我我的版本。
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
确实可行。
Apache的某些安装很麻烦(请以Oracle的OHS包装为例),并且不了解-V标志,也不能直接调用它而不会遇到丢失的库错误。
最简单的方法是使用httpd二进制文件和grep上的strings
命令(的一部分binutils
)来查找可能类似于版本的字符串。例如,假设您的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
需要在此工作的当前目录?
或者,不那么直接:
nmap -A localhost -p 80
-bash: nmap: command not found
当然,最好/最快的方式是在外壳中输入/ usr / sbin / apache2 -v,这是另一种选择,以防万一您的服务器中也有PHP并且您有兴趣收集Apache版本(还有很多)更多信息)。
只需在您的Apache Web根文件夹(或任何您喜欢的文件)中创建一个info.php文件,并将其写入其中:
<?php
phpinfo();
?>
现在转到yoursite.com/info.php(对于本地计算机,则为localhost / info.php)。
您将在PHP Variables部分中看到您的Apache版本,下面是一个示例:
另外,请注意,这些步骤显然适用于任何与PHP集成的Web服务器,因此它不仅限于Apache,而且一旦创建该页面,在开发时便会很方便(只是不要忘记在生产环境中将其删除!)