Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/65: Рейтинг темы: голосов - 65, средняя оценка - 4.57
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
1

NameVirtualHost has no effect and will be removed in the next release

04.02.2014, 15:17. Показов 13017. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. В общем такая проблема. Решил постораться немного разобраться в создании хостов на apache. Пробую создать 2 разных хоста: ipbased и namebased. В общем у меня получилось это вроде как сделать, но при запуске апача, получаю такое сообщение:
Код
NameVirtualHost has no effect and will be removed in the next release /etc/apache2/sites-enabled/000-default.conf:2
И не могу понять, что это значит и как от этого избавиться....хотя всё работает как я и хотел.
Вот такие настройки стоят у меня в VirtualHosts:
Код
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/localhost/www
	ServerName localhost
	ErrorLog /var/log/apache2/error.log
	CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<VirtualHost test>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/artur/test/www
	ServerName test
	ErrorLog /var/log/apache2/error.log
	TransferLog /var/log/apache2/access.log
</VirtualHost>
<VirtualHost 127.0.0.1:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/artur/test2/www
	ServerName test2
	ErrorLog /var/log/apache2/error.log
	TransferLog /var/log/apache2/access.log
</VirtualHost>
В конфиге apache2.conf ничего не менял . Только довил строку "ServerName localhost".
Вот настройки файла hosts
Код
127.0.0.1	localhost test2
127.0.1.1	artur-ubuntu
127.0.0.2	test
0
Заблокирован
04.02.2014, 15:44 2
Ничего, никак.

https://httpd.apache.org/docs/2.4/upgrading.html
1
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
04.02.2014, 16:03  [ТС] 3
Цитата Сообщение от Dr_Quake Посмотреть сообщение
Ничего, никак.
Странно. Я переименовал 2 строки, где было "VirtualHost 127.0.0.1:80" - на "localhost 127.0.0.1:80", а также "NameVirtualHost 127.0.0.1:80" на "NameVirtualHost localhost:80" и сообщение исчезло. Не совсем понимаю почему, ну я исходил из мысли, что в apache2.conf в поле ServerName я прописал localhost и соответственно, в VirtualHost нужно тоже самое проставить. Ну это просто догадка конечно, вроде же по идее, директива NameVirtualHost сообщает серверу, что указанный ip адрес может использоваться несколькими хостами(так в книге прочитал), соответственно, можно же любое имя ставить? так ли это?
И ещё, вопрос такой, видел обозначения вида "*:*" - как в NameVirtualHost, так и в объявлении виртуального хоста. Что это означает? Как я понимаю, второй знак после двоеточия указывается порт, по которому прослушивается данный хост, тогда почему, когда мы задаём хост типа ipbased, в данном случае у меня этот хост test, порт не указывается? как апач узнаёт, что его нужно прослушивать по 80 порту? Заранее спасибо!
0
Заблокирован
04.02.2014, 16:06 4
Оно намекает что теперь будет просто VirtualHost. Ранее чтобы были named надо было указывать listen порт для вхостов или для нескольких через NameVirtualHost, иначе был бы лимит 1 VirtualHost на 1 порт+адрес, а теперь всё вместе. Примерно так же как в nginx.
1
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
05.02.2014, 02:42  [ТС] 5
Если честно, не совсем вас понял) особенно это выражение:
Цитата Сообщение от Dr_Quake Посмотреть сообщение
Оно намекает что теперь будет просто VirtualHost
что значит "будет просто VirtualHost"?
И я так и не понял, почему в ipbased не нужно указывать порт? если я например захочу, чтобы он по другому порту прослушивался?
Попытался сделать так:
Код
<VirtualHost test:81>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/artur/test/www
    ServerName test
    ErrorLog /var/log/apache2/error.log
    TransferLog /var/log/apache2/access.log
</VirtualHost>
Но этот хост всё равно принимает по 80 порту. А если попытаться подключиться по 81, то браузер не может подключиться...в общем не могу понять эту систему записей.
Кстати, из списка хостов убрал строку NameVirtualHost ничего не изменилось, всё также нормально работает
0
Заблокирован
05.02.2014, 03:01 6
Какой ещё test? Оттуда и бардак. В любом раскладе отучайся использовать name:порт, только iport. И порт должен быть в Listen естественно, это они не отменяли.
1
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
05.02.2014, 03:08  [ТС] 7
Цитата Сообщение от Dr_Quake Посмотреть сообщение
Какой ещё test?
test - это доменное имя, которое я записал на ip адрес 127.0.0.2. Я его ещё указал в старт-топике.
Цитата Сообщение от Dr_Quake Посмотреть сообщение
В любом раскладе отучайся использовать name:порт, только iport
Вот так?
Код
<VirtualHost 127.0.0.2:81>
0
Заблокирован
05.02.2014, 03:23 8
Хотя бы так. Но 127.0.0.2 это некорректный адрес с точки зрения апача всё-таки, так что только 127.0.0.1, да и к тому же для этого и были придуманы Named Virtual Hosts как бы - чтобы не было нужно каждому хосту отдельный IP если использовать везде стандартный порт.

