如何修复错误:在将域子域添加到apache2时,站点domain.com不存在?

时间:2012-05-11 19:53:57

标签: apache2 subdomain

我正在尝试将子域添加到我的家庭服务器。

svn.domain.com trac.domain.com

由于动态IP,我使用dyndns服务,最重要的是我将domain.com托管在其他地方。我为远程主机上的子域创建了CNAME,指向我的user.dyndns.org域。

所以现在当我访问子域名:trac或svn时,我看到“它有效!”消息。

这样做了,我在/ etc / apache2 / sites-enabled

下创建了两个虚拟主机文件

file1:svn.domain.com和file2:trac.domain.com

内容:

<VirtualHost *:80>

  ServerName trac.domain.com

   DocumentRoot = /var/www/trac/repos

   <Directory /var/www/trac/repos>
    Order allow,deny
    allow from all
   </Directory>

</VirtualHost>

<VirtualHost *:80>

  ServerName svn.domain.com

   DocumentRoot = /var/svn/repos

   <Directory /var/svn/repos>
    Order allow,deny
    allow from all
   </Directory>

</VirtualHost>

但我收到错误:错误:网站trac.domain.com不存在!

我做错了什么?

7 个答案:

答案 0 :(得分:110)

从Apache 2.2升级到Apache 2.4时出现此问题。 (荒谬的)解决方案是确保所有文件以.conf结束,或a2ensite结束ERROR: Site example does not exist!

此外,在sites-enabled中手动关联时,如果没有.conf扩展名,它们甚至无法加载。

答案 1 :(得分:19)

当我从Apache 2.2升级到2.4时,我也遇到了同样的问题;我的所有虚拟主机突然断了,在试图寻找原因的时候,我偶然发现了这个问题。

事实证明,原因是我的旧apache2.conf和新apache2.conf之间存在差异。我的旧Apache 2.2 conf文件有行

Include sites-enabled/

而我的新Apache 2.4 conf文件有行

IncludeOptional sites-enabled/*.conf

瞧,当我把线路改为

IncludeOptional sites-enabled/
一切都恢复正常了。

答案 2 :(得分:7)

尝试将文件移至/ sites-available。然后运行a2ensite svn.domain.coma2ensite trac.domain.com并重新加载Apache。

答案 3 :(得分:3)

a2ensite仅接受.conf文件,因此复制站点中的所有站点 - 可用,因此具有.conf扩展名(重命名不起作用,导致链接方法),从可用站点和已启用站点的站点中删除原始文件。在新文件上使用a2ensite(你不需要添加.conf)这一切都可行,我们没有/etc/apache2/apach2.conf中的* .conf

原始文件必须有一些“记忆”,即使它被重命名 - 符号链接也重命名,但是擦除&amp;启用“新”.con文件,然后您可以像以前一样使用a2dissite和a2ensite

答案 4 :(得分:3)

如果您键入a2ensite。它会提示。您希望启用哪些站点(即,在将.conf文件放入站点后可用并从启用站点链接它。

a2ensite期望使用.conf扩展名

的conf文件的全名

答案 5 :(得分:0)

1)删除sites-enable中的所有默认网站

a2dissite <site-configuration-file-name>

2)仔细查看配置文件:从最小属性开始:

<VirtualHost [Domain]:80>
ServerAdmin webmaster@localhost
ServerName [Domain]
DocumentRoot [webAppPath]

<Directory [webAppPath]>
    AllowOverride All
     Order allow,deny
     Allow from all
     Require all granted
</Directory>


ErrorLog ${APACHE_LOG_DIR}/my_domain_name_error.log

CustomLog ${APACHE_LOG_DIR}/my_domain_name_access.log combined
</VirtualHost>

答案 6 :(得分:0)

我的本​​地服务器名称解决方案正在取代:

sudo a2ensite serverName

sudo a2ensite serverName.conf