Установка и настройка subdomain

Главные вкладки

Аватар пользователя venom280@drupal.org venom280@drupal.org 21 апреля 2009 в 13:53

Многие не могут поставить эту модуль на виртуальном сервере под виндой, поэтому решил поделиться инструкцией как заставить это работать.

Пример для сайта с небольшим количеством поддоменов около 15. Для отладки на виртуальном сервере вполне достаточно.

Приведу пример для создаваемого в настоящий момент сайта www.buh-vesti.ru (есть в инете пока пустой, но там уже работает subdomain на хостинге 100mbpsru, просто перенес - subdomain сам заработал)

Я не пользуюсь всякими денверами и другими сборками ибо это лажа. Гораздо проще все поставить и настроить самому. В последствии отпадет куча вопросов.

На ноутбуке под Вистой я создавал папку /usr/local/. В нее ставил apache 2.2 и Mysql 5. PHP и остальное что требуется просто распаковал в нужные папки и настроил все это вместе. В инете полно статей как что настроить вместе.

У apache настраиваем виртуальные серверы. Без них ничего не получится (если вам конечно нравится сидеть с http://localhost/buh-vesti.ru вместо http://www.buh-vesti.ru, то ладно)

Итак

Вот мой кусок vhosts (это Apache. Включите vurtial host и найдите файл настроек предназначенный для этого. В комплекте обычно есть оригинальный образец. Рекомендую выделить в отдельный файл т.к. проектов обычно много и лепить все в один конфиг вместе с ситемными параметрами неудобно)

<VirtualHost *:80>
   DocumentRoot "C:/usr/local/www/buhg"
   ServerName buh-vesti.ru
   ServerAlias *.buh-vesti.ru
   ErrorLog "C:/usr/local/www/buhg/error.log"
   CustomLog "C:/usr/local/www/buhg/access.log" common
    <Directory "C:/usr/local/www/buhg">
      AllowOverride All
    </Directory>
</VirtualHost>

Добавьте строчку в httpd.conf ссылающуюся на ваш новый файл

Include conf/extra/httpd-vhosts.conf

Теперь нужно, чтобы Винда знала о вашем сервере. Для этого нужно поработать с файлом hosts.
И добавить запись для каждого домена и поддомена виртуального сервера

127.0.0.1       buh-vesti.ru
127.0.0.1       test-1.buh-vesti.ru
127.0.0.1       test-2.buh-vesti.ru
127.0.0.1       test-3.buh-vesti.ru
127.0.0.1       subdomain-test.buh-vesti.ru
127.0.0.1       news.buh-vesti.ru
127.0.0.1       handbook.buh-vesti.ru

Как не сложно догадаться нужно добавить по строчке для каждого поддомена. Я так и не смог под виндой сделать wildcard *.
test-1 и др., чтобы subdomain не ругался Smile

Дальше ставим модуль по инструкции.
1. Добавляем строчки в settings.php

<?php
   
// ------------- BEGIN COPYING BELOW THIS LINE -------------
  
function custom_url_rewrite_outbound(&$path, &$options$original_path) {

    

// Used by the Subdomain module to generate URLs with subdomains
    
if (module_exists('subdomain')) {
      
subdomain_url_rewrite_outbound($path$options); 
    }
  }

  function 

custom_url_rewrite_inbound(&$result$path$path_language) {

    

// Used by the Subdomain module to correctly interpret URLs with subdomains
    
if (module_exists('subdomain')) {
      
subdomain_url_rewrite_inbound($result$path$path_language); 
    }
  }  
  
// ----------------- COPY UNTIL THIS LINE ------------------
?>

2. В том же файле нужно раскомментировать параметр $cookie_domain = "example.com"; и указать явный адрес домена.
Еще я указывал $base_url.

3. Здесь нужно настроить DNS сервер провайдера (e.g. *.example.com). Это не обязательно. Все можно добавить вручную. На реальном хостинге можно договориться с хостером, чтобы было автоматически.

4. Настроить wildcard * на веб сервере (см. образец выше).

Дальше включаем модуль и настраиваем.

У меня заработало.

Возможно какие-то шаги я пропустил, пишите отвечу.

И не забываем, что после изменения конфигов обычно нужно перезапустить apache. Возможно после обновления hosts придется перегрузить винду. На висте перезагрузки не потребовалось. Хватило перезапуска апача.

Комментарии

Аватар пользователя red_ukr red_ukr 6 мая 2009 в 9:33

фишка со * (звездочкой) - это вам надо заезть в панель управления доменом. и там где у вас записи CNAME добавить запись типа

запись *.domen.com указывает на IP сервера. тогда и только тогда запись в vhost : ServerAlias *.DOMEN.COM

Суть в том, что любое обращение к любому сабу, будеть віходить на начальную страницу. по сей причине субдомены которые указал автор можно было не вносить в hosts.

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

Аватар пользователя venom280@drupal.org venom280@drupal.org 6 мая 2009 в 9:57

red_ukr wrote:
фишка со * (звездочкой) - это вам надо заезть в панель управления доменом. и там где у вас записи CNAME добавить запись типа
запись *.domen.com указывает на IP сервера. тогда и только тогда запись в vhost : ServerAlias *.DOMEN.COM

В посте идет рассказ о настройке этого под вистой.
Интересно где у Висты или ХР панель управления доменом?

red_ukr wrote:

Суть в том, что любое обращение к любому сабу, будеть віходить на начальную страницу. по сей причине субдомены которые указал автор можно было не вносить в hosts.

Прочитай еще раз мой пост.

red_ukr wrote:

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

Я же привел пример: www.buh-vesti.ru хостится на 100mbps.ru за $0,6 в месяц. Именно с этим модулем.

А настройка поддоменов на виртуальном хостинге - это индивидуальные случаи для каждого из хостингов.
Проще написать в саппорт че вам от нх надо - они сами скажут.

Аватар пользователя Dias Dias 25 ноября 2011 в 0:12

Сделал как тут написано: добавил пути в host, добавил код в файл settings.php, подключил модуль на сайте. При заходе в модуль он как бы работает, но и выдает ошибку Subdomain error: subdomain-test.mysite.ru was not correctly routed to this site. Ensure your webserver is setup to correctly route wildcard subdomains to this site.
И как понять что создался поддомен? Я выбирал там режим: user, нажал создать, и как узнать создался ли поддомен...ДЕЛАЮ ВСЕ НА DENWER'E. Подскажи плз.

Аватар пользователя dimmapril dimmapril 10 января 2013 в 21:51

"Dias" wrote:
Subdomain error: subdomain-test.mysite.ru was not correctly routed to this site. Ensure your webserver is setup to correctly route wildcard subdomains to this site.

Та же проблема. только на хостинге делал. Настроил модуль все как в ридми.
При переходе на страницу subdomain-test.домен.сом пишет на белом листе Apache is functioning normally
Но на поддоменах,созданных через термины таксономии тот же белый экран и Apache is functioning normally.
Т.е. термин1.домен.сом и термин2.домен.сом есть с белыми экранами и этими сообщениями.
Далее, например создаю страницу с термином таксономии термин1. Т.е. я хочу чтоб у меня этот материал отображался на этом поддомене термин1.домен.сом. При этом выдается ошибка на странице с урлом термин1.домен.сом/node/140

Not Found

The requested URL /articles/sos was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2 Server at sos.metal-mega.com Port 80

что я сделал и делаю не так? Можете подсказать?