Добавлено через 2 минуты
И да, так Listen 81 ты дописал как положено сначала?
1
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
05.02.2014, 03:46  [ТС] 9
Цитата Сообщение от Dr_Quake Посмотреть сообщение
Но 127.0.0.2 это некорректный адрес с точки зрения апача всё-таки, так что только 127.0.0.1, да и к тому же для этого и были придуманы Named Virtual Hosts как бы - чтобы не было нужно каждому хосту отдельный IP если использовать везде стандартный порт
Ну, я в первую очередь для общего развития хочу разобраться, чтобы хотябы просто знать как это делать. Плюс, я в дальнейшем хочу на VPS-ке приложение написать на php, и закрепить его за каким-либо другим ip. Т.к. в голове сидит мысль, чтобы обращение к этому приложению было только по IP(т.е. чтобы только сотрудники компании знали по какому адресу обращаться к этому приложению), соответственно не нужно будет тогда регистрировать доменное имя и заносить его в DNS сервера. Но, я ещё пока толком в этом не разобрался, это так, просто пока прикидка как бы сделать задуманное.
Цитата Сообщение от Dr_Quake Посмотреть сообщение
И да, так Listen 81 ты дописал как положено сначала?
Listen 81 в самом начале написал, и ещё пробовал так, Listen 127.0.0.2:81(мол типа только этот адрес должен прослушиваться по 81 порту, не знаю правильно это или нет) ну разницы никакой не заметил.
В общем, теперь при указании такого адреса: http://test:81 кидает куда нужно, но при этом, если не указывать порт, т.е. вот так http://test, всё равно кидает тудаже, т.е. и на 80 порте отрабатывает. WHY?
0
Заблокирован
05.02.2014, 09:44 10
Это то скорее всего понятно, из-за объединения если неясно на какой хост кидать - кидает на первый по конфигу, а у тебя нету хостов на 80 или даже просто первым идёт этот, а listen 80 у тебя не убрано.
1
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
05.02.2014, 12:03  [ТС] 11
Короче получилось у меня сделать) разделил на 2 файла. В первом, назвал его "localhost.conf" у меня 2 хоста localhost и test2, которые закреплены за одним ip-шником, в общем они namebased. Вот так он выглядит:
Код
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/localhost/www
	ServerName localhost
	ErrorLog /var/log/apache2/error.log
	CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<VirtualHost 127.0.0.1:80>
	ServerAdmin webmaster@localhsot
	DocumentRoot /var/www/artur/test2/www
	ServerName test2
</VirtualHost>
Второй файл - "newport.conf". В нём хост test закреплённый за другим ip - 127.0.0.2 и прослушивается по порту 81. Выглядит он так:
Код
Listen 81
<VirtualHost 127.0.0.2:81>
	ServerAdmin webmaster@localhost
	ServerName test
	DocumentRoot /var/www/artur/test/www
</VirtualHost>
В общем, работает вроде как нужно. Доступ к 127.0.0.2 я действительно получаю только если указываю в браузере 81 порт.
Только вот вопрос есть, если я пытаюсь по 80 порту к нему попасть, меня кидает в каталог /var/www - это нормально? И как например от этого избавиться, я так понимаю нужно настраивать Directory как-то?
0
Заблокирован
05.02.2014, 12:11 12
Да ничего ты не понимаешь пока что. NameVirtualHost значит что соединение одно, порт один, а какой сайт отдавать выбирает клиент указывая Host: xxx в запросе
http://en.wikipedia.org/wiki/Virtual_hosting
И у тебя в основном конфиге где-то указан default сайт который идёт первым, ты же небось по IP заходишь на него, соответственно в хидере 127.0.0.2 и кидает на первый vhost как default. Для того чтобы КЛИЕНТ запросил test надо заходить на http://test:81 и test должен быть НА КЛИЕНТЕ(ну у тебя всё просто - это ты же) прописан в hosts как 127.0.0.2(естественно в продакшне в DNS)
0
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
05.02.2014, 15:04  [ТС] 13
Цитата Сообщение от Dr_Quake Посмотреть сообщение
ну у тебя всё просто - это ты же
Если бы я думал, что "всё просто" - я бы не создавал здесь топик и не заваливал тебя вопросами.
0
Заблокирован
05.02.2014, 15:14 14
С конфигами разберись сначала, да? У тебя там лишний сайт где-то.
0
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
05.02.2014, 15:38  [ТС] 15
Цитата Сообщение от Dr_Quake Посмотреть сообщение
У тебя там лишний сайт где-то
Я уже подправил. Спасибо за подсказку.
0
05.02.2014, 15:38
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru