Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安装在Debian机器上的Apache版本_Apache_Debian_Version - Fatal编程技术网

安装在Debian机器上的Apache版本

安装在Debian机器上的Apache版本,apache,debian,version,Apache,Debian,Version,如何检查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

如何检查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

运行该命令,或者更直接地运行以下命令:

dpkg -l | grep apache

nmap-A localhost-p80

对我来说
apachectl-V
不起作用,但
apachectl-fullstatus
给了我我的版本。

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

这适用于我的Debian:

$ /usr/sbin/apache2 -v
对我来说,这在(挤压)上起作用:

Linux www809 2.6.26-2-xen-686#1 SMP周三9月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

用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....
我正在使用以下命令,并且以下命令有效:

httpd -V

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

dpkg -l | grep apache

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

另一种方法是检查基于Debian的系统上安装的软件包(包括Apache)版本,我们可以使用:

apt-cache policy <package_name>
这将显示如下内容(查看
已安装的
行):


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

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

然后我尝试了另一种方法。我转到服务器上的Apache目录,然后尝试执行以下命令:

./apachectl -v
这对我有效,并返回了输出:

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

我希望这会有所帮助。

该命令根据您的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

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
大多数二进制文件(不是全部)都将其版本(至少是主版本)作为静态字符串包含。这是我获取版本的必经之路(或者证实二进制代码的帮助消息与实际情况相符)

  • 您可以使用
    apachectl-V
    apachectl-V
    。它们都将返回Apache版本信息

    xgqfrms:~/workspace$apachectl-v
    服务器版本:Apache/2.4.7(Ubuntu)
    服务器构建时间:2016年7月15日15:34:04
    xgqfrms:~/workspace$apachectl-V
    服务器版本:Apache/2.4.7(Ubuntu)
    服务器构建时间:2016年7月15日15:34:04
    服务器模块幻数:20120211:27
    已加载服务器:APR 1.5.1-dev,APR-UTIL 1.5.3
    使用以下命令编译:APR 1.5.1-dev、APR-UTIL 1.5.3
    架构:64位
    服务器MPM:预工作
    A:没有
    分叉:是(可变进程计数)
    使用…编译的服务器。。。。
    -D APR\u已发送文件
    -4月4日有MMAP
    -D APR\u已启用IPV6(IPv4映射地址)
    -D APR\u USE\u SYSVSEM\u序列化
    -D APR_使用线程_序列化
    -D单个\u侦听\u未序列化\u接受
    -你有别的孩子吗
    -是否有可靠的管道日志
    -D动态模块极限=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_运行时状态”
    -D DEFAULT_ERRORLOG=“logs/error_log”
    -D AP\u TYPES\u CONFIG\u FILE=“mime.TYPES”
    -D SERVER_CONFIG_FILE=“apache2.conf”
    当然,在shell中键入/usr/sbin/apache2-v是最好、最快的方法,顺便说一句,这里还有另一个选项,以防您的服务器中也有PHP,并且您有兴趣通过快速编程步骤收集Apache版本(以及更多信息)

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

    <?php
        phpinfo();
    ?>
    
    
    
    现在转到yoursite.com/info.php(或本地计算机的localhost/info.php)

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


    另外,请注意,这些步骤显然适用于具有PHP集成的任何web服务器,因此它不仅限于Apache,而且一旦创建了该页面,在开发时可能会很方便(只是别忘了在生产环境中删除它!!)

    我认为您必须确定您的安装类型是二进制还是源代码。 要检查安装了哪些二进制软件包:使用root权限执行以下命令:

    dpkg -l |grep apache2
    
    结果应该是:

    dpkg -l |grep apache2
    
    ii apache2 2.4.10-10+deb8u8 amd64 Apache HTTP服务器
    ii apache2 bin 2.4.10-10+deb8u8 amd64 Apache HTTP服务器(模块和其他二进制文件)
    ii apache2数据2.4.10-10+deb8u8所有Apache HTTP服务器(通用文件)
    ii apache2文档2.4.10-10+deb8u8所有Apache HTTP服务器(现场文档)
    
    要查找版本,您可以运行:

    apache2ctl -V |grep -i "Server version"
    
    结果应该是这样的
    dpkg -l |grep apache2
    
    apache2ctl -V |grep -i "Server version"