2014-01-27 5 views
3

Я установил последнюю версию WAMP на моем ПК с Windows 8 - я не могу заставить несколько виртуальных хостов работать, каждый локальный URL-адрес, который я загружу, покажет Домашняя страница WAMP.Виртуальные хосты - все перенаправляются на домашнюю страницу WAMP localhost

Может ли кто-нибудь объяснить, что я делаю неправильно?

// My hosts file 
127.0.0.1 localhost 
127.0.0.1 client1.localhost 
127.0.0.1 client2.localhost 

У меня есть две папки в моем каталоге WAMP, «client1» и «CLIENT2», очевидно, каждая папка будет связать с CLIENT2 client1 & в принимающем файле выше.

// My virtual hosts file 
<VirtualHost *:80> 
    ServerName localhost 
    DocumentRoot "C:\wamp\www" 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName client1.localhost 
    DocumentRoot "C:\wamp\www\client1" 
<Directory "C:\wamp\www\client1"> 
    allow from all 
    order allow,deny 
    AllowOverride All 
</Directory> 
DirectoryIndex index.html index.php 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName client2.localhost 
    DocumentRoot "C:\wamp\www\client2" 
<Directory "C:\wamp\www\client2"> 
    allow from all 
    order allow,deny 
    AllowOverride All 
</Directory> 
    DirectoryIndex index.html index.php 
</VirtualHost> 
+0

является файлом хостов по ссылке? –

+0

Извините, я не уверен ... как вы имеете в виду ссылку? – Zabs

ответ

0

Я последовал за этим руководством, и она работала отлично

мне пришлось изменить путь ...

<VirtualHost *:80> 
ServerAdmin [email protected] 
DocumentRoot "c:\wamp\www\client1" 
ServerName client1.localhost 
ErrorLog "logs/client1.log" 
CustomLog "logs/client1-access.log" common 
</VirtualHost> 

В дополнение к этому .. Я считаю, что это хороший краткое руководство для виртуальных хостов с WAMP http://www.techrepublic.com/blog/smb-technologist/create-virtual-hosts-in-a-wamp-server/#

1

Во-первых, ваша структура каталогов никогда не должны идти выше www папку в целях безопасности.

- c:\wamp\www (home) 
    -c:\wamp\www\client1 (client1) 
    -c:\wamp\www\client2 (client2) 

Во-вторых изменилось в виртуальный хост требуют reload, но в вашем случае, вы должны сделать restart, как wamp не предлагает reload.

+0

oops - я исправил его, чтобы поместить www в пути, все еще имея ту же проблему после перезапуска apache. – Zabs

+0

Нет причин, по которым 'Virtual Host' должен быть ниже папки' \ wamp \ www'. Фактически, если все сделано правильно, лучше всего разместить виртуальные узлы хоста полностью вне этой структуры папок. Затем безопасность, которую вы размещаете на каждом сайте, полностью отделена от безопасности по умолчанию для wamp. – RiggsFolly

+2

WAMP Server ** DOOS ** предоставляет простой механизм для перезагрузки службы. Либо оба Apache и MySQL или Apache или MySQL индивидуально. Щелкните левой кнопкой мыши на wampmanager и посмотрите параметры меню. – RiggsFolly

2

Попробуйте поставить клиентские папки в C: \ WAMP \ WWW \ как этот C: \ WAMP \ WWW \ client1 и C: \ WAMP \ WWW \ client2

EDIT

Если еще Безразлично «т работает, попробуйте это изменить ваши хосты файл с client1.dev вместо client1.localhost, а затем положить имя_сервера в вас Virtualhost настройки как этот

<VirtualHost *:80> 
DocumentRoot "F:\www\client1" 
ServerName client1.dev 
ServerAlias client1.dev www.client1.dev 
Options Indexes FollowSymLinks 
<Directory "F:\www\client1"> 
    AllowOverride All 
    Order Deny,Allow 
</Directory> 
</VirtualHost> 

Вы должны перезапустить снова, чтобы внести изменения в файл хостов работу

+0

yeh - я исправил это сейчас, хотя такая же проблема сохраняется после перезапуска WAMP. – Zabs

+0

Попробуйте перезагрузить систему, а не перезапустите перезагрузку. –

+0

cool - я дам этот снимок как :) – Zabs

10

Файл ваших хостов выглядит хорошо, но ваши определения виртуальных хостов не так хороши.

Если вы изменили ваш файл hosts вы можете перезагрузить кэш окна, делая это из окна командной строки, которая была запущена с использованием Runs as Administrator или простой перезагрузки: -

net stop "DNS Client" 

тогда, когда это завершает сделать

