У меня есть настройки localhost/~<username>
и ~/Sites
на моем компьютере, и я использую их /etc/apache2/extra/httpd-vhosts.conf
для создания пользовательских тестовых доменов. Как мне добавить DNS wildcard домены? ( *.dev.server
)
Я настроил Wordpress Multisite Network на ~/Sites/Wordpress (как wordpress.server
), и всякий раз, когда я создаю сайт, он не работает. Как мне заставить его работать?
httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/Users/<username>/Sites/Wordpress"
ServerName wordpress.server
ServerAlias www.wordpress.server
</VirtualHost>
/etc/хосты
127.0.0.1 wordpress.server
127.0.0.1 www.wordpress.server
Спасибо!
решение1
Для этого вам понадобится помощьdnsproxy.py
.
Подготовитьdnsproxy.py
Сначала загрузите файл Python и переместите его в свой домашний каталог.
Загрузить здесьзатем распакуйте файл. Затем переместите файл Python в свой домашний каталог. ( Users/<your username>
)
Добавить вайлдарда в/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-серверу. В этой команде мы используем DNS-сервер Google. Если хотите, можете заменить его другим 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
Перейдите в Системные настройки ( > Системные настройки...) и перейдите в Настройки сети.
Затем перейдите в раздел «Дополнительно» в левом нижнем углу панели.
Перейдите на вкладку 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
. Это должно сработать.