Многие не могут поставить эту модуль на виртуальном сервере под виндой, поэтому решил поделиться инструкцией как заставить это работать.
Пример для сайта с небольшим количеством поддоменов около 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 и найдите файл настроек предназначенный для этого. В комплекте обычно есть оригинальный образец. Рекомендую выделить в отдельный файл т.к. проектов обычно много и лепить все в один конфиг вместе с ситемными параметрами неудобно)
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 ссылающуюся на ваш новый файл
Теперь нужно, чтобы Винда знала о вашем сервере. Для этого нужно поработать с файлом hosts.
И добавить запись для каждого домена и поддомена виртуального сервера
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 не ругался
Дальше ставим модуль по инструкции.
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 придется перегрузить винду. На висте перезагрузки не потребовалось. Хватило перезапуска апача.
Комментарии
фишка со * (звездочкой) - это вам надо заезть в панель управления доменом. и там где у вас записи CNAME добавить запись типа
запись *.domen.com указывает на IP сервера. тогда и только тогда запись в vhost : ServerAlias *.DOMEN.COM
Суть в том, что любое обращение к любому сабу, будеть віходить на начальную страницу. по сей причине субдомены которые указал автор можно было не вносить в hosts.
тут прикол в другом если у вас просто хостинг а не выделенный серв, в котором вы можете работать - вы не сможете юзать модуль.
В посте идет рассказ о настройке этого под вистой.
Интересно где у Висты или ХР панель управления доменом?
Прочитай еще раз мой пост.
Я же привел пример: www.buh-vesti.ru хостится на 100mbps.ru за $0,6 в месяц. Именно с этим модулем.
А настройка поддоменов на виртуальном хостинге - это индивидуальные случаи для каждого из хостингов.
Проще написать в саппорт че вам от нх надо - они сами скажут.
а сильно отличается от 5 друпала?
Там вроде .htacces надо было править в ранних версиях, а щас вроде нет.
А по настройке, думаю, разницы нет особой.
Сделал как тут написано: добавил пути в 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. Подскажи плз.
Та же проблема. только на хостинге делал. Настроил модуль все как в ридми.
При переходе на страницу subdomain-test.домен.сом пишет на белом листе Apache is functioning normally
Но на поддоменах,созданных через термины таксономии тот же белый экран и Apache is functioning normally.
Т.е. термин1.домен.сом и термин2.домен.сом есть с белыми экранами и этими сообщениями.
Далее, например создаю страницу с термином таксономии термин1. Т.е. я хочу чтоб у меня этот материал отображался на этом поддомене термин1.домен.сом. При этом выдается ошибка на странице с урлом термин1.домен.сом/node/140
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
что я сделал и делаю не так? Можете подсказать?