Как создать субдомен ubuntu

Обновлено: 05.07.2024

тем, кто ответил: Ну, тогда я должен спросить мой хостинг, предоставляют ли они какой-то доступ к DNS??

вы хотите создать пользовательскую запись.

Я уверен, что вы можете использовать подстановочные знаки при указании записи, которая позволит вам сделать что-то вроде этого:

127.0.0.1 будет IP-адресом вашего веб-сервера. Метод фактического добавления записи будет зависеть от вашего хоста.

тогда вы можете просто добавить .htaccess файл, который выглядит так:

в приведенном выше, имена пользователей ограничены символами a-z

правило перезаписи для захвата поддомена будет выглядеть следующим образом:

вы после называется Поддомены Подстановочных Знаков. Это позволяет вам не настраивать DNS для каждого поддомена, а вместо этого использовать перезаписи apache для перенаправления. Вы можете найти хороший учебник здесь, но есть тысячи учебных пособий там. Вот необходимый код из этого учебника:

Я делаю это немного иначе, чем Марк. Я передаю весь домен и хватаю поддомен в php.

это игнорирует изображения и сопоставляет все остальное с моим индексом.PHP-файл. Так что, если я пойду в

тогда в моем индексе.php-код я просто взрываю свое имя пользователя от имени хоста. Это дает мне хорошие довольно SEO URLs.

тогда все субдомены фактически идут в одно и то же место, но PHP рассматривает каждый субдомен как другую учетную запись.

мы используем следующий код:

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

это, вероятно, не так эффективен, как способы, которые они перечисляют выше, но если у вас нет доступа к BIND и/или limited .htaccess этот метод должен работать (до тех пор, пока ваш хост установит подстановочный знак для вас).

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

Не суетитесь вокруг .htaccess файлы, когда вы можете использовать виртуальный хостинг Apache mass.

в некотором смысле это обратная сторона вашего вопроса: каждый "поддомен" является пользователем. Если пользователь не существует, вы получите ошибку 404.

единственным недостатком является то, что переменная окружения DOCUMENT_ROOT неправильно установлено значение используется подкаталог, но по умолчанию document_root в de htconfig.

простое решение PHP для поддоменов и многодоменных веб-приложений

Шаг 1. Обеспечивать DNS записи как "*" для домена (или домен) ты будешь служить "example.org"

Шаг 2. Проверьте уникальность Логинов при регистрации Пользователя или изменении логина. Кроме того, избегайте точек в этих логинах.

Шаг 3. Затем проверьте запрос

это решение может обслуживать разные домены

Если вам нужны такие же зазубрины на различном Домены обслуживаются по-разному, при регистрации логина может потребоваться сохранить выбор пользователя для домена.

вы можете [потенциально] переписать URL-адрес, Но да: вы должны контролировать свои настройки DNS, чтобы при добавлении пользователя он получал свой собственный поддомен.

в дополнение к изменениям конфигурации на вашем сервере WWW для обработки нового поддомена ваш код должен будет вносить изменения в ваши записи DNS. Таким образом, если вы не используете собственную привязку (или аналогичную), вам нужно выяснить, как получить доступ к конфигурации поставщика сервера имен. Если они не предлагают какой-то API, это может стать сложным.

Update: да, я бы проверил у вашего регистратора, если они также предоставляют службу сервера имен (как это часто бывает). Я никогда не изучал этот вариант раньше, но я подозреваю, что большинство регистраторов потребителей этого не делают. Я искал GoDaddy APIs и GoDaddy DNS APIs, но не смог ничего найти, поэтому я думаю, что лучшим вариантом было бы проверить онлайн-помощь с вашим провайдером, и если это не ответит на вопрос, свяжитесь с их персоналом поддержки.

во-первых, вам нужно убедиться, что ваш сервер настроен для разрешения поддоменов подстановочных знаков. Я добился того, что в JustHost путем создания subomain вручную по имени * . Я также указал папку с именем subdomains как корень документа для поддоменов подстановочных знаков. Добавьте это в .htaccess файл в папке поддоменов:

наконец, все, что вам нужно сделать, это создать папку в папке поддоменов, а затем поместить файлы поддоменов в этот каталог.

это может быть достигнуто в .htaccess при условии, что ваш сервер настроен на разрешение поддоменов подстановочных знаков. Я добился того, что в JustHost путем создания subomain вручную по имени * и указание папки с именем subdomains в качестве корня документа для поддоменов подстановочных знаков. Добавьте это в свой :

наконец, создайте папку для своего поддомена и поместите файлы поддоменов.

Я просто хотел добавить, что если вы используете CloudFlare (бесплатно), вы можете использовать их API для управления dns с легкостью.

Я не могу поверить, что я не делал этого раньше, но я хотел бы получить окончательный ответ, поэтому я готов идти вперед.

у меня есть конфигурационный файл apache в /etc/apache2/sites-available/mysite выглядит так:

таким образом, это служит html и php-файлы из

/public_html все нормально. Но у меня есть несколько проектов, поэтому я хотел бы начать использовать поддомены. То, что я хочу сделать, это обслуживать файлы из

/public_html/myproject/ как корневой каталог для myproject.localhost .

Я попытался добавить следуя в нижней части моего файла apache:

но apache жалуется:

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

любая помощь очень ценится.

редактировать:

теперь это мой полный файл:

вы говорите Apache, какой IP и порт вы хотите ответить на него внутри <VirtualHost> тег so here * означает любой IP, но принимает запросы для этого сайта на порт 80. Затем вам нужно сказать Apache, где находится корень документа.

/ означает ваш домашний каталог по умолчанию, поэтому, если ваш DocumentRoot просто по умолчанию home переменная, тогда она будет работать с существующей нотацией (в зависимости от того, какой пользователь вы используете сервер). Затем вы объявите сервер имя.

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

О Хозяевах В дополнение к этому, любое специальное имя, которое вы создаете для хоста, должно войти в файл hosts или на DNS-сервере. Таким образом, любой веб-браузер, который ищет ваш сервер может найти его без ввода в ИС. Поскольку у вас, вероятно, будет несколько хостов на тот же IP с вашей настройкой если вы попытаетесь получить доступ к серверу только с IP, вы получите только первый хост для ответа на IP (обычно верхний в списке vhosts).

добавление к ответу AbsoluteƵERØ(если мы пытаемся это сделать для локальная машина), то нужно обновить hosts файл, который можно найти здесь:

Примечание: это необходимо, чтобы сообщить вашей локальной машине, что данный поддомен указывает на вашу локальную машину

я использую операционную систему windows, но я также проверил это в ubuntu. Очень его работает хорошо.

мой каталог сервера

и хотя я использую Windows так

мой c:/Windows/system32/drivers/etc/hosts код файла

Я думаю, это будет полезно

директива VirtualHost должна содержать IP-адрес или что-то разрешимое. "мой проект.localhost " не разрешима, и Apache говорит вам об этом.

Читайте также: