如何检测一台服务器上有多少网站?

如何检测一台服务器上有多少网站?
如何检测一台服务器上有多少网站?

本文适用于使用 Apache 网站服务器的系统环境。

方法一:

要检查一台服务器上托管了哪些网站,我们可以执行下面的命令:

# apachectl -t -D DUMP_VHOSTS

接下来,我们可以检查选项 namevhost 对应的域名和相应配置文件。例如

# apachectl -t -D DUMP_VHOSTS
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server 192.168.88.87 (/etc/httpd/conf.d/192.168.88.87.conf:1)
         port 80 namevhost 192.168.88.87 (/etc/httpd/conf.d/192.168.88.87.conf:1)
         port 80 namevhost www.example.net (/etc/httpd/conf.d/hooks.conf:1)
                 alias example.net
                 alias www.example.net

如果想知道网站 example.net 根目录所在的位置:

# grep DocumentRoot /etc/httpd/conf.d/hooks.conf
    DocumentRoot /vhosts/www.example.net/
# cd /vhosts/www.example.net/
# ls -la
total 4484
drwxr-xr-x  6 apache apache    4096 Feb 10 11:59 .
drwxr-xr-x 14 root   root      4096 Feb 23 08:54 ..
-rw-r--r--  1 root   root      1078 Dec 19 09:31 favicon.ico
-rw-r--r--  1 apache apache     195 Dec 25 14:51 .htaccess
-rw-r--r--  1 apache apache      98 Dec  7 10:52 index.html

还应该注意一下网站的别名指令,如下所示:

<VirtualHost *:80>
   ServerName example.net
   ServerAlias www.example.net
   ...
   DocumentRoot /vhosts/default/public_html/
   Alias /api/ /vhosts/default/public_api/
   ...
</VirtualHost>

方法二:

尝试使用如下的命令:

find / -type f \( -iname "*index.html*" -o -iname "*index.php*" \) 2> /dev/null

如果是从 Ubuntu 存储库安装的 Apache,可以查看如下目录:/etc/apache2/sites-available

grep -niR "example.com" /etc/apache2/sites-available

如果定义了 apache 的 VHOST 虚拟主机,则可能会找到配置文件,然后查看该文件中的"documentroot",然后就能知道网站根目录的位置了。

原创文章,作者:牛奇网,如若转载,请注明出处:https://www.niuqi360.com/linux/find-all-the-web-site-directory-in-linux/

发表评论

登录后才能评论