我想按以下方式映射我的目录/子域:
/home/sam/sites/* 到 http://*.sam
我不想每次启动新站点时都要在我的主机文件中添加一行。
在配置和安装 Apache 方面我是初学者,实现这一目标的最佳方法是什么?
答案1
事实证明,要实现这一点需要相当多的步骤。以下是我解决的方法:
- 编辑 /etc/resolve.conf 以将您的域名解析设置为本地计算机,方法是注释掉所有现有行并添加
nameserver 127.0.0.1
。在此行之后添加另一行,其中包含用于解析其他站点的辅助 DNS 服务器,例如nameserver 8.8.8.8
。某些程序还会在每次启动时覆盖此文件,因此您可以使用chmod 0444 /etc/resolv.conf
来防止这种情况发生(可能有更好的方法来实现这一点)。 - 安装 dnsmasq,并在 /etc/dnsmasq.conf 末尾添加一行
address=/your-custom-local-domain/127.0.0.1
- 通过将名为 localdomain 的文件放入
/etc/apache2/sites-available
此答案底部的文本中来创建一个新的 apache 站点配置。 - 运行以下命令
sudo a2ensite config localdomain
。 - 重新启动 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
。