我在 Ubuntu 上是个菜鸟,但我必须将它安装在 VPS 上才能将两个不同的网站显示为子域。其中一个是 Drupal 8 网站,另一个是静态 html 网站(index.html)
我在 /var/www 上获得了两个网站,我认为我在 apache2 上正确配置了所有内容,因为我将两个子域添加到hosts
文件中以在本地访问并进行一些测试,它们工作正常。
当我键入old.myaddress.com
或new.myaddress.com
两者都在本地加载时。但是,如果我尝试通过互联网或从另一台计算机访问,它总是只会加载 Drupal。为什么?
值得一提的是,我获得了一个域并配置了两个域old.myaddress.com
和new.myaddress.com
子域以重定向到同一个 IP(我的 VPS 服务器 IP)。据我了解,apache 应该将用户发送到不同的站点?
这些是我里面的 .conf 文件etc/apache2/sites-available
:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.myaddress.com
ServerAlias old.myaddress.com
DocumentRoot /var/www/oldwebsite/myaddress.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.myaddress.com
ServerAlias new.myaddress.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
为了澄清,我在问缺少的配置在哪里。如果在本地加载网站有效,它可能仍然是 apache?是我的DNS?我的 ISP?Drupal 配置?我很迷茫。
我假设您的 DNS 域已正确配置并
new.myaddress.com
正确old.myaddress.com
解析为您的服务器 IP。您可以在另一台机器上检查:如果这些名称解析为相同的 IP,那么您的配置在本地而不是远程工作,这很奇怪。每个地址的结果是否与报告
ping
的 IP 地址相同nslookup
?另一件事,
ServerName
多个 VirtualHost 的值不应该相同。ServerAlias
只要相同的值只使用一次,您就可以使用任何您想要的值。我会www.myaddress.com
从旧网站的 VirtualHost 配置中删除。显然,我必须将正确的 IPv4 和 IPv6 设置为记录 A,并记录我的子域的 DNS 的 AAAA。
对于像 1and1 (Ionos) 这样的 DNS 提供商,当您设置域或子域时,它假定它托管在它们的位置,并且为了将其绑定到外部托管,您需要手动编辑记录 A 和 AAAA 以指向到你的IP服务器。