在 Ubuntu 中设置子域名时遇到问题

在 Ubuntu 中设置子域名时遇到问题

我刚刚设置了一个 Ubuntu Web 服务器和 Amazon EC2 的微型实例。一切运行良好,我已成功配置 VirtualHost,但在设置子域时遇到了困难。以下是我所做的:

$ mkdir /var/www/mydomain
$ mkdir /var/www/mysubdomain
$ chmod -R 774 /var/www/mydomain
$ chmod -R 774 /var/www/mysubdomain

$ vim /etc/apache2/sites-available/mydomian

<VirtualHost *:80> 
 ServerAdmin [email protected] 
 ServerName mydomain.com 
 ServerAlias www.mydomain.com 
 DocumentRoot /var/www/mydomian 
</VirtualHost> 

$ vim /etc/apache2/site-available/mysubdomain

<VirtualHost *:80> 
 ServerName mysubdomain.localhost # also tried mysubdomain.mydomain.com 
 DocumentRoot /var/www/mysubdomian

 <Directory /var/www/mysubdomain/ >
  Options Indexes FollowSymLinks MultiViews +Includes
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

</VirtualHost> 

$ ln -s /etc/apache2/sites-available/mydomian /etc/apache2/sites-enabled/mydomian
$ ln -s /etc/apache2/sites-available/mysubdomain /etc/apache2/sites-enabled/mysubdomain

重新启动 Apache 后,mydomain.com 可以正常工作,但 mysubdomain.mydomain.com 无法正常工作。有什么想法吗?

PS 我还将 staging.localhost 添加到 /etc/hosts(不确定是否需要这样做,但是......)

答案1

删除 /etc/apache2/sites-enabled 中的所有符号链接,然后

sudo a2ensite mydomain
sudo a2ensite mysubdomain
sudo apache2ctl restart

另外,请确保您的 NameVirtualHost 指令位于读取 VirtualHost 配置之前。一个简单的方法是将其添加到 /etc/apache2/ports.conf

您可能在 sites-available 中有一个默认配置(可能在 sites-enabled 中被符号链接为 000-default)。如果您想保留该默认配置,您可以在该文件的开头添加 NameVirtualHost 行。

答案2

您的 NameVirtualHost 可能是错误的..它应该与您的虚拟主机部分中的内容相匹配,因此应该是

NameVirtualHost *:80

也不确定这是什么

$ ln -s /etc/apache2/sites-available/mydomian $ vim /etc/apache2/sites-enabled/mydomian

我猜是打字错误?但是它们在 sites-enabled 中可以吗?

答案3

我找到了问题,感谢大家的帮助。事实证明我的 apache 配置文件没有问题。我需要在我的域名注册商处创建一个指向 EC2“弹性”IP 的 A(主机)记录。

相关内容