我正在研究一个我从某人那里继承的服务器,而且我不是dns问题的大专家。 服务器托管多个域,它们都位于名为/ vhosts /的文件夹下。 我似乎无法理解域名如何指向其各自的文件夹。我检查了httpd.config,没有这样的指令:
<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain
</VirtualHost>
我还检查了域管理员,他们都指向服务器ip。我错过了什么?
答案 0 :(得分:9)
DocumentRoot
是指示特定托管域的文件夹名称的指令。对于托管在服务器上的每个域,<VirtualHost>
文件中将有一个httpd.conf
节点。例如,example1.com和example2.com托管在此服务器上,它们的请求分别来自/ vhosts / www / example1和/ vhosts / www / example2。
<VirtualHost *>
DocumentRoot /vhosts/www/example1
ServerName www.example1.com
# Other directives here
</VirtualHost>
<VirtualHost *>
DocumentRoot /vhosts/www/example2
ServerName www.example2.org
# Other directives here
</VirtualHost>
有时这些设置是在其他配置文件中定义的。其他配置文件在启动期间包含在httpd.conf中。如果您无法找到包含该文件的文件,那么我建议您运行
grep -ri "VirtualHost" /
。
答案 1 :(得分:4)
系统可以配置为大规模虚拟主机:
或者,可以在通过Include语句引入的包含文件中声明虚拟主机的配置。检查httpd.config
是否包含其他虚拟主机的包含声明...
如果所有其他方法都失败了,请转到配置目录的根目录并运行以下命令:
sudo grep -Ri www.domain.tld .
应该给你一个提示在哪里看......