早上好,
新手警报!!:)
我在我的 FreeBSD 服务器上创建了一个虚拟主机,并将域名指向该服务器。我将站点文件上传到 /home/servername/www/virtualhostname。我看到 /usr/local/apache2/htdocs 中还有 alos 文件。这些是通用的“欢迎使用您的服务器”HTML 文件和图像文件。
为了让服务器呈现 /home/servername/www/virtualhostname 中的文件,我是否需要从 /usr/local/apache2/htdocs 中删除文件?
谢谢,席德
编辑:
/usr/local/apache2/conf/httpd.conf 包含以下内容:
DocumentRoot "/usr/local/apache2/htdocs"
因此,将 DocumentRoot 更改为虚拟主机的目录是否可取?或者,我是否应该将网站文件放在上述 DocumentRoot 中并让其运行?
答案1
首先,确保您的域名指向您正在使用的服务器的正确 IP,一个简单的方法ping domain.com
就可以做到,但您也可以使用 tracert domain.com 或 traceroute,具体取决于您从哪里检查它。
之后,找到该文件httpd.conf
,vhosts.conf
这些就是您的 Web 服务器配置文件。
检查是否vhosts.conf
为空,如果不为空,请查找 DocumentRoot 条目并通过更新您的问题为我们发布内容,如果为空,请转到httpd.conf
并查找<virtualhost
条目,如果有,则表示您的网络服务器正在使用服务器 DocumentRoot 目录。
通常服务器的 DocumentRoot 目录是这样的,/var/www/htdocs
但它可能会因安装不同而改变,也可能因操作系统不同而改变。
要验证您拥有哪一个,请在 httpd.conf 中查找DocumentRoot
不在任何内的条目virtualhost
,并且它前面的就是您的主根目录的路径。
最好为相关域创建自己的 VirtualHost,如果您有一个 vhosts.conf 文件,请将下面的内容添加到其中,替换您自己的域所需的内容,如果您没有 vhosts.conf,请在 httpd.conf 文件末尾添加:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /home/servername/www/virtualhostname/
ServerAdmin [email protected]
ErrorLog /home/servername/logs/domain.com_error_log
CustomLog /home/servername/logs/domain.com_access_log combined
</VirtualHost>
确保您已经创建了/home/servername/logs
用于保存日志文件的目录,或者已将其指向您喜欢的某个位置。
Apache 网络服务器的工作方式如下:
如果您没有配置虚拟主机,它将通过定义的 ip 或 ServerName 指向服务器 DocumentRoot。
如果您确实有虚拟主机,那么当您使用服务器的 ServerName(这是在您的虚拟主机之外和之前的 ServerName 中定义的域
httpd.conf
)时,您才会访问服务器的 DocumentRoot,否则它将引导您进入配置文件中的第一个虚拟主机。假设您的第一个域名是 blabla.com,它使用虚拟主机 *:80,这意味着如果用户没有定义任何要访问的域名,则绑定到您的网络服务器的任何 IPS 都将指向该虚拟主机,例如,用户访问您的 IP 而不是域名。
- 如果您总是使用域名来访问您的域,那么这并不重要,只要您的虚拟主机配置良好,您就可以到达您想要的位置和您想要的文件。