Ну вот и дошла пора более серьезно заняться настройкой своего Apache сервера на рабочей машине.
Так как на моем компе установлена Ubuntu Linux, а установка приложений с помощью менеджера пакетов Synaptic — сплошное удовольствие, то получилось так, что я установил с его помощью Apache и мне хватало его дефолтных установок. Но захотелось мне навести красоту, разместить несколько веб-сайтов и иметь к ним доступ по разным доменным именам.
Итак, имеем задачу:
Настроить несколько веб-сайтов, на локальном сервере Apache2, установленного на рабочей машине с Ubuntu Linux, и чтобы доступ к ним был по адресам, например таким:
- 1й сайт — www.test1.my и test1.my
- 2й сайт — www.test2.my и test2.my
и так далее, в том же духе.
При попытке привести все к красоте, возникло несколько интересных ошибок, которые, надеюсь нелишне описать.
Итак, первое, в Ubuntu состав директории /etc/apache2 немного отличается от привычных директорий настройки Apache в Unix-подобных системах.
conf.d/ sites-available/ sites-enabled/ mods-available/ mods-enabled/ apache2.conf envvars httpd.conf ports.conf
В Ubuntu основным файлом настройки Apache2 является не httpd.conf, а apache2.conf, но тут он играет роль системного файла, в котором собраны основные и самые важные настройки сервера.
А вот файл httpd.conf — пустой и предназначен для добавления дополнительных настроек, он включен в основной файл настройки apache2.conf
В файле envvars описаны переменные среды, необходимые для функционирования Apache-сервера.
В ports.conf вынесены настройки портов на которые можно будет подключиться к серверу или конкретному сайту на нем.
В папке conf.d находятся дополнительные конфигурационные файлы.
Для описания всех доступных сайтов используется папка sites-available в которой расположены файлы с описанием виртуальных хостов — VirtualHosts, опубликованные же сайты находятся в папке sites-enabled в виде ссылок на файлы доступных сайтов из папки sites-available.
Таким же образом в папках mods-available и mods-enabled настраивается доступность модулей используемых сервером.
Разобравшись со структурой файлов и папок, уже можно приступать к настройке. Первым делом создаем новый файл в папке sites-available, с именем хоста, так будет понятнее при просмотре директории.
#sudo touch test1.my
после этого с помощью любого доступного текстового редактора добавляем в этот файл следующие строки
<VirtualHost *:80>
ServerName test1
ServerAlias test1.my www.test1.my
DocumentRoot /var/www/test1.my/www
</VirtualHost>
таким образом можно создать необходимое колличество виртуальных хостов и направить их в нужные директории на винчестере.
Теперь необходимо как-то научить нашу операционную систему распознавать домен .my. Для этого достаточно прописать необходимые строки в файле /etc/hosts, например так:
127.0.0.1 test1.my www.test1.my
Так, теперь мы имеем настройку сайта как виртуального хоста (VirtualHost), имеем настроенный доменный адрес, но сайт еще не доступен для просмотра в браузере. А почему? А потому, что для начала необходимо разместить ссылку на VirtualHost в папку sites-enabled, и перечитать конфигурацию сервера Apache. Для создания ссылки можно выполнить такую команду:
#sudo a2ensite /etc/apache2/sites-available/test1.my
и перечитаем параметры:
#sudo /etc/init.d/apache2 reload
приведеная команда, перечитает параметры настройки сервера без его перезагрузки.
И вот тут мы столкнемся со второй неприятностью, не критической, но неприятной. После перечитки параметров будет выведено информационное сообщение:
Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Что-то некрасиво получается, зачем нам такое. Но, мы помним, что у нас есть файл httpd.conf в котором желательно прописывать дополнительные настройки. Итак, открываем этот файл в текстовом редакторе, не забываем, что это надо делать с правами суперпользователя, и прописываем туда такую строчку
ServerName имя_вашего_сервера
сохраняем, закрываем файл и перечитываем параметры настройки:
#sudo /etc/init.d/apache2 reload
Сообщение пропало и теперь мы имеем красиво настроенный веб-сервер Apache. Сейчас для добавления новых сайтов достаточно создать файл виртуального хоста, вписать в него параметры настройки для хоста, добавить его в видимые хосты и перечитать параметры. Вот так вот, оказывается, все просто делается в нелегком админском деле.
У Вас есть товары, которые подлежат сертификации пожарной безопасности? Тогда вам просто необходим пожарный сертификат.

Настройка Apache2 на Ubuntu, VirtualHosts, ServerName | Генеральский чай...
Thank you for submitting this cool story — Trackback from progg.ru...
на своем опыте скажу: апатч — для мелких сетей. у него настроек — копейки, в отличии от IIS. говорю на своем опыте...
сори за комент, который немножко не в тему... и за повтор фразы «говорю на своем опыте», был пьян
...
Ну тут поспорить можно, в апаче хватает настроек для всех целей и нужд и нагрузки он выдерживает большие. Зависит от целей и задач: кому-то надо IIS, а кому-то Apache. Я так думаю мы с тобой уже выросли из того возраста, чтобы холиворы раздувать
Самое важное, о чём НИГДЕ не написано это вот это:
ServerAlias test1.my www.test1.my
@A1eRT
да, есть такой недочет. Исправляю.
ServerAlias — директива, которая указывает, по какому URL можно достучаться к сайту. Данные URL необходимо обязательно поместить в байл /etc/hosts или прописать в DNS сервере.
@Макс Цисар
Из какого такого опыта ? Настройка через Окошко нескольких опция для серверов с 4-мя пользователями ? Или может все таки посмотреть на каких серверах работает Yahoo.com или другие серьезные сайты ??
Спасибо автор за хорошую статью!
спасибо, пригодилось!
@Эля
Всегда пожалуйста, для этого и пишем, чтобы люди смогли настроить веб-сервер и посмотреть на свои творения
Вот начинали Вы за 2 сайта писать. Так почему же до конца не дошли за два сайта?
Что же мне писать в /etc/hosts
Если у вас там написано для сайта №1, то куда же тогда писать для второго сайта?
И тоже самое: что нужно писать в httpd.conf? Это имя сайта совсем левое какое-то? Тогда где оно потом будет использоваться?
oleg, я написал пример как настроить один сайт, подразумевая, что другой будет сделан по этим шагам. Что есть логично, ведь если бы я вначале написал, что мне надо настроить 10 сайтов, то пришлось бы описывать аналогичные шаги для всех 10?
Файл /etc/hosts внутри имеет комментарий о своей структуре. Которая имеет вид
ip address название сервера алиасы
например
127.0.0.1 test1 test1.my
127.0.0.1 test2 test2.my
127.0.0.1 test3 test3.my
Соответственно, если мы хотим сделать какой-либо сайт с редиректом на самомго себя, просто пишем адрес обратной петли (loopback — 127.0.0.1) и имя хоста, который мы будем редиректить на веб-сервер на локальной машине.
Как я писал в посте, в Ubuntu немного другой подход, чем был раньше, поэтому в файле httpd.conf особо ничего не надо конфигурить, все сайты конфигурируются с помощью файлов, находящихся в папке sites-available, а потом включаются либо исключаются из доступа при помощи комманд a2ensite/a2dissite.
В httpd.conf не пишеться имя сайта, так как их может быть на одном сервере немерянно, поэтому там мы пишем просто имя локального сервера, которое в принципе ни на что не влияет в нашем случае.
Большое спасибо. Разобрался. Теперь чтобы зайти на сайт №1 пишу в браузере 127.0.0.1/site1.my и вижу то что находится в /var/www/test1.my, а чтобы зайти на сайт №2 пишу в браузере 127.0.0.1/site2.my и вижу то чно находится в /var/www/test2.my
Да. структура «позволеного» файла для 1 сайта такая: (
ServerName test1
ServerAlias test1.my www.test1.my
DocumentRoot /var/www/test1.my
)
И кстати команда a2ensite у меня не работает. Догадался и создал сам с помощью ln -s /etc/apache2/sites-available/test1.my ярлык.
И все это хорошо. Спасибо и за это, но возможно можно как-то сделать чтобы в браузере не писать 127.0.0.1/test1.my, а писать просто test1.my и видеть первый сайт? Буду очень признательный за ответ.
oleg, да вы можете и не писать 127.0.0.1/site1.my, так как благодаря записям в /etc/hosts уже переопределены записи для каждого из адресов. Так что можете сразу писать site1.my и все должно сразу же заработать. На самом деле файл hosts — это фактически маленький DNS server. Собственно этот файл и есть родоначальником DNS.
Почему то по данному мануалу я не могу зайти с локальной машины по адресу site1.my хотя по ип адресу сервера могу, как настроить чтоб на сайт1 можно было зайти по имени а не ао ип?
WildReise, а вы в файл /etc/hosts добавили строчки?
Спасибо за хорошую статью, но у меня возникла одна проблема:
Если я ложу сайт в папку /var/www/ то все работает нормально, а если я использую виртуальные хосты и ложу сайт в папку /home/*/public_html/site/ то index.php не открывается а предлагает сохранить файл на диск.
Возможны два варианта, либо неправильно сконфигурирован интерпретатор PHP, либо неправильно прописаны пути DocumentRoot в настройках виртуальных директорий.
заработало после того, как я раскомментировал строчку в модуле php5.conf
«to reenable php in user directories comment the follow lines»
хотя вроде нет...
сейчас смотрю конфиг. Закомментирована строка
«php admin value engine off»
она находится как раз после указания пути к виртуальным хостам...
До поздна сидел, толком не помню, но по любому в этом файле проблема
Это что-то вроде не похоже на то место где может быть проблема. в php.conf есть настройка расширений файлов и их последовательность, которые будет обрабатывать интерпритатор PHP. Если там настроенно все нормально, очычно по дефолту все подходить как нельзя лучше, то тогда проблемма скорее всего в файлах виртуальных директорий.
факт. После этого заработало...
Я же после каждой манипуляции апач перегружал и пробовал.
Кстати натолкнула меня на это ваша фраза «либо неправильно сконфигурирован интерпретатор PHP»
я же не знаю, что такое интерпретатор php я же первую неделю в линухе =)
Знание, что такое интерпретатор PHP, никак не связано со знаниеим/не знанием Linux. Это обычная программа, как Word, Paint, Блокнот, но предназначена не для просмотра текста или редактирования изображений, а для интерпретации команд в данном случае команд языка PHP. То есть работает это примерно так, на вход интерпретатора поступают команды, либо напрямую с консоли, либо из файла, либо, как в нашем случае, интерпретатор запускается вебсервером apache. Вот для взаимодействия apache и PHP, необходимо сконфигурировать эту связку.
Кстати, в скором времени я планирую написать серию постов о настройке PHP, MySQL и как все это дело можно применять к разработке веб сайтов.
Сергей, а вы задали права доступа на новую папку с сайтом? У меня после открытия сайта в браузере выходила ошибка «Forbinned», все заработал как установил права на папку с сайтом ? правда не помню какие поставил, здесь написано www.tulvit.ru/linux/lamp- ...apache-mysql-php
Муслим, если честно, то я оставлял права по умолчанию. Спасибо за ссылку на хорошее продолжение.
Попробуй обязательно, почему: сегодня я обновил на своем серваке (домашнем) две страницы, получилось на все страницы доступ есть, спокойно открываются, а именно на эти страницы нет, пишет «Forbinned»(в браузере), так как я не помнил какие конкретно права задал на папку /var/www, сделал так: (в оконном менеджере)вошел в свойства папки->Права-> в графе остальные стояло «Только чтение», я поставил «Чтение и запись» и сразу же на место «Только чтение» и применить рекурсиво для всех вложенных файлов, и все заработало, не только в графе «Остальные» выше тоже была какая та графа с те ми же правами «Только чтение», там так же сделал...щас просто он выключен(шумит сильно), щас в винде сижу,не помню как это графа называлась
Муслим, скорее всего у тебя ситуация в следующем:
— ты заходишь в систему использууя свой логин и пароль, при этом ты принадлежишь какой-то группе
— папка /var/www/ — принадлежит совсем другой группе и пользователю
— ты копируешь или создаешь в /var/www/ свои страницы, которые будут иметь того же владельца и группу, к которым принадлежит пользователь под которым ты вошел в систему, и эти файлы, естественно, будут недоступны для той группы под которой работает сервер apache
Для того чтобы это исправить, не нужно выдавать права на запись для всех, надо просто добавить пользователя в соответствующие группы, либо коннектиться через FTP соответствующим пользователем.
понял, спасибо
у меня вот такой вопрос, не могу понять,может знашь.
если на серваке несколько сайтов, а у сервака конечно же один ip, то откуда сервак знает кому какой сайт выдавать, ведь на всех доменах будет указан один ip как я понимаю, но на серваке еще валом места, хочется для чего нибудь использовать
и еще один вопрос, такую тему не нашел на этом сайте, поэтому напишу здесь же
Динамический DNS
+++сервак соединен к роутеру а роут к инету
+++на роуте включен динамик днс
проблема в том что роут передает сервису днс свой сетевой ip т.е. не ip внутри сети роутера, а ip в сети провайдера , но в итоге ip в инете другой, когда заходишь на сайт myip.ru там другой ip.
1, как сделать так что б роут передавал динамик днс сервису ip (в интеренете(Browser IP)) а не ip внутри сети провайдера
2, если поставить в Ubuntu Server anydns вроде называется или что то типа этого, то он так же будет передавать ip который внутри сети или же browser ip (конечный (в интернете))?
заранее благодарю
«inadyn» а не «anydns»
По поводу нескольких сайтов на одном IP, ответ есть в моем посте.
<virtualhost *:80> ServerName test1 ServerAlias test1.my www.test1.my ... </virtualhost>В виртуальных хостах указан адрес сервера и его алиасы, вот благодаря этому apache и отправить пользователя в нужное место, а в /etc/hosts прописываются соответствия названий серверов к IP адресам, на самом деле файл /etc/hosts — это прародитель DNS, так что отрезолвить имя Apache сможет и через DNS сервер.
По поводу вопроса о роутинге и DNS — это довольно обширная тема, ее не удастся осветить не то что в комментарии, но даже и в посте, а то и в целой серии постов.
Для того чтобы разобраться во всех тонкостях сетей, я бы порекомендовал прочитать книгу:
Терри Доусона (Terry Dawson) и Олафа Кирха (Olaf Kirch) — Linux для профессионалов. Руководство администратора сети.
в этой книге описаны, как основы сетей, так и примеры настройки их на Linux.
окей, спасибо
как я понял, грубо говоря серверу приходит скажем так 'сообщение' типа дай мне вот этот сайт, или тот
вот чел набрал ссылку ... днс отправляет его на IP, а на этом айпи знают с какого он домена пришел?чтоб знать какой сайт ему выдать
Не совсем так. IP не может знать на какой сайт кто пришел, об этом знает Apache, благодаря конфигурации виртуальных хостов. Собственно, потому они и виртуальные, что несколько сайтов может быть на одном IP адресе.
a2ensite test1.my а не /.../.../test1.my
Здравствуйте ! У меня возникает следующая ошибка при
#sudo /etc/init.d/apache2 reload
выводит такое
Warning: DocumentRoot [/var/www/test1.my/www] does not exist
Подскажите, что у меня не так ??
Timur, apache открытым текстом говорит, что в системе нету директории [/var/www/test1.my/www]. Скорее всего ее действительно нет, либо отсутствуют права на чтение этой директории для процесса appache
Спасибо за статью, все предельно ясно и понятно, но я никак не могу разобраться как заходить с внешки на виртуальный хост. В сети два компьютера, соединены роутером который собсно смотрит в инет. На веб сервере введя в адресной строке test.my попадаю на index.html своего виртуального хоста, по 127.0.0.1 попадаю на index.html основного хоста. Захожу с рабочей машины на 192.168.0.8 и попадаю на основной хост.
hosts
127.0.0.1 localhost
127.0.0.1 test.my www.test.my
192.168.0.8 Ubuntu.UWS Ubuntu
Прошу подсказки мастера в данном вопросе, заранее спасибо.
Rio, для того чтобы было видно извне необходим DNS сервер, в котором будут прописаны соответствия.
Спасибо за
ServerAlias test1.my www.test1.my
Действительно нигде нету))
В остальном всё заработало с пол-оборота
Мужики, подскажите пожалуйста!
В общем ubuntu 10.10, поствил апач, в папке www создал виртуальный хост.
Все работает — нет проблем!
Один только вопрос, какие права нужно задать на папку и файлы?
Где вообще можно на эту тему почитать?
И как собственно эти права задать? )))
Хочется чтобы безопасность была на лоджном уровне
IF, права в Линуксе это основа из основ — поэтому необходимо бы почитать LAME (Linux Administration Made Easy) автор Steve Frampton. Книга довольно старая, но вней лучше всего описаны основы аддминистрирования.
В кратце можно систему прав описать так. Кждый файл в линуксе может быть отенесен к одной из трех групп: владелец, группа в которую входит владелец, и все остальные. Наф файл можно назначить три типа прав доступа для каждой из групп. Права доступа могут быть заданы в числовом виде (битовая маска) — 755, либо в буквенном : rwx-rxr-x.
r — (Read) чтение
w — (Write) запись
x — (eXecute) выполнение
первая тройка относиться к владельцу файла (u)
вторая к группе в которую входит владелец (g)
третья для всех остальных (o)
Сами права доступа задаются при помощи команды chmod (man chmod выведет описание всех параметров)
Вот скрипт, для создания виртуальных хостов:
#!/bin/bash
#Author: Ivlev E
echo -n "Введите имя создаваемого хоста: "
read newHost
echo -n «Введите путь от корня до файлов сайта: „
read newPath
#Производим запись в hosts
file=“/etc/hosts»
b=$(cat $file)
newContent="127.0.0.1 ${newHost}"$'\n'"127.0.0.1 www.${newHost}"$'\n'$b
sudo bash -c «echo '${newContent}' > $file»
#Добавляем сайт в sites-available и прописываем в него нужные директивы
sap=/etc/apache2/sites-available/$newHost
sudo touch $sap
sudo chmod 777 $sap
directives="
ServerName ${newHost}
ServerAlias ${newHost} www.${newHost}
DocumentRoot ${newPath}
AllowOverride All
"
echo «$directives»>$sap
#Включаем виртуальный хост
sudo a2ensite $newHost
#Включаем rewrite
sudo a2enmod rewrite
#Перезапускаем сервер
sudo /usr/sbin/apache2ctl restart
sudo chmod 777 $sap — вот эта строчка мне совсем не нравиться, как по мне 777 надо поменять на 644
Не подскажете, чем отличается настройка Apache на локальном компьютере от настройки на VPS?
Да ничем, кроме того что на VPS через ssh лезешь, а на local все под рукой (скоростью передачи данных в общем)
Спасибо большое автору за статью!
Сразу поделюсь своей головной болью.
Значит за роутером находится комп и сервер(на сервере стоит пока обычный Ubuntu 11.04, не Server!). когда на сервере в браузере ввожу site1.ru или site2.ru все работает прекрасно, но когда ввожу ip/site1.ru или ip/site2.ru не может найти хосты на сервере. Кстати при наборе только ip сервера default-хост проходит и на серваке и на локальной машине. В hosts файле все прописал. Апач работает без ошибок. В чем проблема никак не могу понять.
SHpiller, не совсем понял вопрос. То есть вы пытаетесь зайти на свои сайты, по таким адресам: 12.0.0.1/site1.ru, 12.0.0.1/site2.ru? Если да, то это в корне неправильный подход и он никогда не будет работать. В этом случае идет попытка уйти на default сайт и найти на нем странички с именами siteN.ru
Хорошо. Согласен. Обьясние тогда каким образом мне заходить на свои сайты из сети?
З.Ы. Планируется покупка нескольки доменов на один IP (установка и настройки DynDNS, проброс портов и на роутере уже выполнены).
SHpiller, на одном IP адресе может быть несколько сайтов, при правильной конфигурации апача доступ к ним возможен по их имени, тоесть site1.ru, site2.ru. Либо их можно разнести на разные порта и тогда можно достукиваться по ip:port, но лучше настроить виртуальные сайты в апаче как описано в этом посте и тогда не возникнет никаких проблем
А не подскажешь, зачем нужна тогда директива NameVirtualHost, если виртуальный хостинг и без нее работает на Ubuntu, или её требовалось указывать в rpm-системах. А еще удивительно то, что на сайте www.apache.org не сказано про файл apache2.conf для deb-подобных систем. там про настройки файла httpd. понятно, что можно их считать взаимозаменяемыми. но все же...
К сожалению не знаю про NameVirtualHost.
А насчет apache2.conf, так это каждый дистрибутив кастомизирует как хочет — это же линукс, в нем ничего не гарантировано
скорее всего для описания портов на которых VirtualHost обслуживается. Для того чтобы обслуживать слушать на любом ip на портах 80 и 81 (виртуальные хосты на этих портах будут работать). Все-равно спасибо.
я у себя настраивал таким образом, что все виртуальные хосты висели на одном (80) порту, и отзывались по разным именам (site1.my, site2.my), которые прописывал в /etc/hosts — это для того, чтобы не поднимать DNS сервер
ну у меня так же. для отладки сайтов сделал. только как залез в маны, так везде эта директива указывалась. а все работает и без нее. вот вопрос и вылез
я уже очень давно по всем манам лазил, так что уж и не помню всех ньюансов, последнее время все больше сайты под виндой делаю...
Статья полезная! Только у меня результат 0. ДНС сервер настроен. Через консоль сервера сайты открываются, а с локального ПК браузер пишет не может найти страницу, Прошу HELP!
Похоже на то что ДНС сервер настроен некорректно
можно я выложу настройки днс?
Евли честно, я с настройкой ДНС сталкивался очень давно, и вряд ли смогу помочь, но выложить можно, может кто-то из ребят сможет подсказать в чем проблема
это файл прямой зоны db.lan
$ORGIN mshome.net.
$TTL 604800
@ IN SOA server.mshome.net info.mshome.net (
2011102003;
604800;
86400;
2419200;
604800);
NS server.mshome.net.
mshome.net. A 192.168.0.1
www IN A 192.168.0.1
server IN A 192.168.0.1
; хосты mshome.net
MYPC2 IN A 192.168.0.2
vladimir-desktopIN A 192.168.0.3
; virtual host
bamboo IN A 192.168.0.10
biz IN A 192.168.0.11
company IN A 192.168.0.12
это файл обратной зоны
$TTL 86400
@ IN SOA server.mshome.net info.mshome.net (
2011102003;
604800;
86400;
2419200;
604800);
NS server.mshome.net.
1 PTR mshome.net.
1 PTR server.mshome.net.
;HOSTS
192.168.0.2 IN PTR MYPC2
192.168.0.3 IN PTR vladimir-desktop
; virtual host
192.168.0.10 IN PTR bamboo.mshome.net.
192.168.0.11 IN PTR biz.mshome.net.
192.168.0.12 IN PTR company.mshome.net.
файл named.conf.default-zones к стандартному добавил
zone «mshome.net» {
type master;
file «/etc/bind/db.lan»;
};
zone «0.168.192.in-addr.arpa» {
type master;
file «/etc/bind/db.0.168.192.in-addr.arpa»;
};
похоже на то что локальный ДНС сервак никоим боком не комуницирует со внешними ДНС сереверами, то есть внешние сервера ничего не знают о локальном. Надо копать в эту сторону.
Сервер и домен для локальной сети. Сайты не открываются с локальных ПК.
Все сайты с Интернета без проблем в локальной сети.
К сожалению в данном случае я помочь не смогу :(, может кто-то из читателей сможет ответить. Ребята, дружно ждем Вашей помощи.
а если выпадает ошибка
ERROR: No site found matching /etc/apache2/sites-available/test.my
при этом файл в директории есть
;- (
проверьте включена ли директория sites-available, для поиска в ней настроек в файле apache2.conf, или httpd.conf. А также необходимо активировать сайт командой #sudo a2ensite /etc/apache2/sites-available/test1.my. Ну и не забыть прописать следующую строку в файл /etc/hosts — 127.0.0.1 test1.my www.test1.my
Это все было прописано
как раз сообщение выдавалось когда я писал команду a2ensite
Но я вот поставил Webmin и там настроил ...т.к. не понял в чем ошибка
Главное результат
Сейчас уже сложно сказать где могла быть проблема.
Доброго времени суток. Я думал виноват iptables но по имени сервера (с локального ПК) server.mshome.net открывается сайт сompany.mshome.net Почему?
сложно ответить не имея полной картины и всех настроек, мне кажется такой вопрос лучше задать на форумах, там аудитория побольше, и они более точно смогут определить проблему.
всем привет, имеется роутер (с настроенной dyndns и пробросом нужных портов на мой комп) и несколько компов, на моем (ubuntu 11.10) настроена proftpd, ssh — все работает удаленно по инету норм, а вот сайт внутри локалки работает (даже по внешнему dns), а удаленно пишет мол не могу найти сайт, как же так?
а ДНС сервер смотрит на рутовый днс?
сомневаюсь, в роутере есть поддержка оного и там же настроил
ssh и ftp норм пашут ведь, по vnc подключался удаленно норм
я писал не про роутер, а про рутовый (корневой, родительский) ДНС сервер.
гугл посылает на описание и установку Bind, это оно?
В принципе да, BIND — это ДНС сервер, но он должен зарегистрировать корневой ДНС, чтобы можно бало резолвить адреса во всемирной паутине, задача непростая.
А вообще по этой тематике, есть очень хорошая книга Олафа Кирха, Руководство администратора сети. Ее должен прочитать каждый администратор, дабы понимать как устроен интернет и сети в целом. Без знаний материала из этой книги, любые попытки настроить что-либо, будут превращаться в брождение слепых котят.
спасибо, прочитаю)
щас в другом месте как раз теорию изучаю
В свое время, я всю информацию по сетевым технологиям почерпнул именно из этой книги, и лучше книг так и не встречал. Там все описано очень простым доступным языком, и приведены примеры настройки реальной сети, с роутерами, днс серверами, фтп и т.д. Сейчас я уже настройкой сетей давно не занимаюсь, так что некоторые ньюансы малость подзабылась
все заработало, по ходу провайдер 81 порт блокирует, сменил порт и заработало)
а DNS у меня на *.asuscomm.com и так есть — хватает ((=
Доброго времени суток! Ситуация следующая: в файле в папке sites-available прописан Алиас имени сайта «ServerAlias test1.my www.test1.my» в файле /etc/hosts имеет место быть строка «127.0.0.1 test1.my www.test1.my»
Но, в браузере при обращении к самому сайту (test1.my) — всё хорошо, а при обращении по алиасу (www.test1.my) — 404 (Not Found)! Большая просьба пнуть в нужном направлении, сейчас курю маны по Апачу... но не уверен в правильности принятого решения.
Вот так должно заработать
ServerName test1.my
ServerAlias test1 test1.my www.test1.my
исправил, не заработало ;- ( Кстати Апач в логах ругается следующими словами:
file does not exist: /var/www/www.test1.my
а в каком каталоге лежит сайт?
/var/www/test1.my
Повтрюсь. При обращении в браузере к имени на прямую без «www» всё отлично работает! У меня такое впечатление, что Apache просто игнорирует директиву ServerAlias. Все мозги сломал себе уже...
можешь выложить куда нибудь файлы настроек апача и файл /etc/hosts?
Решил выслать сразу тебе на мыло. Спс за помощь.
Создал сим линк www.test1.my в директории /var/www/ на /var/www/test1.my — зароботало. Однако костыль
не хотелось бы так оставлять...
Вот вы пишите в комментах, что нужно в /etc/hosts писать ip название сервера алиас.
А у вас в статье в hosts прописывается ip и алиасы, то есть имя сервера отсутствует. Вы вносите путаницу. Ещё вопрос. Где определяется, как будет называться файл сайта в папках sites-available и sites-enable. Вы использовали файл с именем одного из алиасов, чтобы было понятно, но стало наоборот не понятно.
О названии сервера в посте тоже есть упоминание. А название файла можно выбирать произвольно.
Сделал всё по инструкции. При инициализации апача выдает ошибку:
/etc/init.d/apache2 reload
Reloading web server config: apache2[Wed Jan 04 14:05:29 2012] [error] VirtualHost *:80 — mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
Скорее всего в файлах настроек, есть вот такая строка
NameVirtualHost *
ее надо заменить на следующую
NameVirtualHost *:80
Help!!!!!!!!
Не работает данная команда (ERROR: No site found matching /etc/apache2/sites-available/vadimnet.net ;- ( !)
#sudo a2ensite /etc/apache2/sites-available/test1.my
Здравствуйте,
в целях отладки и тестирования на Win7 я поставил VirtualBox (сеть в режиме моста)+Ubuntu10.04Server (LAMP) : правильно ли я понял что теперь я по вашему рецепту смогу из хост ОС в гостевом Ubuntu увидеть разные страницы для www.test1.my и www.test2.my на одном ip адресе, без локального DNS сервера но с интернетом по ADSL — я попробовал, но пока вижу только «It works!». Обращаясь к серверу я располагаю только ip. О Hosts (Ubuntu) Win7 ничего не знает...? Добавил и в Win7/hosts test1.my запись — но не помогает...а ещё я не понял как апач узнаёт где лежит стартовая страница виртуальных сйтов ? — необессудте — я начинающий...
Направление движения верное. Win7 сможет увидеть сайты на Ubuntu. Для этого необходимо глянуть какой IP адрес использует Ubuntu и прописать его в Win7 system32/drivers/etc/hosts и соответствие названий сайтов, то есть что-то наподобие этого:
192.168.10.10 (это IP Ubuntu) www.test1.my
сама Ubuntu настраивается, как описано в моем посте, и hosts тоже надо прописать в убунте.
Апач о стартовой странице знает из настроек виртуальной директории, по умолчанию это index.html
Большое спасибо автору. То что нужно.
Vadim, у меня сработало не
#sudo a2ensite /etc/apache2/sites-available/test1.my
а
#sudo a2ensite test1.my
...ещё раз спасибо автору...
Всем привет, у меня на ubuntu server 11.10 такая проблема при перезапуске апача — Invalid comand 'ServerAlies', perhaps misspelled or or defined by module not included in the server configuration Action 'configtest' failed
Как подключить етот serveralies ? Помогите пожалуйста кто может! Зарание благодрен.