Как wordpress.com и другие подобные сервисы мгновенно создают поддомен, который мгновенно доступен? - PullRequest
6 голосов
/ 21 июля 2009

Я знаю почти все о поддоменах и записях DNS. я слышал о них и знаю только основы.

На самом деле, на моем сервере я создаю поддомен под plesk, а затем связываюсь с моим хостингом, чтобы создать правильный днс. и через 1-2 дня поддомен доступен из любой точки мира (plesk может автоматически управлять dns, я знаю, но, поскольку я не знаю, как именно работает dns, я предпочитаю, чтобы хостер обрабатывал их)

Но ... когда вы регистрируетесь на wordpress.com, posterous.com и т. Д., Они создают поддомен, такой как http://yourname.service_name.com, который готов через несколько секунд ... как?

Я знаю, что на этот вопрос трудно ответить, потому что мое невежество, я не знаю, как лучше сформулировать вопрос -.-

О, если это может помочь, моя среда должна быть Linux (на самом деле Debian)

Ответы [ 4 ]

19 голосов
/ 21 июля 2009

Большинство людей достигают этого с помощью записи DNS с подстановочными знаками , это дает возможность мгновенного создания поддоменов.


Как только вы настроите DNS-шаблон подстановки, как это:

 *.example.com          A     77.75.105.197

Вы должны сообщить Apache, что хотите, чтобы все поддомены были перехвачены виртуальным хостом, вы можете сделать это с помощью ServerAlias ​​:

ServerAlias *.example.com

В PHP вы можете просмотреть $ _ SERVER ["SERVER_NAME"] , чтобы выяснить, какой поддомен использовался для доступа к виртуальному хосту, затем вы можете иметь код / ​​контент для конкретного поддомена.

2 голосов
/ 21 июля 2009

Вот как pastebin.com делает это:

  • запись DNS с подстановочными знаками указывает все субдомены на IP веб-сервера
  • apache отправит все запросы на «неизвестные» домены первому виртуальному хосту - вы делаете код на этом хосте способным делать что-то интересное с доменным именем (в PHP это представляется как $ _SERVER ['HTTP_HOST']

Таким образом, переконфигурация DNS или Apache не требуется.

0 голосов
/ 21 июля 2009

Также обратите внимание, что вы можете через. Apache настроил его так, чтобы он использовал регулярное выражение для входящего имени хоста и через этот корень документа set что-то вроде:

/var/www/topleveldomain.com/subdomain/wwwroot

Это может создать иллюзию того, что в конфигурационных файлах и всей этой черной магии произошли изменения, позволяющие mysubdomain.topleveldomain.com стать новым поддоменом, просто создав папку в нужном месте.

Также обратите внимание, что это относится к наложению звездочек в записи DNS.

Однако я сомневаюсь, что именно так WordPress делает это, и способ, которым Пол Диксон упоминает, вероятно, более вероятен.

0 голосов
/ 21 июля 2009

Wordpress не создает поддомен, он даже не может его создать, поскольку он является частью файлов конфигурации виртуального хоста Apache.

Единственный способ создать поддомен - создать еще одну запись виртуального хоста, добавить ее в запись DNS, но для обновления DNS-серверов требуется 24 часа. Plesk и другие панели управления могут управлять этим, но Wordpress не может, так как это всего лишь PHP-скрипт, который, вероятно, даже не имеет разрешений на подобные вещи. Кроме того, вы не указываете, где находится ваш файл конфигурации, поэтому Wordpress не может знать, где находится виртуальный хост:)

Пожалуйста, расскажите нам больше об этих поддоменах Wordpress, где вы их создаете и т.д.

...