如何在 Apache 和 Ubuntu 中设置本地域名,例如 website.sam?

如何在 Apache 和 Ubuntu 中设置本地域名,例如 website.sam?

我想按以下方式映射我的目录/子域:

/home/sam/sites/* 到 http://*.sam

我不想每次启动新站点时都要在我的主机文件中添加一行。

在配置和安装 Apache 方面我是初学者,实现这一目标的最佳方法是什么?

答案1

事实证明,要实现这一点需要相当多的步骤。以下是我解决的方法:

  1. 编辑 /etc/resolve.conf 以将您的域名解析设置为本地计算机,方法是注释掉所有现有行并添加nameserver 127.0.0.1。在此行之后添加另一行,其中包含用于解析其他站点的辅助 DNS 服务器,例如nameserver 8.8.8.8。某些程序还会在每次启动时覆盖此文件,因此您可以使用chmod 0444 /etc/resolv.conf来防止这种情况发生(可能有更好的方法来实现这一点)。
  2. 安装 dnsmasq,并在 /etc/dnsmasq.conf 末尾添加一行address=/your-custom-local-domain/127.0.0.1
  3. 通过将名为 localdomain 的文件放入 /etc/apache2/sites-available此答案底部的文本中来创建一个新的 apache 站点配置。
  4. 运行以下命令sudo a2ensite config localdomain
  5. 重新启动 apache,并在 ~/ 中创建一个名为 Sites 的新文件夹。
<VirtualHost *:80>
    ServerName 127.0.0.1
    ServerAlias *.your-custom-local-domain
    VirtualDocumentRoot /home/%2/Sites/%1/
    #ErrorLog /home/%2/logs/error.%1.log
</VirtualHost>

现在,您在站点目录中创建的任何新文件夹都应映射到foldername.your-custom-local-domain

相关内容