我已经尝试设置我的 Apache 服务器很多天了,但毫无进展。我已获得一个 DynDNS Pro 帐户,并在 names.co.uk 注册了一个域名(我甚至还没想好要用它做什么,甚至不知道我是否真的需要它)。
我已将 /etc/apache2 目录中的 sites-enabled 文件夹配置为指向我保存 .html 文档的目录。当我将 DynDNS 设置为本地 IP 地址 192.168.xx 时,它工作正常,但我知道这意味着其他人无法访问我的网站。当我访问 DynDNS 网站并将 IP 地址更改为我的公共 IP 时,如果我尝试访问我的网站“shredalert.homelinux.com”,它会将我带到路由器的登录页面。我完全搞不懂为什么会发生这种情况。这是我第一次尝试设置 Web 服务器和网站。如果我做出非常愚蠢的评论/假设,请耐心等待。
我应该补充一点,我已经为 192.168.xx 转发了端口 80。当我在 DynDNS 上将我的 IP 更改为我的公共 IP 地址时,我该如何修复我的 apache 服务器以加载我的网站,而不是加载我的路由器登录页面?
PS:如果使用“names.co.uk”的人能告诉我如何使用我已注册的域名,我将不胜感激。
答案1
几点说明:
- 您的域配置的 DNS 服务器必须指向 dyndns
- 您的路由器必须将端口 80 转发到您的本地计算机。本地计算机上的 IP 地址应该是静态的,并且最好在路由器上保留。
- 你的机器必须打开 80 端口
- 如果所有这一切设置正确,如果你这样做http://外部Ip你应该得到你的默认 Apache 页面(与http://本地主机)
- 您必须设置一个虚拟主机以供 shredalert.homelinux.com 监听,或者
ServerAlias shredalert.homelinux.com
在您的主配置文件中使用指令将该域作为 localhost 的别名。
创建虚拟主机文件/etc/apache2/sites-available/shredalert.homelinux.com.conf
如下:
<VirtualHost *:80>
ServerName shredalert.homelinux.com
DocumentRoot /path/to/root/directory
ErrorLog "/var/log/apache2/error.shredalert.homelinux.com.log"
CustomLog "/var/log/apache2/access.shredalert.homelinux.com.log" common
<Directory /path/to/root/directory>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
</VirtualHost>
然后启用站点并重启(或重新加载)apache2 服务
sudo a2ensite shredalert.homelinux.com.conf
sudo service apache2 restart
注意:您可以更改/path/to/root/directory
为任何您想要的内容,因此不一定必须公开完整的本地主机根目录。