За последние 24 часа нас посетили 18485 программистов и 1619 роботов. Сейчас ищут 1537 программистов ...

Можно ли установить в одном Apache несколько htdocs

Тема в разделе "Установка PHP", создана пользователем dimanger, 4 янв 2010.

  1. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    Можно ли так сделать или все же придется ставить еще один апач рядышком ? (Все действия на локальной машине)
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    посмотри описание виртуальных хостов.

    В extra/httpd-vhosts.conf есть даже пример конфигурации
     
  3. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    можно по подробней , или пример если есть

    Не могу сообразить что куда писать ...
    Код (Text):
    1.  
    2. <VirtualHost *:80>
    3.     ServerAdmin webmaster@dummy-host2.xxx.ru
    4.     DocumentRoot "D:/Webserver/Apache2.2/docs/dummy-host2.xxx.ru"
    5.     ServerName dummy-host2.xxx.ru
    6.     ErrorLog "logs/dummy-host2.xxx.ru-error.log"
    7.     CustomLog "logs/dummy-host2.xxx.ru-access.log" common
    8. </VirtualHost>
     
  4. sukharevd

    sukharevd Активный пользователь

    С нами с:
    1 июл 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    Kiev
    Тебе же сказали, там есть пример!

    Это мой вариант, и он не претендует на статус идеального:
    Код (Text):
    1. #
    2. # Virtual Hosts
    3. #
    4. # If you want to maintain multiple domains/hostnames on your
    5. # machine you can setup VirtualHost containers for them. Most configurations
    6. # use only name-based virtual hosts so the server doesn't need to worry about
    7. # IP addresses. This is indicated by the asterisks in the directives below.
    8. #
    9. # Please see the documentation at
    10. # <URL:http://httpd.apache.org/docs/2.2/vhosts/>
    11. # for further details before you try to setup virtual hosts.
    12. #
    13. # You may use the command line option '-S' to verify your virtual host
    14. # configuration.
    15.  
    16. #
    17. # Use name-based virtual hosting.
    18. #
    19. NameVirtualHost *:80
    20.  
    21. #
    22. # VirtualHost example:
    23. # Almost any Apache directive may go into a VirtualHost container.
    24. # The first VirtualHost section is used for all requests that do not
    25. # match a ServerName or ServerAlias in any <VirtualHost> block.
    26. #
    27.  
    28. ### ВОТ ЭТОТ ПРИМЕР - ДВЕ РАЗЛИЧНЫХ ПАПКИ (dummy-host.localhost и dummy-host2.localhost):
    29. ###<VirtualHost *:80>
    30. ###    ServerAdmin webmaster@dummy-host.localhost
    31. ###    DocumentRoot "D:/Program Files/Apache/Apache2.2/docs/dummy-host.localhost"
    32. ###    ServerName dummy-host.localhost
    33. ###    ServerAlias www.dummy-host.localhost
    34. ###    ErrorLog "logs/dummy-host.localhost-error.log"
    35. ###    CustomLog "logs/dummy-host.localhost-access.log" common
    36. ###</VirtualHost>
    37. ###
    38. ###<VirtualHost *:80>
    39. ###    ServerAdmin webmaster@dummy-host2.localhost
    40. ###    DocumentRoot "D:/Program Files/Apache/Apache2.2/docs/dummy-host2.localhost"
    41. ###    ServerName dummy-host2.localhost
    42. ###    ErrorLog "logs/dummy-host2.localhost-error.log"
    43. ###    CustomLog "logs/dummy-host2.localhost-access.log" common
    44. ###</VirtualHost>
    45.  
    46. # ЭТО СОБСТВЕННО МОЙ ВАРИАНТ
    47. <VirtualHost *:80>
    48.    DocumentRoot "F:/workspace/projects/php/apache/localhost/www"
    49.    ServerName localhost
    50.    ErrorLog "F:/workspace/projects/php/apache/localhost/error.log"
    51.    CustomLog "F:/workspace/projects/php/apache/localhost/access.log" common
    52. </VirtualHost>
    53.  
    54. <VirtualHost *:8088>
    55.    DocumentRoot "F:/workspace/projects/php/apache4web/localhost/www"
    56.    ServerName localhost
    57.    ErrorLog "F:/workspace/projects/php/apache4web/localhost/error.log"
    58.    CustomLog "F:/workspace/projects/php/apache4web/localhost/access.log" common
    59. </VirtualHost>
    UPD: Еще раз прошу, не удаляй сообщения спустя 10 минут после написания - пришлось это сообщение 2 раза писать.
     
  5. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Вот это и есть htdocs отдельного виртуального хоста.
    Чтобы работало это
    имя и IP необходимо прописать еще в C:/WINDOWS/SYSTEM32/DRIVERS/ETC/hosts

    например так
    Код (Text):
    1. 127.0.0.1 localhost dummy-host2.xxx.ru dummy-host3.xxx.ru
     
  6. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    нет, еще не заработало (

    Код (Text):
    1.  
    2. <VirtualHost *:80>
    3.    DocumentRoot "D:/Webserver/Apache2.2/test.ru"
    4.    ServerName localhost
    5.    ErrorLog "logs/error_test_ru.log"
    6.    CustomLog "logs/access_test_ru.log" common
    7. </VirtualHost>

    Все действия на локальной машине.

    в хосте уже есть

    Код (Text):
    1.  
    2. 127.0.0.1   localhost
    3. 127.0.0.1   test.ru
    Не че не пойму ((
     
  7. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Что не заработало?

    Мануал, черт возьми!!! читать!!!
    Или поиск по форуму!!!
    Или хотя бы мое сообщение выше.

    Разница между тем, что ты написал сейчас и процитировано выше видна?
     
  8. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    Код (Text):
    1. # Host www.test.ru:
    2. <VirtualHost *:*>
    3.   DocumentRoot "D:/Webserver/Apache2.2/docs/test.ru"  
    4.   ServerName test.ru
    5.   ErrorLog "D:/Webserver/Apache2.2/docs/test.ru/error.log"
    6.   CustomLog "D:/Webserver/Apache2.2/docs/test.ru/access.log" common
    7. </VirtualHost>
    8.  
    9. # Host www.test1.ru :
    10. <VirtualHost *:*>
    11.   DocumentRoot "D:/Webserver/Apache2.2/docs/test1.ru"  
    12.   ServerName test1.ru
    13.   ErrorLog "D:/Webserver/Apache2.2/docs/test1.ru/error.log"
    14.   CustomLog "D:/Webserver/Apache2.2/docs/test1.ru/access.log" common
    15. </VirtualHost>
    Код (Text):
    1. 127.0.0.1   localhost test1.ru test2.ru
    Где тут ошибка ? Simpliest
     
  9. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Можно я его стукну? Нервный я чего-то сегодня

    Парень, если не понимаешь как оно работает, то делаешь все СТРОГО по инструкции.
    А когда пытаешься менять, то меняешь по одному!!! параметру за один раз, а не десяток. И если не работает - разбираешься почему.

    Раскомментировать
     
  10. sukharevd

    sukharevd Активный пользователь

    С нами с:
    1 июл 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    Kiev
    Давайте для начала вы скажете, что именно у вас не работает? Не работают оба доменных имени или только одно?

    На первый взгляд имхо есть несоответствие:
    httpd-vhosts <-> hosts
    test.ru <-> test1.ru
    test1.ru <-> test2.ru

    Предлагаю исправить:
    test1.ru <-> test1.ru
    test2.ru <-> test2.ru
     
  11. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    а причем тут localhost ?
    У мя и так Htdocs работает когда набираю localhost .
     
  12. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    Есть такая мысль, сделать нечто похожее на денвер.
    Т.е. в одной папке мы храним рабочие скрипты, так сказать чистовик, а в двух папках test1.ru и test2.ru разного рода скрипты.
    .....
    Вот тут некоторые немного нервничают и не могут толко нечего сказать .
     
  13. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Все, в космос.
    Терпеть не могу тормозов.
     
  14. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    dimanger
    Код (Text):
    1.  
    2. NameVirtualHost *:80
    3. <VirtualHost *:*>  заменить на <VirtualHost *:80>
    зачем логи хранить в паблик.
     
  15. sukharevd

    sukharevd Активный пользователь

    С нами с:
    1 июл 2009
    Сообщения:
    35
    Симпатии:
    0
    Адрес:
    Kiev
    dimanger,

    Если проблема все еще осталась, стучись в аську (см. номер в цветке ниже) - могу попробовать подправить твои файлы конфигурации.
     
  16. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    Так, больше спасибо хочется сказать sukharevd .

    Значит дело обстоит следующим образом:
    Для того чтобы создать правильно (я конечно надеюсь что этот способ верный) виртуальные домены, как к примеру в программном средстве Денвер нужно уяснить несколько вещей:
    1. Виртуальные домены можно создавать ТОЛЬКО в главное папке Apache (т.е. в той самой папке, куда складываются скрипты, форумы, сайты )
    D:\Webserver\Apache2.2\ HTDOCS .
    2. Разкоментить вот в этом файле D:\Webserver\Apache2.2\conf\httpd.conf вот эту строчку
    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf
    3. Определиться с названиями доменов , в моем случае я захотел сделать test.ru и test1.ru и естественно не позабыть про localhost .
    Заходим в этот файлик D:\Webserver\Apache2.2\conf\extra\httpd-vhosts.conf
    и пишим туда следующие сроки

    Код (Text):
    1. # Host test.ru (1):
    2. <VirtualHost *:80>
    3.   DocumentRoot "D:/Webserver/Apache2.2/htdocs/test.ru"  
    4.   ServerName test.ru
    5.   ErrorLog "logs/test.ru_error.log"
    6.   CustomLog "logs/test.ru_access.log" common
    7. </VirtualHost>
    8.  
    9. # Host test1.ru (2):
    10. <VirtualHost *:80>
    11.   DocumentRoot "D:/Webserver/Apache2.2/htdocs/test1.ru"  
    12.   ServerName test1.ru
    13.   ErrorLog "logs/test1.ru_error.log"
    14.   CustomLog "logs/test1.ru_access.log" common
    15. </VirtualHost>
    16.  
    17. # Host localhost (3):
    18. <VirtualHost *:80>
    19.   DocumentRoot "D:/Webserver/Apache2.2/htdocs/localhost"  
    20.   ServerName localhost
    21.   ErrorLog "logs/localhost_error.log"
    22.   CustomLog "logs/localhost_access.log" common
    23. </VirtualHost>
    4. Потом топаем сюда
    Код (Text):
    1. c:\WINDOWS\system32\drivers\etc\ в файлик hosts
    и вписываем наши домены , вот примерно так

    Код (Text):
    1. 127.0.0.1 localhost
    2. 127.0.0.1 test.ru
    3. 127.0.0.1 test1.ru
    Перезапускаем Apache и радуемся жизни. Все спасибо!
     
  17. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Да вы гоните. Еще бредосоветов тут не хватало.

    Лажа полная.

    А если бы отдельные выдающиеся личности не поленились поискать на форуме, то они несомненно узнали бы что создавать можно ГДЕ УГОДНО!
    Главное руки не из жопы иметь.

    D:/Web/ - тут лежат конфиги и логи апача (/conf & /logs каталоги соответственно) плюс тут же php.ini общий для всех PHP
    D:/Web/apache2.binaries/ - 3 разных сборки апача
    D:/Web/php.binaries/ - 9 разных сборок PHP
    D:/Web/apache2/ - симлинк на текущую используемую сборку
    D:/Web/php/ - симлинк на текущую используемую сборку PHP
    D:/Work/dv/ - виртуальный хост номер 1 (он же один из вебсайтов в IIS 7.5)
    D:/Work/xerp-kenai/ - виртуальный хост номер 2 (он же один из вебсайтов в IIS 7.5)
    D:/Work/logist/ - виртуальный хост номер 3
    D:/temp/dummy-host.example.com/ - виртуальный хост номер 4
    C:/Windows/temp/dummy-host2.example.com/ - виртуальный хост номер 5
     
  18. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    мдя, моя теория приемлема только если нечего не меняли в httpd.conf , там путь есть один, которы жестко прописывает только одну директорию. Но его можно изменить.
     
  19. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    какой путь? Причем тут это?

    еще раз.


    Код (Text):
    1. <VirtualHost *:80>
    2. DocumentRoot данного виртуального хоста. Где угодно.
    3. </VirtualHost>
    4. <VirtualHost *:80>
    5. DocumentRoot другого виртуального хоста. Тоже где угодно.
    6. </VirtualHost>
     
  20. dimanger

    dimanger Активный пользователь

    С нами с:
    4 янв 2010
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Хабаровский край
    разве этот путь в конфиге
    Код (Text):
    1.  
    2. <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
    3. Options Indexes FollowSymLinks
    4. AllowOverride None
    5. Order allow,deny
    6. Allow from all
    7. </Directory>
    и этот не говорит что можно обращаться только к этой папке ?
    Код (Text):
    1.  
    2. DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
     
  21. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Это установка прав доступа для конкретного каталога. Таких директив может быть сколько угодно. В том числе и внутри виртуальных хостов.

    А насчет этого повторяю уже 3й раз