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

Sam*_*152 0 configuration apache2

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

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

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

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

Sam*_*152 6

事实证明,要使这项工作发挥作用,涉及很多步骤。这是我解决它的方法:

  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>
Run Code Online (Sandbox Code Playgroud)

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