如何检查Web服务器是否安装在Linux机器上?

早上好,

基本问题:-)

  1. 如何检查Web服务器是否安装在Linux机器上? 我不知道是否安装任何Web服务器。 如果安装,我想用它来build立一个Web服务。

  2. 如果安装了一个web服务器,如何检查它的安装位置,path,属性等。

感谢您的时间!

如果Web服务器处于活动状态,则很容易分辨出来,但是如果安装了Web服务器,但没有激活,则会更困难,因为可能安装了十几个不同的Web服务器(但尚未启动)。 您可以通过以下方式确定是否在http(80)的默认端口上启用了Web服务器:

$ telnet hostname 80 

其中hostname是感兴趣的机器的主机名或IP地址。 如果您有权访问感兴趣的机器的shell,那么您可以使用localhost ,例如,如果有一个web服务器处于活动状态,您将看到如下所示的内容:

 $ telnet localhost 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 

如果你输入类似的东西:

 GET /foo 

您将收到一条错误消息,告诉您有关安装了哪个Web服务器的信息。 例如:

 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /status was not found on this server.</p> <hr> <address>Apache/2.2.22 (Ubuntu) server at 127.0.1.1 Port 80</address> </body></html> Connection closed by foreign host. 

这会告诉你Apache 2.2.22版本已经安装并运行在运行shell的机器上。

如果没有Web服务器处于活动状态,则会看到如下所示的内容:

 $ telnet localhost 80 Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection refused 

在这种情况下,事情变得更具特定的分布(你发现什么地方,哪里依赖于Linux发行版安装)。 您可以尝试通过检查公共服务名称或安装的文件和目录来查看是否安装了Web服务器,但未启用Web服务器。 你可以尝试:

 $ service apache2 status 

要么

 $ service httpd status 

你可能会得到:

 Apache2 is NOT running. 

这至少告诉你, Apache已经安装,但没有运行,而:

 apache2: unrecognized service 

…会告诉你Apache 没有安装。 但是,可能会安装另一个网络服务器。

您可能还会检查/var/www/目录,或者默认情况下web服务器通常存储文件的另一个目录,例如:

 $ ls /var/www 

不幸的是,如果不知道在感兴趣的机器上安装了哪些发行版(例如Debian,Ubuntu,RedHat,CentOS,Fedora,…),就很难给出一个好的答案。

以Apache HTTP server为例,有一个指令调用serverSignature

用HTTP响应头检查可能有类似的东西

 server: Apache/2.2.17 (Win32) PHP/5.2.17 

当然,服务器可以关闭此功能

你可以尝试firefox插件“Web Developer”来获取这些HTTP标头

检查操作系统的最佳方法是找到服务器主机,获取用户帐户并进行登录:-)

对于第二个问题,请登录并搜索该操作系统的专用教程