19

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

svn.domain.com trac.domain.com

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

所以现在当我访问任何一个子域时:trac 或 svn,我看到“它有效!” 信息。

完成后,我在 /etc/apache2/sites-enabled 下创建了两个虚拟主机文件

文件 1:svn.domain.com 和文件 2: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 不存在!

我究竟做错了什么?

4

7 回答 7

110

从 Apache 2.2 升级到 Apache 2.4 时我遇到了这个问题。(荒谬的)解决方案是确保所有文件都以.conf或.a2ensiteERROR: Site example does not exist!

此外,当在 中手动链接时sites-enabled,它们甚至不会在没有.conf扩展名的情况下加载。

于 2013-07-15T23:17:12.463 回答
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/

一切恢复正常。

于 2013-08-03T02:19:06.067 回答
8

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

于 2012-05-11T20:01:51.967 回答
4

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

a2ensite 期望具有 .conf 扩展名的 conf 文件的全名

于 2013-10-31T06:49:27.323 回答
3

a2ensite 仅接受 .conf 文件,因此复制可用站点中的所有站点,以便具有 .conf 扩展名(重命名不起作用,它以某种方式混淆了链接),从可用站点和启用站点中删除原始文件。在新文件上使用 a2ensite(您不需要添加 .conf)并且一切正常,我们在 /etc/apache2/apach2.conf 中没有 *.conf

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

于 2013-10-21T15:19:24.180 回答
0

1)删除站点启用中的所有默认站点

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>
于 2013-11-11T20:27:36.207 回答
0

我的本地服务器名称解决方案正在替换:

sudo a2ensite serverName

sudo a2ensite serverName.conf
于 2014-06-24T15:05:16.853 回答