Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите разобраться с виртуальными хостами
 
 автор: mjc66   (14.05.2012 в 09:54)   письмо автору
 
 

Структура такая: в папке apache (C:\apache) лежат 2-е папки: localhost и test.ru, в каждой из них есть папка www, в localhost\www лежит phpmyadmin, а в test.ru\www 2-а сайта: site1 и site2. В файле "C:\Apache2\conf\extra\httpd-vhosts.conf" прописал хосты так:
NameVirtualHost *:80

<VirtualHost *:80>
   DocumentRoot "C:/apache/localhost/www"
   ServerName localhost
   ErrorLog "C:/apache/localhost/error.log"
   CustomLog "C:/apache/localhost/access.log" common
</VirtualHost>

<VirtualHost *:80>
   # Папка, в которой будет корень вашего хоста.
   DocumentRoot "C:/apache/test.ru/www"
   # Домен по которому вы сможете обращаться к виртуальному хосту.
   ServerName test.ru
   # Алиас (добавочное имя) домена.
   ServerAlias www.test.ru
   # Файл, в который будут записываться ошибки.
   ErrorLog "C:/apache/test.ru/error.log"
   # Файл журнала доступа к хосту.
   CustomLog "C:/apache/test.ru/access.log" common
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "C:/apache/localhost/www/phpmyadmin"
   ServerName localhost/www
   ServerAlias /pma "C:/apache/localhost/www/phpmyadmin"
   ErrorLog "C:/apache/localhost/www/error.log"
   CustomLog "C:/apache/localhost/www/access.log" common
</VirtualHost>


Файл "C:\WINDOWS\system32\drivers\etc\hosts" выглядит так:
127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru
127.0.0.1 www.phpmyadmin


А вот как прописать хосты для site1 и site2?

может по аналогии со сделанным уже будет так: в файле "C:\Apache2\conf\extra\httpd-vhosts.conf"


<VirtualHost *:80>
   # Папка, в которой будет корень вашего хоста.
   DocumentRoot "C:/apache/test.ru/www/site1"
   # Домен по которому вы сможете обращаться к виртуальному хосту.
   ServerName test.ru/site1
   # Алиас (добавочное имя) домена.
   ServerAlias /site1 "C:/apache/test.ru/www/site1"
   # Файл, в который будут записываться ошибки.
   ErrorLog "C:/apache/test.ru/site1/error.log"
   # Файл журнала доступа к хосту.
   CustomLog "C:/apache/test.ru/site1/access.log" common
</VirtualHost>


Тогда файл "C:\WINDOWS\system32\drivers\etc\hosts" выглядит так:

127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru
127.0.0.1 www.phpmyadmin
127.0.0.1 www.test.ru/site1
127.0.0.1 test.ru/site1


???

  Ответить  
 
 автор: cheops   (14.05.2012 в 11:02)   письмо автору
 
   для: mjc66   (14.05.2012 в 09:54)
 

А зачем, просто заводите в C:/apache/test.ru/www подпапку site1 и обращайте к test.ru/site1? В Apache для этого больше ничего дополнительно настраивать не нужно.

  Ответить  
 
 автор: mjc66   (14.05.2012 в 11:09)   письмо автору
 
   для: cheops   (14.05.2012 в 11:02)
 

При таком подходе как вы предлагаете, теряются пути к вспомогательным файлам, например к .css

  Ответить  
 
 автор: cheops   (14.05.2012 в 11:13)   письмо автору
 
   для: mjc66   (14.05.2012 в 11:09)
 

Просто указывайте абсолютный путь от корня сайта к css, например, /css/main.css и ничего теряться не будет (в любом случае это не задача Apache, скорее браузера).

  Ответить  
 
 автор: mjc66   (14.05.2012 в 11:23)   письмо автору
 
   для: cheops   (14.05.2012 в 11:13)
 

Вы мне лучше скажите, если вернуться к первому моему посту, правильно ли я прописал хосты? Ну и соответственно верно ли мое предположение относительно хоста для site1 в моей ситуации?

  Ответить  
 
 автор: cheops   (14.05.2012 в 11:53)   письмо автору
 
   для: mjc66   (14.05.2012 в 11:23)
 

>Вы мне лучше скажите, если вернуться к первому моему посту, правильно ли я прописал хосты?
>127.0.0.1 localhost
>127.0.0.1 www.test.ru
>127.0.0.1 test.ru
>127.0.0.1 www.phpmyadmin
Правильно

>127.0.0.1 www.test.ru/site1
>127.0.0.1 test.ru/site1
Неправильно

>Ну и соответственно верно ли мое предположение относительно хоста для site1 в моей
>ситуации?
Нет, не верно, в хостах нельзя указывать путь, это лишь хосты, т.е. адреса, с точкой в качестве разделителя.

  Ответить  
 
 автор: mjc66   (14.05.2012 в 12:07)   письмо автору
 
   для: cheops   (14.05.2012 в 11:53)
 

Хорошо, если я все правильно понял, то учитывая записи в файле "C:\Apache2\conf\extra\httpd-vhosts.conf":

NameVirtualHost *:80

<VirtualHost *:80>
   DocumentRoot "C:/apache/localhost/www"
   ServerName localhost
   ErrorLog "C:/apache/localhost/error.log"
   CustomLog "C:/apache/localhost/access.log" common
</VirtualHost>

<VirtualHost *:80>
   # Папка, в которой будет корень вашего хоста.
   DocumentRoot "C:/apache/test.ru/www"
   # Домен по которому вы сможете обращаться к виртуальному хосту.
   ServerName test.ru
   # Алиас (добавочное имя) домена.
   ServerAlias www.test.ru
   # Файл, в который будут записываться ошибки.
   ErrorLog "C:/apache/test.ru/error.log"
   # Файл журнала доступа к хосту.
   CustomLog "C:/apache/test.ru/access.log" common
</VirtualHost>

<VirtualHost *:80>
   # Папка, в которой будет корень вашего хоста.
   DocumentRoot "C:/apache/test.ru/www/site1"
   # Домен по которому вы сможете обращаться к виртуальному хосту.
   ServerName test.ru/site1
   # Алиас (добавочное имя) домена.
   ServerAlias /site1 "C:/apache/test.ru/www/site1"
   # Файл, в который будут записываться ошибки.
   ErrorLog "C:/apache/test.ru/site1/error.log"
   # Файл журнала доступа к хосту.
   CustomLog "C:/apache/test.ru/site1/access.log" common
</VirtualHost> 

<VirtualHost *:80>
   # Папка, в которой будет корень вашего хоста.
   DocumentRoot "C:/apache/test.ru/www/site2"
   # Домен по которому вы сможете обращаться к виртуальному хосту.
   ServerName test.ru/site2
   # Алиас (добавочное имя) домена.
   ServerAlias /site2 "C:/apache/test.ru/www/site2"
   # Файл, в который будут записываться ошибки.
   ErrorLog "C:/apache/test.ru/site2/error.log"
   # Файл журнала доступа к хосту.
   CustomLog "C:/apache/test.ru/site2/access.log" common
</VirtualHost> 

<VirtualHost *:80>
   DocumentRoot "C:/apache/localhost/www/phpmyadmin"
   ServerName localhost/www
   ServerAlias /pma "C:/apache/localhost/www/phpmyadmin"
   ErrorLog "C:/apache/localhost/www/error.log"
   CustomLog "C:/apache/localhost/www/access.log" common
</VirtualHost>


тогда файл "C:\WINDOWS\system32\drivers\etc\hosts" выглядит так:

127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru
127.0.0.1 www.phpmyadmin
127.0.0.1 www.site1
127.0.0.1 www.site2

  Ответить  
 
 автор: cheops   (14.05.2012 в 12:22)   письмо автору
 
   для: mjc66   (14.05.2012 в 12:07)
 

>ServerName test.ru/site1
Нет, так вообще нельзя писать, если вы заводите www.site1, то и пишите
ServerName www.site1
А потом обращайтесь к файлам, как к http://www.site1/main.css

  Ответить  
 
 автор: mjc66   (14.05.2012 в 12:32)   письмо автору
 
   для: cheops   (14.05.2012 в 12:22)
 

Спасибо Вам, теперь разобрался. Мне собственно эти виртуальные хосты и нужны были чтобы не копаться и не менять абсолютные пути в ссылках. Теперь все работает.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования