在 ubuntu 服务器上设置子域名

在 ubuntu 服务器上设置子域名

我在 mysite.no-ip.org 有一台服务器。一切运行正常,我有一个博客和 owncloud,我可以通过 mysite.no-ip.org/blog 和 mysite.no-ip.org/owncloud 访问它们。现在,我想创建子域名,以便可以写入 blog.mysite.no-ip.org 和 owncloud.mysite.no-ip.org。

我对此进行了大量研究,其中最简单的教程就是我遵循的这个。 http://www.bcat.eu/blog/local-subdomains-under-ubuntu-linux-and-apache-2-4-tutorial/ 只是我不在服务器上,而是通过远程 ssh 进入,所以如果我使用 localhost,我相信我无法看到它是否有效。这是我的第一个障碍,我可以不在服务器旁边的情况下按照本教程进行操作吗?

我还刚刚发现了 CNAME 记录(我不太确定)似乎对我想要做的事情很有必要。我使用 no-ip.org,并尝试遵循类似这样的方法,但这也不太清楚https://support.uberflip.com/entries/235780-4-4-5-how-to-setup-a-cname-redirect#noip

有人能指点一下吗?这对我来说相当可疑,我不知道我是否离解决方案很远或很接近(至少如果我可以尝试 localhost,这将是检查我的 Apache 配置的第一步,但我甚至无法做到这一点,因为我使用 ssh)。

无论如何,提前感谢您的帮助。任何帮助,链接都欢迎。

答案1

这实际上非常容易。

首先确保您的 DNS 正常运行。您可以使用AAAAACNAME记录,只要它指向您的 IP 地址即可。

在继续之前,请检查它是否正常工作!这将为您省去很多麻烦。您可以使用ping subdomain.mydomain.com或进行检查nslookup subdomain.mydomain.com。如果它指向您的 IP 地址,那就没问题了。

请注意,DNS 更改可能需要长达 24 小时。如果您想立即继续,可以编辑主机文件以手动添加子域。请注意,这仅适用于您当前的 PC,因此您应该在 24 小时后再次检查 DNS,以确保它在其他地方也能正常工作(检查之前,请不要忘记将您的更改恢复到主机文件)。

去做这个:

sudo nano /etc/hosts

添加如下行(当然替换 IP 和主机名):

34.54.235.64 subdomain.mydomain.com

并保存文件。

现在更新您的 Apache2 配置。

只需添加这个 VirtualHost 即可:

<VirtualHost *:80>
    ServerName subdomain.mydomain.com
    DocumentRoot /var/www/subdomain.mydomain.com
</VirtualHost>

现在创建/var/www/subdomain.mydomain.com并重新启动 Apache2:

mkdir -p /var/www/subdomain.mydomain.com
sudo service apache2 restart

启用站点:

sudo a2ensite subdomain.mydomain.com

对要添加的每个子域重复此操作。

答案2

就我而言,我所缺少的只是在我的 GoDaddy 域 DNS 设置中添加 A 记录。

请记住,我还必须添加 VirtualHost 和 a2ensite。


cp /etc/apache2/site-available/000-default.conf /etc/apache2/site-avaiable/subdomain.mydomain.com 

<VirtualHost *:80>
    ServerName subdomain.mydomain.com
    DocumentRoot /var/www/subdomain.mydomain.com
</VirtualHost>

a2ensite

sudo a2ensite subdomain.mydomain.com

重新启动 apache sudo systremctl reload apache2

答案3

就我而言,我所缺少的只是在我的 GoDaddy 域 DNS 设置中添加 A 记录。

为子域名插入 A 记录

请记住,我还必须添加 VirtualHost 和 a2ensite。


   /etc/apache2/sites-available
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/subdomain.mydomain.com 

<VirtualHost *:80>
    ServerName subdomain.mydomain.com
    DocumentRoot /var/www/subdomain.mydomain.com
</VirtualHost>

a2ensite

sudo a2ensite subdomain.mydomain.com

重新启动 apache sudo systremctl reload apache2

相关内容