VirtualDocumentRoot и домены всегда маршрутизируются на localhost - почему? - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь заставить работать динамические виртуальные хосты, следую документации, но это не совсем работает.

Это домены из моего файла HOSTS:

127.0.0.1 walestourism.local.co.uk
127.0.0.1 www.walestourism.local.co.uk
127.0.0.2 walestourism.local.co.uk
127.0.0.2 www.walestourism.local.co.uk

и это от httpd.conf:

NameVirtualHost 127.0.0.2
<VirtualHost 127.0.0.2>
ServerName www.walestourism.local.co.uk
ServerAlias walestourism.local.co.uk
DocumentRoot /www/walestourism.local.co.uk
ScriptAlias /cgi-bin/ /www/walestourism.local.co.uk/cgi-bin
</VirtualHost>

Во всех моих других это всегда было *: 80 для части VirtualHost кода выше.

У меня есть этот код в моем httpd.conf:

<Directory C:/www/vhosts>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>
<Directory C:/www/vhosts1>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>
<Directory C:/www/vhosts.www>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>
<Directory C:/www/test2>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>
<Directory C:/www/>   
Order Deny,Allow   
Allow from all 
AllowOverride All
</Directory>

Как я должен исправить эту ошибку, когда я набираю домен, в котором он выводит меня на содержимое http://localhost? Это основная проблема, возникающая при добавлении доменов с использованием динамических виртуальных хостов.

Кроме того, если я укажу своему браузеру на «http://localhost/",, я получу страницу по умолчанию« Это работает! », Поэтому я знаю, что мой сервер работает и что это определенно связано с конфигурацией vhosts.

Я проверил свой журнал ошибок - никаких ошибок в результате этого, так почему каждый домен направляется на localhost, даже если для него настроена папка (/ www / в данном случае это C: / www, мой Apache / веб-сервер каталог).

Я новичок в этой области Apache, и, несмотря на полдень в Google, я не уверен, как это исправить.

Я решил попробовать это, чтобы избежать перезапуска cmd> httpd -k каждый раз, когда я добавляю новый виртуальный хост для тестирования, но сделал ли я что-то не так?

Я работаю на Apache 2.2, использую Windows 7, с PHP 5.28 [здесь указаны спецификации].

Что мне делать?

Весь совет очень ценится!

Ответы [ 2 ]

0 голосов
/ 27 октября 2011

Обычно это происходит, если виртуальный хост настроен неправильно.Поскольку вы работаете в Windows, я понятия не имею, как протестировать вашу конфигурацию, в Linux вы бы сделали что-то вроде:

/etc/init.d/httpd configtest

попробуйте запустить apache из командной строки и посмотреть, нет ли ошибок.Если Apache установлен как служба, вы можете увидеть ошибки запуска в журналах событий приложений Windows.

0 голосов
/ 27 октября 2011

Поскольку вы используете именованный виртуальный хостинг, не используйте 127.0.0.2 ... просто оставьте все это до 127.0.0.1 ... в противном случае проверьте error_log для apache (определенного в вашем httpd.conf), чтобыУстранение неполадок, почему оно терпит неудачу.

Кроме того, заставьте Apache2 работать на Windows с VHosts до того, как начнете работать с PHP ...

Согласно http://httpd.apache.org/docs/2.0/vhosts/examples.html:

 # Ensure that Apache listens on port 80
 Listen 80

 # Listen for virtual host requests on all IP addresses
 NameVirtualHost *:80

 <VirtualHost *:80>
 DocumentRoot /www/example1
 ServerName www.example1.com
 # Other directives here
 </VirtualHost>

 <VirtualHost *:80>
 DocumentRoot /www/example2
 ServerName www.example2.org
 # Other directives here
 </VirtualHost>
...