net start "DNS Client" 

Котировки необходимы, поскольку в названии сервиса есть пробел !!

Служба DNS-клиента кэширует доступ к доменным именам и предварительно загружается с именами доменов, которые существуют в файле HOSTS во время загрузки, или если вы перезапустите службу, как указано выше.

При отладке нового определения vhost помните, что если что-то не так с определением, к которому вы пытаетесь получить доступ, Apache всегда будет по умолчанию первым vhost, определенным в файле определения vhost. Итак, если это произойдет, например, на домашней странице WAMP, вы можете предположить, что сделали ошибку, определяющую этот vhost.

Это также означает, что если вы определили, что первое определение ВХоста с чем-то вроде Require local случайные халтур в системе также должно быть направлены туда, если это имеет свою безопасность набор для Require local хак должен получить 404 ошибки, которая может препятствовать дальнейшей попытки взлома.

// My virtual hosts file 
<VirtualHost *:80> 
    ServerName localhost 
    DocumentRoot "C:\wamp\www" 
    <Directory "C:\wamp\www"> 
    AllowOverride All 
    # never want to allow access to your wamp home page area to anyone other than This PC 
    # plus us the Apache 2.4.x syntax and not the 2.2 syntax 
    Require local 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName client1.localhost 
    DocumentRoot "C:\wamp\www\client1" 
    <Directory "C:\wamp\www\client1"> 
    AllowOverride all 
    # use Apache 2.4 syntax to all access to your internal network only 
    Require ip 192.168.0 
    # Or if you really want to give access to the whole internet uncomment this and comment the previous line 
    #Require all granted 
</Directory> 
DirectoryIndex index.html index.php 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName client2.localhost 
    DocumentRoot "C:\wamp\www\client2" 
    <Directory "C:\wamp\www\client2"> 
    AllowOverride all 
    # use Apache 2.4 syntax to all access to your internal network only 
    Require ip 192.168.0 
    # Or if you really want to give access to the whole internet uncomment this and comment the previous line 
    #Require all granted 
    </Directory> 
    DirectoryIndex index.html index.php 
</VirtualHost> 

Если вы на самом деле не хотите, чтобы мир, чтобы иметь возможность доступа к этим сайтам клиентов, но вы хотите, чтобы иметь возможность получить доступ к сайту с другими ПК в вашей внутренней сети, то лучше механизм доступа будет использовать Require ip 192.168.0. Обратите внимание на использование только первых трех квартилей вашей подсети (у вас может быть не 192.168.0, но по умолчанию используется много маршрутизаторов. Сначала проверьте свою подсеть)

Также, если вы хотите, чтобы мир увидел этих клиентов сайтов, то у вас также будет Port Forward вашего маршрутизатора.

Также, если вы не намеревались предоставить доступ к этим сайтам всему миру, но были просто плохие советы, гораздо более безопасное определение всех этих сайтов было бы использовать Require local, поэтому вы можете получить к ним доступ только от ПК с WAMP.

WAMPServer 2.4, который, я предполагаю, вы имеете в виду, когда говорите, что используете последнюю версию WAMPServer, фактически изменил способ, которым вы можете включить определения vhost. Ну, на самом деле это включало новый путь и сохранил старый путь.

Так, чтобы включить определение виртуального хоста вы можете сделать один из этих 2-х вещей: -

1. Положите ваши определения виртуальных хостов в httpd.conf файл раскомментируйте файл \wamp\bin\apache\apache2.4.4\conf\extra\httpd-vhosts.conf and then in the эту строку (ее вблизи нижней части конфа файл.

# Virtual hosts 
#Include conf/extra/httpd-vhosts.conf 

Снимите # линии всасывания на Include линии

# Virtual hosts 
Include conf/extra/httpd-vhosts.conf 

2. Поместите определения вашего vhost в файл, называемый любым, что вам нравится, в папку \wamp\vhost.

Существует линия в нижней части файла httpd.conf теперь, когда говорят IncludeOptional "d:/wamp/vhosts/*" Это будет включать в себя любой файл в этой папке и если это определение ВХост она будет применяться, что конфиг. Это новая команда для Apache 2.4. Я считаю, что это будет работать только на установках Apache 2.4.x.

+0

wow .. много информации есть помощник, хороший :) Я еще не дома, так что не могу попробовать ваши советы, а позже еще раз спасибо:) – Zabs

+0

Спасибо за внимание, отвечая на этот вопрос, пользователи, подобные вам на этом сайте, высоко ценятся. – Smudger

+0

Запомните, пожалуйста, отменить! Мне потребовалось много времени, чтобы выяснить – clod986

Смежные вопросы