Как создать субдомен ubuntu
тем, кто ответил: Ну, тогда я должен спросить мой хостинг, предоставляют ли они какой-то доступ к 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 говорит вам об этом.
Читайте также: