我在 Amazon AWS(Ubuntu 服务器)上有一个实例。
我想为我的网站创建一个子域名:tools.example.com
供我办公室里的人们使用,并构建工具(使用 PHP)以便员工使用。(例如代码自动化网络应用程序)。
我自己从来没有在 Linux 服务器上创建过子域名(我通常与使用 cPanel 等的托管公司合作),而且我是 Amazon AWS 的新手,我发现它非常棒,并且使用 Linux 服务器并自己完成所有工作 - 非常棒!
因此,我开始探索如何在我的网站上创建子域名,并且我知道我有两个选择,但我不知道它们之间有什么区别,会对我的工作产生什么影响等等。
第一个选项是使用 Amazon Route53 创建子域:http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewSubdomain.html
我遇到的第二种选择是使用 Ubuntu 服务器本身执行此操作,例如: https://askubuntu.com/questions/463618/setting-up-subdomain-on-ubuntu-server http://kim.sg/index.php/ubuntu/17-如何设置-ubuntu-server 上的子域名-14-04
有些事情对我来说似乎有点模糊,我很高兴能从那些对理论“东西”了解更多的人那里得到更多的启发,并知道如何指导我做出最适合我的选择。
请随时向我提问。
对于@Stefano Martins(2015 年 10 月 28 日):
好的,我这样做了:
<VirtualHost *:80>
ServerName tools.example.com
ServerAdmin [email protected]
ErrorLog /var/www/tools.example.com/logs/error.log
CustomLog /var/www/tools.example.com/logs/access.log combined
DocumentRoot /var/www/tools.example.com/public_html
</VirtualHost>
mkdir -p /var/www/tools.example.com/{public_html,logs}
sudo a2ensite tools.example.com.conf
sudo service apache2 reload
sudo find /var/www/tools.example.com/public_html -type d -exec chmod 755 {} \;
sudo find /var/www/tools.example.com/public_html -type f -exec chmod 644 {} \;
sudo adduser ubuntu www-data
sudo find /var/www/tools.example.com/public_html -type d -exec chmod 775 {} \;
sudo find /var/www/tools.example.com/public_html -type f -exec chmod 664 {} \;
我的文件夹是var
那个,而不是那个srv
。我把所有内容从 srv 改为 var,现在我不再收到 403 错误了。但现在我无法/var/www/tools.example.com/public_html
通过 FTP 上传。
更新:
我用sudo chown www-data:www-data -R /var/www/
它解决了我的问题。
多谢!
答案1
这就是 Amazon Web Services 的特点。您有很多选项来构建您的基础设施,首先是简单的 EBS (Elastic Beanstalk),它提供了一个易于部署(又称快速而粗糙的方式)的环境。
另一种选择是使用 EC2 并自行构建,因为这是您迄今为止选择的方式,所以基本上您所需要的是:
在您的 Route 53 中,创建一个指向您实例 IP 地址的 CNAME 或 A 记录(您应该使用弹性 IP 来确保您的实例始终获得相同的 IP 地址)。我建议使用 CNAME 条目,因为您的区域中已经有 A 记录。这会让您的 DNS 解析速度稍慢,但随着时间的推移更容易管理。我们可以将其称为 tools.example.com。
在 Apache 配置目录(通常为 /etc/apache2/sites-available)中,创建一个名为 tools.example.com.conf 的文件,其内容如下:
<VirtualHost *:80>
ServerName tools.example.com
ServerAdmin [email protected]
ErrorLog /srv/www/tools.example.com/logs/error.log
CustomLog /srv/www/tools.example.com/logs/access.log combined
DocumentRoot /srv/www/tools.example.com/public_html
</VirtualHost>
创建用于存储您的网站/应用程序的目录:
mkdir -p /srv/www/tools.example.com/{public_html,logs}
启用新的虚拟主机并重新加载 Apache 的服务:
sudo a2ensite tools.example.com.conf
sudo service apache2 reload
提示:在大多数情况下,使用 AWS 基础设施和开箱即用的解决方案更便宜。
注意:基本上,这就是您所需要的,但对于生产环境来说这并不是 100% 理想的。
再见!
答案2
你需要两样东西才能让你的子域名正常工作。
DNS 服务器中的 DNS 记录。此记录应在您在裸域 (yourdomain.tld) 上设置的名称服务器上创建。如果您已将 Amazon Route53 用于裸域,那没问题,您也可以将其用于子域(Amazon Route53 只是一种 DNS 托管服务)
Web 服务器中的虚拟主机。