我已经在计算机上设置了localhost/~<username>
,并且正在使用它来创建自定义测试域。如何添加 DNS 通配符域?()~/Sites
/etc/apache2/extra/httpd-vhosts.conf
*.dev.server
我在 ~/Sites/Wordpress 上设置了 Wordpress 多站点网络(如wordpress.server
),但每次我创建站点时,它都无法工作。我该如何让它正常工作?
httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/Users/<username>/Sites/Wordpress"
ServerName wordpress.server
ServerAlias www.wordpress.server
</VirtualHost>
/etc/hosts
127.0.0.1 wordpress.server
127.0.0.1 www.wordpress.server
谢谢!
答案1
要做到这一点,你需要dnsproxy.py
。
准备dnsproxy.py
首先,下载 Python 文件并将其移动到您的主目录中。
点击此处下载然后解压文件。接下来,将 Python 文件移动到您的主目录中。(Users/<your username>
)
添加 wildard 至/etc/hosts
使用您最喜欢的编辑器,例如nano
,通过终端打开 hosts 文件。
sudo nano /etc/hosts
添加以下条目:
127.0.0.1 *.wordpress.server
跑步dnsproxy.py
dnsproxy.py
通过在终端中执行以下操作来运行:
python ~/dnsproxy.py -s 8.8.8.8
-s 8.8.8.8
指委派 DNS 服务器。在此命令中,我们使用 Google 的 DNS 服务器。如果您愿意,可以将其替换为其他 DNS 服务器。(例如 1.1.1.1)
如果在 MacOS Catalina 10.15 中使用该命令时遇到错误python
,请尝试运行以下命令:
/usr/bin/python ~/dnsproxy.py -s 8.8.8.8
笔记:不要关闭或终止终端窗口,否则通配符/etc/hosts
将不起作用。
添加通配符httpd-vhosts.conf
在终端中,使用您喜欢的编辑器打开以下文件:
sudo nano /etc/apache2/extra/httpd-vhosts.conf
添加以下条目:(替换wordpress.server
为您的服务器名称和Wordpress
项目文件夹)
<VirtualHost *:80>
DocumentRoot "/Users/<your username>/Sites/Wordpress"
ServerName wordpress.server
ServerAlias *.wordpress.server
</VirtualHost>
ServerName
定义主主机名,而ServerAlias
定义通配符子域名。
修改 DNS
转到系统偏好设置( > 系统偏好设置...),然后转到网络偏好设置。
接下来,添加127.0.0.1
DNS 服务器。(如果您没有条目并且要添加127.0.0.1
,我建议您添加网络的默认 DNS 或另一个 DNS,例如,这样8.8.8.8
当您不进行开发时,您的互联网就可以正常工作。)
最后,单击窗格右下角的“确定”,然后单击“应用”。
检查错误
在终端中执行以下命令:
apachectl configtest
它可能会显示一些警告,但最终会导致Syntax OK
。
如果它没有显示Syntax OK
并导致错误,请转到导致错误的文件并尝试修复它。
重启 Apache
在终端中执行以下命令:
sudo apachectl restart
现在尝试访问一个随机子域名,例如test.wordpress.server
。它应该可以工作。