如何使用 Apache 设置在家中托管域名?

如何使用 Apache 设置在家中托管域名?

我对 Ubuntu Linux 还比较陌生,正在努力弄清楚使用 Apache2 在家中托管域名的基本设置。我知道您必须将 IP 从动态更改为静态 IP 地址,但我不确定您如何实现这一步。

我正在寻求一些关于如何启用自签名证书、如何在网络服务器上托管网站,使域名在互联网上解析,启用受保护的目录,以及访问可以上传网站文件并在万维网上提供的目录的基本命令。

答案1

我之所以这样做,是因为作为一名 Web 开发人员,我喜欢在自己的服务器上开发网站,然后在网站运行正常后将其上传到最终托管公司。因此,为了让客户能够查看和批准更改,我从 dynDNS (dyn.com) 获得了一个域名,费用为每年 20 美元。有类似的免费系统,dynDNS 以前有一个免费帐户,但我认为现在没有了。但我选择了 dynDNS Pro,因为每年 20 美元非常便宜,而且您可以获得多个域名和通配符域。

它能做什么

这项服务的工作原理是让你选择他们拥有的现有域名,例如 yourname.homelinux.net 等。例如,你可以选择一个名为 somename.homelinux.net 的域名,然后你可以立即创建一个名为 xxx.somename.homelinux.net 的唯一站点,而无需注册它,并在 Apache 中使用该名称设置一个域。这就是创建新域名所需的全部操作。你也可以注册其他域名。可能有更高级的服务允许你使用现有的域名,并将其托管给他们,但我不需要那样的服务。

怎么运行的

他们有一个应用程序可以定期更新您的动态 IP。因此,您有一个不变的域名,但它指向的 IP 可能会发生变化。

如何在 Ubuntu 上设置 Apache

Apache 可以使用域名并通过虚拟主机访问任意给定目录中的本地网站。IP 地址无关紧要,您可以拥有任意数量的使用相同 IP 地址的虚拟主机;重要的是名称,而不是地址。

这是通过在配置文件中进行输入来完成的,在/etc/apache2/sites-enabled/000-default。我假设使用默认配置;我认为您可以拥有多个这样的文件,但我没有这样做。

为了实现此功能,您需要启用名为 rewrite.load 的模块。此模块位于 中/etc/apache2/mods-available,要使用它,您需要在 目录中创建一个符号链接/etc/apache2/mods-enabled(从 mods-enabled 目录中输入“ ln -s ../mods-available/rewrite.load”)。

好的,完成此操作后,对于要在本地系统上解析的任何域名,您都可以在配置文件 (000-default) 中创建一个多行条目。我更喜欢示例而不是说明,因此这里有一个例子:

/etc/apache2/sites-enabled/000-default 的设置

假设您有一个本地网站,并使用 dynDNS,其名称为 mycoolsite.homelinux.com。进一步假设该网站的位置位于 /var/www/mycoolsite(它可以位于任何地方,包括您的主目录)。然后,配置文件末尾的以下条目将使其工作(假设端口 80,即常规 Web 端口):

<VirtualHost *:80>
    <Directory /var/www/mycoolsite>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /var/www/mycoolsite/
    ServerName mycoolsite.homelinux.com
</VirtualHost>

请注意,这不是唯一有效的参数集。如果您不需要更改任何默认值,则不需要 Directory 部分,但我总是只包含它,而且我已经有一段时间没有弄清楚确切原因了。但它总是有效的,所以我保留它。

如果您在任何一台将访问它的计算机上的 hosts 文件中创建一个条目,并为 IP 分配一个名称(localhost 或 LAN 上服务器的 IP 地址),则可以使用相同的设置来在 localhost 上创建一个“虚假”开发站点。您可以在 hosts 文件中拥有多个这样的别名,所有别名都具有相同的 IP。

我不完全明白你问题的第二部分想表达什么。如果你想进一步阐述,我会尽力帮助你。我建议的方法可能不是你想要的。如果不是,我很抱歉。如果你有任何问题请告诉我。

相关内容