Можно ли так сделать или все же придется ставить еще один апач рядышком ? (Все действия на локальной машине)
можно по подробней , или пример если есть Не могу сообразить что куда писать ... Код (Text): <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.xxx.ru DocumentRoot "D:/Webserver/Apache2.2/docs/dummy-host2.xxx.ru" ServerName dummy-host2.xxx.ru ErrorLog "logs/dummy-host2.xxx.ru-error.log" CustomLog "logs/dummy-host2.xxx.ru-access.log" common </VirtualHost>
Тебе же сказали, там есть пример! Это мой вариант, и он не претендует на статус идеального: Код (Text): # # Virtual Hosts # # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.2/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. # # Use name-based virtual hosting. # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. # ### ВОТ ЭТОТ ПРИМЕР - ДВЕ РАЗЛИЧНЫХ ПАПКИ (dummy-host.localhost и dummy-host2.localhost): ###<VirtualHost *:80> ### ServerAdmin webmaster@dummy-host.localhost ### DocumentRoot "D:/Program Files/Apache/Apache2.2/docs/dummy-host.localhost" ### ServerName dummy-host.localhost ### ServerAlias www.dummy-host.localhost ### ErrorLog "logs/dummy-host.localhost-error.log" ### CustomLog "logs/dummy-host.localhost-access.log" common ###</VirtualHost> ### ###<VirtualHost *:80> ### ServerAdmin webmaster@dummy-host2.localhost ### DocumentRoot "D:/Program Files/Apache/Apache2.2/docs/dummy-host2.localhost" ### ServerName dummy-host2.localhost ### ErrorLog "logs/dummy-host2.localhost-error.log" ### CustomLog "logs/dummy-host2.localhost-access.log" common ###</VirtualHost> # ЭТО СОБСТВЕННО МОЙ ВАРИАНТ <VirtualHost *:80> DocumentRoot "F:/workspace/projects/php/apache/localhost/www" ServerName localhost ErrorLog "F:/workspace/projects/php/apache/localhost/error.log" CustomLog "F:/workspace/projects/php/apache/localhost/access.log" common </VirtualHost> <VirtualHost *:8088> DocumentRoot "F:/workspace/projects/php/apache4web/localhost/www" ServerName localhost ErrorLog "F:/workspace/projects/php/apache4web/localhost/error.log" CustomLog "F:/workspace/projects/php/apache4web/localhost/access.log" common </VirtualHost> UPD: Еще раз прошу, не удаляй сообщения спустя 10 минут после написания - пришлось это сообщение 2 раза писать.
Вот это и есть htdocs отдельного виртуального хоста. Чтобы работало это имя и IP необходимо прописать еще в C:/WINDOWS/SYSTEM32/DRIVERS/ETC/hosts например так Код (Text): 127.0.0.1 localhost dummy-host2.xxx.ru dummy-host3.xxx.ru
нет, еще не заработало ( Код (Text): <VirtualHost *:80> DocumentRoot "D:/Webserver/Apache2.2/test.ru" ServerName localhost ErrorLog "logs/error_test_ru.log" CustomLog "logs/access_test_ru.log" common </VirtualHost> Все действия на локальной машине. в хосте уже есть Код (Text): 127.0.0.1 localhost 127.0.0.1 test.ru Не че не пойму ((
Что не заработало? Мануал, черт возьми!!! читать!!! Или поиск по форуму!!! Или хотя бы мое сообщение выше. Разница между тем, что ты написал сейчас и процитировано выше видна?
Код (Text): # Host www.test.ru: <VirtualHost *:*> DocumentRoot "D:/Webserver/Apache2.2/docs/test.ru" ServerName test.ru ErrorLog "D:/Webserver/Apache2.2/docs/test.ru/error.log" CustomLog "D:/Webserver/Apache2.2/docs/test.ru/access.log" common </VirtualHost> # Host www.test1.ru : <VirtualHost *:*> DocumentRoot "D:/Webserver/Apache2.2/docs/test1.ru" ServerName test1.ru ErrorLog "D:/Webserver/Apache2.2/docs/test1.ru/error.log" CustomLog "D:/Webserver/Apache2.2/docs/test1.ru/access.log" common </VirtualHost> Код (Text): 127.0.0.1 localhost test1.ru test2.ru Где тут ошибка ? Simpliest
Можно я его стукну? Нервный я чего-то сегодня Парень, если не понимаешь как оно работает, то делаешь все СТРОГО по инструкции. А когда пытаешься менять, то меняешь по одному!!! параметру за один раз, а не десяток. И если не работает - разбираешься почему. Раскомментировать
Давайте для начала вы скажете, что именно у вас не работает? Не работают оба доменных имени или только одно? На первый взгляд имхо есть несоответствие: httpd-vhosts <-> hosts test.ru <-> test1.ru test1.ru <-> test2.ru Предлагаю исправить: test1.ru <-> test1.ru test2.ru <-> test2.ru
Есть такая мысль, сделать нечто похожее на денвер. Т.е. в одной папке мы храним рабочие скрипты, так сказать чистовик, а в двух папках test1.ru и test2.ru разного рода скрипты. ..... Вот тут некоторые немного нервничают и не могут толко нечего сказать .
dimanger Код (Text): NameVirtualHost *:80 <VirtualHost *:*> заменить на <VirtualHost *:80> зачем логи хранить в паблик.
dimanger, Если проблема все еще осталась, стучись в аську (см. номер в цветке ниже) - могу попробовать подправить твои файлы конфигурации.
Так, больше спасибо хочется сказать 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): # Host test.ru (1): <VirtualHost *:80> DocumentRoot "D:/Webserver/Apache2.2/htdocs/test.ru" ServerName test.ru ErrorLog "logs/test.ru_error.log" CustomLog "logs/test.ru_access.log" common </VirtualHost> # Host test1.ru (2): <VirtualHost *:80> DocumentRoot "D:/Webserver/Apache2.2/htdocs/test1.ru" ServerName test1.ru ErrorLog "logs/test1.ru_error.log" CustomLog "logs/test1.ru_access.log" common </VirtualHost> # Host localhost (3): <VirtualHost *:80> DocumentRoot "D:/Webserver/Apache2.2/htdocs/localhost" ServerName localhost ErrorLog "logs/localhost_error.log" CustomLog "logs/localhost_access.log" common </VirtualHost> 4. Потом топаем сюда Код (Text): c:\WINDOWS\system32\drivers\etc\ в файлик hosts и вписываем наши домены , вот примерно так Код (Text): 127.0.0.1 localhost 127.0.0.1 test.ru 127.0.0.1 test1.ru Перезапускаем Apache и радуемся жизни. Все спасибо!
Да вы гоните. Еще бредосоветов тут не хватало. Лажа полная. А если бы отдельные выдающиеся личности не поленились поискать на форуме, то они несомненно узнали бы что создавать можно ГДЕ УГОДНО! Главное руки не из жопы иметь. 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
мдя, моя теория приемлема только если нечего не меняли в httpd.conf , там путь есть один, которы жестко прописывает только одну директорию. Но его можно изменить.
какой путь? Причем тут это? еще раз. Код (Text): <VirtualHost *:80> DocumentRoot данного виртуального хоста. Где угодно. </VirtualHost> <VirtualHost *:80> DocumentRoot другого виртуального хоста. Тоже где угодно. </VirtualHost>
разве этот путь в конфиге Код (Text): <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> и этот не говорит что можно обращаться только к этой папке ? Код (Text): DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
Это установка прав доступа для конкретного каталога. Таких директив может быть сколько угодно. В том числе и внутри виртуальных хостов. А насчет этого повторяю уже 3й раз