doc.3dn.ru
Понедельник, 25.11.2024, 17:29
Приветствую Вас Гость | RSS
 
Главная Каталог статейРегистрацияВход
Меню сайта
Категории каталога
LINUX (Server`s) [16]
Windows (Server`s) [3]
Наш опрос
Нужны ли на сайте видео уроки по Flash?
Всего ответов: 489


Главная » Статьи » Сервера » LINUX (Server`s)

Настройка виртуальных хостов Apache, взгляд с другой стороны (UBUNTU LINUX)

Настройка виртуальных хостов Apache, взгляд с другой стороны (UBUNTU LINUX)

Немного теории.
Как нам уже известно, в каталоге /etc/apache2/sites-available находятся файлы конфигурации хостов, а в /etc/apache2/sites-enabled находятся символические ссылки на файлы конфигурации /etc/apache2/sites-available, включенных хостов. Для того чтобы создать виртуальный хост, нужно создать конфигурационный файл и при помощи утилиты a2ensite создать символическую ссылку. А отключить хост можно утилитой a2ensite.

Действие первое.

sudo /etc/init.d/apache2 stop
sudo a2dissite default

Для начала создадим папки для наших виртуальных хостов. В моем случае они будут находиться в директории /var/www/ и называться ipbased и namebased. ipbased будет привязан как на имя, так и на ip-адрес. namebased будет откликаться только на имя хоста.

sudo mkdir /var/www/localhost
sudo mkdir /var/www/ipbased
sudo mkdir /var/www/namebased

Работаем над шаблоном. 
Давайте сделаем упрощённую версию /etc/apache2/sites-available/default, чтобы иметь backup default и убрать лишнее из файлов настроек хостов:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/simple-default

В дальнейшем и будем использовать simple-default в качестве шаблона для других хостов.

Теперь немного подчистим наш шаблонный файл, который, кстати, мы будем использовать в качестве файла настроек http://localhost:

sudo gedit /etc/apache2/sites-available/simple-default

После некоторых изменений я получил файл с таким содержанием:
##Файл-шаблон для локальных хостов
NameVirtualHost *:80
## localhost
## http://localhost http://127.0.0.1
<VirtualHost *:80>
ServerAdmin webmaster@localhost
##Каталог с вашими документами
DocumentRoot /var/www/localhost/
##Имя сервера
ServerName localhost
##Логфайлы
ErrorLog /var/log/apache2/hosts/localhost-error.log
CustomLog /var/log/apache2/hosts/localhost-access.log combined
##Показывать или нет сигнатуру сервера
ServerSignature Off
##Доступ к файлам
<Directory /var/www/localhost/>
Order Deny,Allow
Deny from all
Allow from 127.0.0.0/24
</Directory>
</VirtualHost>

 
Создаем ipbased-хост.
Копируем наш simple-default:

cp /etc/apache2/sites-available/simple-default /etc/apache2/sites-available/ipbased

… и изменяем настройки:

sudo gedit /etc/apache2/sites-available/ipbased

на следующие:
##Файл-шиблон для локальных хостов
NameVirtualHost *:80
## ipbased — локальный хост привязанный к IP
## http://ipbased http://127.0.0.2
<VirtualHost *:80>
ServerAdmin webmaster@localhost
##Каталог с вашими документами
DocumentRoot /var/www/ipbased/
##Имя сервера
ServerName ipbased
##Логфайлы
ErrorLog /var/log/apache2/hosts/ipbased-error.log
CustomLog /var/log/apache2/hosts/ipbased-access.log combined
##Показывать или нет сигнатуру сервера
ServerSignature Off
##Доступ к файлам
<Directory /var/www/ipbased/>
Order Deny,Allow
Deny from all
Allow from 127.0.0.0/24
</VirtualHost>

Создаем namebased-хост.

Копируем наш simple-default:

cp /etc/apache2/sites-available/simple-default /etc/apache2/sites-available/namebased

… и изменяем настройки:

sudo gedit /etc/apache2/sites-available/namebased

на следующие:

##Файл-шаблон для локальных хостов
NameVirtualHost *:80
## namebased — локальный хост не привязанный к IP
## http://namebased
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost
##Каталог с вашими документами
DocumentRoot /var/www/namebased/
##Имя сервера
ServerName namebased
##Логфайлы
ErrorLog /var/log/apache2/hosts/namebased-error.log
CustomLog /var/log/apache2/hosts/namebased-access.log combined
##Показывать или нет сигнатуру сервера
ServerSignature Off
##Доступ к файлам
<Directory /var/www/namebased/>
Order Deny,Allow
Deny from all
Allow from 127.0.0.0/24
</Directory>
</VirtualHost>

Не забываем сохранять сделанные настройки.

Ещё немного настроек.

Чтобы наши виртуальные хосты заработали окончательно необходимо сделать еще пару манипуляций с файлом hosts. Для этого открываем в система-администрирование-сеть вкладку узлы. Выбираем 127.0.0.1, жмем на свойства и добавляем псевдонимы localhost namebased. Далее жмем на добавить, вводим ip адрес на который хотим чтобы откликался хост ipbased. Вводим в поле псевдонимы ipbased.

Перед тем как запустить apache, нужно включить нужные нам виртуальные хосты:

sudo a2ensite simple-default; a2ensite ipbased; a2ensite namebased

Cтарт Apache и проверка работоспособности.

sudo /etc/init.d/apache2 start

Создаем фалы для проверки:

echo "<?php echo $_SERVER[`SERVER_NAME`]; echo `<br />`;phpinfo(); ?>">/var/www/localhost/index.php && cp /var/www/localhost/index.php /var/www/ipbased/index.php && cp /var/www/localhost/index.php /var/www/namebased/index.php


Проверяем работоспособность http://ipbased/, http://localhost/, http://namebased/, http://127.0.0.1/, http://ip-адрес хоста ipbased.

Теперь вы видите, что в создании хостов нет проблем. Главное не увлекайтесь :)

Источник материала: Авторский блог с интересными заметками для интересных людей

Категория: LINUX (Server`s) | Добавил: doc (23.08.2008) | Автор: doc
Просмотров: 37675 | Комментарии: 12 | Рейтинг: 4.3/3 |

Всего комментариев: 121 2 »
1 Михаил  
0
Мутновато чуток написано. Более понятно и универсально (не только для Ubuntu) про настройку универсальных хостов рассказано тут http://web-linux.ru/?p=56

2 AKM  
0
Ничего мутноватого, а на том ресурсе который вы предложили вообще по древней схеме Linux-ов наклацано и никаких коментов здесь все ясно и понятно автору поклон =)

3 AKM  
0
Когда стартую apache пишет ошибку:
zeusakm@zeusakm-desktop:~$ sudo /etc/init.d/apache2 start
* Starting web server apache2
Syntax error on line 18 of /etc/apache2/sites-enabled/namebased:
order takes one argument, 'allow,deny', 'deny,allow', or 'mutual-failure'
[fail]
Подскажите что с этим делать плиз!

4 doc  
0
Ошибка в строке 18 в файле /etc/apache2/sites-enabled/namebased

5 Master  
0
Действительно - забыли закрыть </Directory>

6 ersx  
0
Ошибка в тесте. команда на отключение хоста a2dissite. :)

7 Никита  
0
"Для этого открываем в система-администрирование-сеть вкладку узлы." - никак не могу понять где это? У меня есть Система -> Администрирование -> Сетевые инструменты, но там там нет вкладки "узлы".

8 ilya  
0
вот все сделал как написано, при рестарте Апача дает

ilya@ilya-desktop:/$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Tue Apr 27 21:47:42 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
[Tue Apr 27 21:47:42 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
[Tue Apr 27 21:47:42 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Tue Apr 27 21:47:43 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
[Tue Apr 27 21:47:43 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
[Tue Apr 27 21:47:43 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
[fail]


9 Евгений  
0
To Никита - установи пакет Network в центре приложений.
Автору - в ipbased хост должна быть закрыта Directory.
Спасибо, просто и понятно написано.

10 CHEM_Eugene  
0
Для себя написал bash скрипт для создания виртуальных хостов apache - http://wmparser.ru/content/viewArticle/54 Все стало просто как в Денвере :-D

1-10 11-12

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск
Друзья сайта
www.work-zilla.com
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0


Copyright MyCorp © 2024
Бесплатный хостинг uCoz