![在 ubuntu 服务器上设置子域名](https://linux22.com/image/1102169/%E5%9C%A8%20ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E8%AE%BE%E7%BD%AE%E5%AD%90%E5%9F%9F%E5%90%8D.png)
我在 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 正常运行。您可以使用A
、AAAA
或CNAME
记录,只要它指向您的 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 记录。
请记住,我还必须添加 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