Wamp vhost docroot всегда отображается как c: \ wamp \ www, а не vhost docroot - PullRequest
4 голосов
/ 06 апреля 2011

Я перепробовал десятки руководств и прочитал тонну информации, но до сих пор не могу найти решение своей проблемы. Я удалил, переустановил и проверил и дважды проверил все возможные проблемы.

Проблема остается. Независимо от того, что я делаю, корень документа ВСЕГДА отображается как c: \ wamp \ www.

Даже если я изменю httpd.conf DocumentRoot на другой путь, он все равно будет отображаться как c: \ wamp \ www

Что странно, если vhost был настроен неправильно, мой index.php не должен отображаться. Но на самом деле это так. И у меня есть строка кода для вывода $_SERVER['DOCUMENT_ROOT'], и она ВСЕГДА отображается как c: \ wamp \ www, а не для ЛЮБОГО корня документа vhosts, который я назначил.

Итак, страницы загружаются, конечно, с ошибками. Мои страницы ВСЕ ссылаются на $_SERVER['DOCUMENT_ROOT'] и ВСЕ отлично работают на моих живых сайтах.

Итак, суть в том, что я проверил свои конфиги взад и вперед. / vs. \, файл hosts правильный, корневые пути документа верны и указывают на фактические папки, содержащие правильные файлы. Я играл со всеми «стандартными» и нестандартными возможностями конфига.

Должен быть какой-то другой элемент, который мешает этому работать. Пожалуйста, помогите, если можете.

Пожалуйста, не предлагайте мне попробовать другой конфиг. Я перепробовал их все.

Пожалуйста, скажите мне, что вы знаете, почему это происходит и как это исправить. У меня есть сценарий, который почти добился цели, но чувствую, что мне не хватает исправления. Я оставил сообщение для автора и не получил от него ответа.

Надеюсь, у кого-то здесь есть исправление, а не предложение попробовать еще один конфиг. Если вы не знаете о проблеме и не решите ее, пожалуйста, не отвечайте. Это может звучать грубо, но я видел и перепробовал все конфиги.

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
   DocumentRoot C:\wamp\www\itsaboutwirelessnetworks
   ServerName itsaboutwirelessnetworks.localhost
   ServerAlias itsaboutwirelessnetworks
</VirtualHost>

<VirtualHost 127.0.0.1:80>
   DocumentRoot C:\wamp\www\computerstore
   ServerName computerstore.localhost
   ServerAlias computerstore
</VirtualHost>

<VirtualHost 127.0.0.1:80>
  DocumentRoot C:\wamp\www
  ServerName localhost
   ServerAlias localhost
</VirtualHost>

Это конфиг. Почему я не могу редактировать с возвратами каретки в комментариях?

Ответы [ 2 ]

6 голосов
/ 06 апреля 2011

in C:\Windows\System32\drivers\etc\hosts добавить эту строку:

127.0.0.1 computerstore.local

в httpd.conf, убедитесь, что эта строка не закомментирована:

Include "conf/extra/httpd-vhosts.conf"

(это должно указать, где находится ваш файл vhosts)

Ваш httpd-vhosts.conf файл должен содержать это:

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot              C:\wamp\www
    ServerName                127.0.0.1
    ServerAlias               localhost
    SetEnv APPLICATION_ENV    development
    SetEnv APPLICATION_DOMAIN localhost
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot              C:\wamp\www\conputerstore
    ServerName                computerstore.local
    ServerAlias               computerstore.local
    SetEnv APPLICATION_ENV    development
    SetEnv APPLICATION_DOMAIN computerstore.local
</VirtualHost>

Если WAMP отказывается загружать файл vhosts, вместо этого переместите конфигурацию vhosts в конец httpd.conf.

Это должно разрешить конфигурацию на основе имени вместо IP-адреса. Если вы не установите его таким образом, Apache разрешит пути ваших сайтов по IP, и, поскольку вы указываете один IP, идентичный всем виртуальным хостам, последний будет иметь приоритет над предыдущими. Докрот вашего последнего призрака C:\wamp\www - делает описанное вами поведение абсолютно нормальным.

UPDATE:

Поскольку для имени домена computerstore.local указан корень документа C:\wamp\www\computerstore, не забудьте также перейти в http://computerstore.local в своем браузере. Если вы попробуете http://localhost/computerstore, доменное имя будет преобразовано в localhost, а в первом vhost его корень документа будет установлен на C:\wamp\www. computerstore будет рассматриваться как подкаталог; в этом случае документ не будет изменен.

0 голосов
/ 07 апреля 2011

Вы пытались поместить C: \ wamp \ www \ conputerstore между кавычками?

В качестве примера вот мой конфиг vhost:

<VirtualHost *:8082>  
  DocumentRoot "c:/wamp/www/test"  
  DirectoryIndex index.php  
  <Directory "c:/wamp/www/test">  
    AllowOverride All  
    Allow from All  
  </Directory>  
</VirtualHost>
...