Несколько виртуальных хостов на разных портах в WAMP - PullRequest
5 голосов
/ 10 марта 2012

Итак, у меня есть эта проблема ...

Я использую WAMP и в прошлом настраивал прекрасно работающие виртуальные хосты, но теперь я пришел к тому, чего никогда не предвидел.

Я пытаюсь сделать это:

Доступ C: \ wamp \ www через http://localhost

Доступ D: что-то через http://localhost:8080 ИЛИ http://something.dev

Я предпочитаю использовать правильные http://something.dev,, поскольку рабочим местом является http://something.co,, и поэтому я могу хранить их отдельно.

Я следовал инструкциям и читал сообщения на форуме, но все, что мне удалось сделать, это:

Доступ к C: \ wamp \ www через http://localhost ИЛИ http://something.dev

Доступ D: \ Someelse через http://localhost:8080 ИЛИ http://something.dev:8080

Кто-нибудь знает, как вы это сделаете? Вот мой код VirtualHost:

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

<VirtualHost *:8080>
ServerAdmin webmaster@something
DocumentRoot "D:/something/www"
ServerName something.dev
ServerAlias www.something.dev
ErrorLog "logs/something-error.log"
CustomLog "logs/something-access.log" common
<directory "D:/something/www">
    Options Indexes FollowSymLinks
    AllowOverride all
    Order Allow,Deny
    Allow from all
</directory>
</VirtualHost>

А в httpd.conf у меня это

Listen *:80
Listen *:8080

И мой файл hosts работает и указывает оба этих параметра на 127.0.0.1

(Причина, по которой я хочу это сделать, заключается в том, что когда я пишу код на своем компьютере, я использую http://something.dev,, но я запускаю Livereload Windows и одновременно тестирую свой веб-сайт на iPhone и iPad в одной локальной сети, но без какого-либо доступа к iOS, эквивалентному файлу хостов. Это также позволяет мне открывать только определенную часть моего сервера в Интернет через переадресацию портов на моем маршрутизаторе.)

Ответы [ 4 ]

12 голосов
/ 15 сентября 2013

Полагаю, вы решили проблему. В любом случае, хорошо бы поделиться приятной информацией о том, как настроить несколько виртуальных хостов в Wamp. Это работает для меня:

http://www.kristengrote.com/blog/articles/how-to-set-up-virtual-hosts-using-wamp

В моем случае я работаю с портами 8080 и 8181. 8080 перенаправляет в подпапку в папке c: \ wamp \ www \ myfolder, а 8181 перенаправляет в корневой каталог c: \ wamp \ www.

Чтобы заставить работать 8181, мне пришлось отредактировать httpd-vhosts.conf, hosts (в папке \ drivers \ etc) и httpd.conf.

В httpd.conf мой Apache слушает:

Listen 8080
Listen 8181

также я оставил комментарий:

Include conf/extra/httpd-vhosts.conf

мой корень указывает на

DocumentRoot "c:/wamp/www/myfolder"

корневой каталог настроен как:

<Directory "c:/wamp/www">
    Options Indexes FollowSymLinks
    AllowOverride All
     Order Deny,Allow
     Deny from all
     Allow from 127.0.0.1
     Allow from ::1
     Allow from localhost
</Directory>

и добавлено:

<VirtualHost *:8181>
DocumentRoot "C:\wamp\www"
ServerName name-of-my-fake-server
</VirtualHost>

в httpd-vhosts.conf Я установил:

NameVirtualHost *:8181

в хостах (c: \ windows \ system32 \ drivers \ etc) я добавил:

127.0.0.1       localhost
127.0.0.1       name-of-my-fake-server #My Test Site

Теперь у меня есть два порта, работающих 8080 и 8181: 8080 указывает на каталог "c:\wamp\www\myfolder", а другой порт 8181 указывает на мою корневую папку "c:\wamp\www\"

1 голос
/ 10 марта 2012

Использование * в качестве имени хоста требует использования NameVirtualHost:

NameVirtualHost *:80
NameVirtualHost *:8080
0 голосов
/ 07 июня 2019

Вопрос немного об этом. Но я предположил, что это рядом и может быть полезным для кого-то.

Недавно я столкнулся с проблемой, когда мне нужно получить доступ к нескольким ресурсам (репозиторий Debian, мой веб-сайт и phpmyadmin) по одному внешнему IP-адресу и порту.

Изучив проблему, я нашел технологию, названную reverse proxy. Это как прокси, но сервер принимает все соединения от многих пользователей и перенаправляет их на одну цель (ваш сервер).

Я сделал простой образ Docker и docker-compose file и отправил его в github.com / urpylka / docker-nginx-reverse-proxy и hub.docker. ком .

Файл конфигурации очень прост:

server {
    listen          80;
    server_name     smirart.ru robotic.lol;
    location / {
        proxy_pass  http://robotic.lol:1080/;
    }
}

server {
    listen          80;
    server_name     repo.smirart.ru;
    location / {
        proxy_pass  http://8.8.8.8:2080/;
    }
}

Вы можете использовать это для нескольких веб-серверов, работающих с разными IP-адресами.

0 голосов
/ 14 сентября 2017

Для тех, у кого MAMP, отредактируйте httpd.conf

nano /Applications/MAMP/conf/apache/httpd.conf

Добавить Listen для каждого порта

Listen 80
Listen 8080

И ServerName тоже

ServerName localhost:80
ServerName localhost:8080

После этого отредактируйте httpd-vhosts.conf

nano /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

Определить NameVirtualHost

NameVirtualHost *:80
NameVirtualHost *:8080

и VirtualHost х

<VirtualHost *:80>
    DocumentRoot "/Users/yourUser/path/project1"
    ServerName project1.local
</VirtualHost>

<VirtualHost *:8080>
    DocumentRoot "/Users/yourUser/path/project2"
    ServerName project2.local
</VirtualHost>

Конечно, вам нужно иметь project1.local и project2.local в вашем hosts файле

sudo nano /etc/hosts

и добавить

127.0.0.1 project1.local project2.local

Перезапустите MAMP, и вы сможете получить доступ к вашему vhost по

project1.local
project2.local:8080

project2 может быть доступ также в вашей сети или с внешним IP-адресом (например, для тестирования с другого устройства, например мобильного телефона). Предполагая, что ваш IP 192.168.1.10

192.168.1.10:8080
...