如何为 apache 设置子域名?

如何为 apache 设置子域名?

我搜索了这个网站,但找不到我这个简单问题的答案。我在 Red Hat Enterprise Linux 4 (x86_64) 上安装了 apache2、php 5 和 mysql 5.1。目前,我将其设置为http://mysite.company.com指向我们网站的生产版本。我想要做的是设置http://dev.mysite.company.com指向我们的开发环境。我尝试过这样:

$ cat /usr/local/apache2/conf/http.conf
...
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName mysite.company.com
    DocumentRoot "/var/www"
</VirtualHost>

<VirtualHost *:80>
    ServerName dev.mysite.company.com
    DocumentRoot "/var/wwwdev"
</VirtualHost>
...

现在,http://mysite.company.com有效,但是http://dev.mysite.company.com未找到。我是否应该与 IT 人员讨论将 dev.mysite.company.com 添加到他们的 DNS 查找表中?我在这里做错了什么?非常感谢您的帮助。谢谢。

答案1

请先验证是否存在指向您的虚拟主机的 DNS 记录。之后将以下内容添加到 httpd.conf 的最后一行


Include /etc/httpd/conf/site-enabled/
创建包含我们的 vhost 配置文件的目录 site-enabled

sudo mkdir /etc/httpd/conf/site-enabled/

创建文件 /etc/httpd/conf/sites-enabled/mysite_company_com.conf


<VirtualHost mysite.company.com>
   ServerName mysite.company.com
   ServerAdmin [email protected]
   DocumentRoot /var/www
   ErrorLog /var/log/apache2/mysite.company.com-error.log
   CustomLog /var/log/apache2/mysite.company.com-access.log common

</VirtualHost>

并将上述行添加到 /etc/httpd/conf/sites-enabled/dev_mysite_company_com.conf:

<VirtualHost dev.mysite.company.com>
   ServerName mysite.company.com
   ServerAdmin [email protected]
   DocumentRoot /var/wwwdev
   ErrorLog /var/log/apache2/dev.mysite.company.com-error.log
   CustomLog /var/log/apache2/dev.mysite.company.com-access.log common
</VirtualHost>

最后重新启动apache。

答案2

您肯定需要在 DNS 中设置 dev.mysite.company.com 的 A 记录才能使此配置正常工作。如果无法解析,您的浏览器就无法知道从哪个 IP 请求网站。

答案3

是的,子域名需要 DNS 中有效的 A 或 CNAME 记录。

相关内容