#hosting
#хостинг
Вопрос:
У меня есть два разных сайта, и я хочу разместить их оба через сервер wamp, например, мой первый сайтhttp://one.gov.ae и второй из них http://two.gov.ae
я хочу, чтобы при вводе первого сайта открывался индекс для первого сайта, а при вводе второго — открывался второй сайт.
но что бы я ни ввел, это откроет индекс для первого сайта
однако я добавляю оба sits в httpd-vhosts.con и раскомментирую следующую строку в http.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Итак, кто-нибудь может сказать мне, что я могу сделать в такой ситуации
вот мой код httpd-vhosts.conf
<VirtualHost 172.20.10.121:80>
# ServerAdmin admin@localhost
DocumentRoot "C:/wamp/www"
ServerName localhost
# ServerAlias www.dummy-host.localhost
# ErrorLog "logs/dummy-host.localhost-error.log"
# CustomLog "logs/dummy-host.localhost-access.log" common
</VirtualHost>
<VirtualHost 172.20.10.121:8080>
# ServerAdmin webmaster@meera.am.gov.ae
ServerName meera.am.gov.ae
DocumentRoot "c:wamp/www/meera"
Directoryindex index.php index.html
# ErrorLog "logs/dummy-host2.localhost-error.log"
# CustomLog "logs/dummy-host2.localhost-access.log" common
</VirtualHost>
Я комментирую следующее в файле httpd
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^.ht">
# Order allow,deny
# Deny from all
# Satisfy All
</FilesMatch>
Комментарии:
1. Можете ли вы опубликовать свой httpf-vohosts.conf?
2.
prevent .htaccess and .htpasswd files from being viewed by Web clients
НЕ КОММЕНТИРУЙТЕ эти строки. Как говорится в документации, это останавливает отправку формы этих файлов клиентам, но не останавливает их работу с формой. (И переопределяющие параметры по умолчанию).
Ответ №1:
но что бы я ни ввел, это откроет индекс для первого сайта
Итак, я предполагаю, что ваш сервер также прослушивает порт 8080. Вы не упомянули эту часть.
Проблема может заключаться в том, что вы также включили виртуальный хостинг на основе имен с помощью чего-то вроде:
NameVirtualHost *
… или
NameVirtualHost 172.20.10.121
Таким образом, Apache идентифицирует хосты по имени хоста ( Host
заголовку запроса). Если хост не отправлен или в конфигурации не найдено соответствия ServerName
, запрос обработает первый хост (хост по умолчанию).
Хотя вместо этого безумия с портами я настоятельно рекомендую вам использовать виртуальные хосты на основе имен. С такими именами, как mysite.test
или jopbsite.test
или projectname.test
и т.д. Таким образом, все они могут прослушивать порт 80, вы должны определить ServerName
для всех хостов виртуальный хостинг на основе имен enbale с помощью одного из моих примеров выше, затем определите свои записи NS в:
c:windowssystem32driversetchosts
файл.
Редактировать:
у вас должно быть что-то подобное в вашем vhosts.conf:
NameVirtualHost *
<VirtualHost *>
ServerName mysite.test
DocumentRoot "C:/www/mysite.test"
Directoryindex index.php index.html
</VirtualHost>
<VirtualHost *>
ServerName theothersite.test
DocumentRoot "C:/www/theothersite.test"
Directoryindex index.php index.html
</VirtualHost>
Комментарии:
1. уважаемый, где я должен внести вышеуказанные изменения, я имею в виду, в каком файле
2. я внес изменения, как вы сказали в httpd-vhosts.cong, но у меня все еще не работает
3. @Meera Я добавил пример к своему ответу с помощью essentials.
4. @vbence я тоже это делал, но все еще не работает, работает только один веб-сайт, другой выдает ошибку, как будто вам нужно войти в систему
5. @Meera Вы открываете их как
http://mysite.test
иhttp://theothersite.test
в браузере? Если у вас есть какие-либо файлы .htaccess, попробуйте отключить их для no.
Ответ №2:
Есть много подробных руководств по этому вопросу. Я давно не пользовался WAMP, но это руководство, которым я пользовался в прошлый раз: http://cesaric.com/?p=255
Ответ №3:
Вам нужно будет изменить ваш файл .conf, чтобы он учитывал два отдельных виртуальных хоста.
В приведенном ниже примере вам в основном потребуется установить ServerName, ServerAlias и другие переменные, чтобы разделить их.
<VirtualHost *>
ServerAdmin webmaster@example.org
ServerName www.example.org
ServerAlias example.org
# Indexes Directory Root.
DirectoryIndex index.html
DocumentRoot /home/www/www.example.org/htdocs/
</VirtualHost>
<VirtualHost *>
ServerAdmin webmaster@example.com
ServerName www.example.com
ServerAlias example.com
# Indexes Directory Root.
DirectoryIndex index.html
DocumentRoot /home/www/www.example.com/htdocs/
</VirtualHost>
Надеюсь, это поможет. Обязательно остановите Apache перед изменением файла .conf, а затем запустите его снова.
Комментарии:
1. я уже создаю два отдельных виртуальных хоста, но у меня все еще не работает
Ответ №4:
Некоторое время назад у меня была эта проблема, и я обнаружил, что это была глупая ошибка, что я не сделал перезапуск на сервере httpd.
Вы могли бы попробовать запустить это из командной строки, если у вас есть /bin
каталог, связанный в вашем PATH
:
httpd -k restart
Надеюсь, это поможет! Приветствия 🙂
Комментарии:
1. @Meera httpd.exe должно быть в каталоге bin. Например, если вы использовали настройку по умолчанию для Windows Apache, она будет находиться в <каталог установки>Apache2.2 bin. Это должно быть в вашем пользовательском пути, который находится в разделе «Переменные среды» в Windows. Вам просто нужно добавить тот каталог, где ваш httpd.exe найдена переменная PATH, и вы должны быть в состоянии запустить ‘httpd.exe ‘ непосредственно из командной строки. В качестве альтернативы вы можете просто перейти непосредственно в каталог вашего Apache, где ваш httpd.exe найден и запустите команду: httpd -k restart