проблема wamp vhosts с несколькими хостами - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть 2 проекта codeigniter на локальном хосте wamp, и я пытаюсь настроить несколько vhosts.

Моя структура каталогов выглядит следующим образом:

- www
    - project
    - projectold

Я установил 2 vhosts: project.lh и projectold.lh

вот мои записи httpd-vhosts.conf:

<VirtualHost *:80>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www"
  <Directory "${INSTALL_DIR}/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName project.lh
    DocumentRoot "c:/wamp64/www/project"
    SetEnv CI_ENV development
    <Directory  "c:/wamp64/www/project/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName projectold.lh
    DocumentRoot "c:/wamp64/www/projectold"
    SetEnv CI_ENV development
    <Directory  "c:/wamp64/www/projectold/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

Я также раскомментировал эту строку в моем файле httpd.conf:

LoadModule vhost_alias_module modules/mod_vhost_alias.so

РЕДАКТИРОВАТЬ:

Это то, что в настоящее время находится в моем файле hosts:

127.0.0.1 localhost
::1 localhost

127.0.0.1   project.lh
::1 project.lh

127.0.0.1   project.lh
::1 project.lh

127.0.0.1   projectold.lh
::1 projectold.lh

(не уверен, почему для project.lh есть 2 записи)

EDIT 2: Это файл .htaccess в каталоге project.lh.Для projectold.lh нет файлов .htaccess.

RewriteEngine on
RewriteBase /
## Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
##RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Проблема, с которой я сталкиваюсь, заключается в том, что при переходе к projectold.lh он каким-то образом вытягивает разметку для project.lh.Я не понимаю, почему или как это могло произойти.Я думаю, что я кое-что упускаю.

Я пытался закомментировать запись project.lh в моем файле vhosts, но это не помогло.Надеюсь, что кто-то видел это раньше.

Я использую Wamp3.1.3.

1 Ответ

0 голосов
/ 27 сентября 2018

Создание нескольких виртуальных хостов / веб-сайтов в Wampserver. Автор: Virendra Chandak

Для создания нескольких веб-сайтов было бы полезно настроить каждый веб-сайт на локальном компьютере.С Wampserver (или просто Apache) мы можем легко настроить несколько веб-сайтов.Ниже приведены шаги по созданию нескольких веб-сайтов с использованием конфигурации Apache.При этом используется конфигурация Apache «Именованные виртуальные хосты».Я проверил эти шаги на Wampserver 2.1, работающем в Windows XP и Windows 7.

Шаг 1: Установите имена хостов или настройте Windows для распознавания ваших локальных веб-сайтов

После установки сервера WAMP вы можете перейти нав браузере наберите http://localhost и откроется страница.Windows по умолчанию распознает локальный хост как ссылающийся на себя.Нам нужно настроить окна для распознавания других наших местных веб-сайтов.Для этого нам нужно отредактировать файл hosts.Этот файл находится в следующем каталоге.(Другой способ получить доступ к этому каталогу - открыть команду запуска или нажать клавишу Windows + R, а затем набрать «drivers» и нажать «OK», затем перейти к «etc».) C: / Windows / System32 / drivers / etc

После перехода в этот каталог откройте файл с именем hosts в этом каталоге, используя ваш любимый текстовый редактор (например, Блокнот, Editplus, Notepad ++).

Примечание. Возможно, вы не сможете редактировать или сохранить этот файлв Windows Vista или Windows 7. Для редактирования этого файла требуются права администратора.

Теперь в конце файла вы увидите строку:

127.0.0.1   localhost

Этот код сообщает вашемукомпьютер для подключения к вашему компьютеру, когда мы пытаемся перейти на

`http://localhost`

Теперь мы должны добавить наш сайт в этот файл.Допустим, наш сайт зовут site1.Поэтому мы добавили бы запись для него в файл hosts.Обновленный файл будет выглядеть примерно так:

127.0.0.1   localhost
127.0.0.1   site1

Сохраните этот файл и попробуйте перейти на http://site1 Это приведет вас к той же странице, что и http://localhost Теперь наш компьютерзнает, что такое http://site1.

Примечание. Убедитесь, что вы не добавляете записи хоста для внешних сайтов, таких как google.com или bing.com.Если вы добавите эти записи, компьютер больше не сможет переходить на реальные веб-сайты.Шаг 2. Создайте папку для веб-сайта

Wampserver имеет только одну папку или корневой каталог сайта для размещения веб-сайта.Эта папка обычно C: / wamp / www.Мы должны создать разные папки для каждого сайта.Мы можем создать папку в любом каталоге или на диске.(Если мы создадим папку вне C: / wamp / www, нам понадобятся некоторые дополнительные настройки в Apache, описанные ниже).

Добавьте в эту папку несколько тестовых файлов, например, «index.html», скажем, C: /каталог wamp / www / site1.Шаг 3: Настройте Apache для обслуживания нескольких сайтов

Мы изменили бы файлы httpd.conf и httpd-vhosts.conf для настройки Apache.Откройте файл httpd.conf, щелкнув значок сервера WAMP и выбрав «Apache -> httpd.conf».Этот файл обычно находится по адресу C: /wamp/bin/apache/Apache2.2.17/conf.

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

Включить conf / extra / httpd-vhosts.conf

Снять знак # в начале строкиизмененная строка должна выглядеть следующим образом: включите conf / extra / httpd-vhosts.conf

Теперь мы откроем файл httpd-vhosts.conf, который обычно находится внутри дополнительного каталога (C: /wamp/bin/apache/Apache2.2.17/conf/extra)

В этом файле мы добавим виртуальный хост, используя следующий код:

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot "C:/wamp/www"
    ServerName localhost
    ServerAlias www.localhost.com
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

В приведенном выше кодеServerName и DocumentRoot являются обязательными, другие параметры являются необязательными.

Поэтому, если мы хотим иметь 3 сайта на нашей локальной машине следующим образом:

localhost -> C:/wamp/www
site1 -> C:/wamp/www/site1
site2 -> C:/site2

<VirtualHost *:80>
    ServerAdmin admin@localhost
    DocumentRoot "C:/wamp/www"
    ServerName localhost
    ServerAlias www.localhost.com
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www/site1"
    ServerName site1
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/site2"
    ServerName site2
    <Directory "C:/site2">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Я не использовал все опции.ons для site1 и site2, но это хорошая практика, чтобы иметь их.Также обратите внимание, что код для site2 имеет дополнительный код для Directory.Это необходимо для предоставления серверу доступа к этому каталогу.Если мы не добавим это, сервер не сможет получить доступ к файлам в этом каталоге, и, следовательно, сайт не будет работать.Нам это не нужно для site1, так как он находится внутри каталога C: \ wamp \ www, для которого настройки каталога установлены по умолчанию в wampserver.

Теперь перезапустите Apache, и все ваши сайты должны работать.Обязательно добавьте site2 в файл hosts и создайте для него каталог по адресу C: /site2.

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

Оригинальная статья: https://www.virendrachandak.com/techtalk/creating-multiple-virtual-websites-in-wampserver/

Помогли мне в прошлом.

...