WAMP中不同端口上的多个虚拟主机

时间:2012-03-09 21:09:16

标签: apache wamp virtualhost

所以我有这个问题......

我使用WAMP并且过去已经设置了完美的虚拟主机,但现在我已经找到了一些我从未预料到的东西。

我正在尝试这样做:

通过http://localhost

访问C:\ wamp \ www

通过http://localhost:8080http://something.dev

访问D:\ somethingelse

我更喜欢使用正确的http://something.dev,因为工作网站是http://something.co,因此我可以将它们分开。

我已经按照指南和阅读论坛帖子,但到目前为止我所做的就是:

通过http://localhosthttp://something.dev

访问C:\ wamp \ www

通过http://localhost:8080http://something.dev:8080

访问D:\ somethingelse

有人知道你会怎么做吗?这是我的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

我的主机文件正在运行,并将这两个文件指向127.0.0.1

(我想这样做的原因是,当我在我的机器上编码时,我使用http://something.dev,但我运行Livereload Windows,并在同一本地网络上的iPhone和iPad上同时测试我的网站,但是没有任何访问iOS等效的hosts文件。它还允许我通过我的路由器上的端口转发只打开我的服务器的特定部分到互联网。)

4 个答案:

答案 0 :(得分:11)

我想你已经解决了这个问题。无论如何,分享一些关于如何在Wamp中设置多个虚拟主机的好信息是很好的。这对我有用:

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

在我的情况下,我正在使用端口8080和8181. 8080重定向到c:\ wamp \ www \ myfolder下的子文件夹,而8181重定向到root 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 :(得分:1)

使用*作为主机名需要使用NameVirtualHost:

NameVirtualHost *:80
NameVirtualHost *:8080

答案 2 :(得分:0)

对于有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.localhosts

sudo nano /etc/hosts

并添加

127.0.0.1 project1.local project2.local

重新启动MAMP,您可以通过

访问您的虚拟主机
project1.local
project2.local:8080

project2也可以在您的网络中或使用外部IP进行访问(例如,从移动电话等其他设备进行测试)。假设您的IP为192.168.1.10

192.168.1.10:8080

答案 3 :(得分:0)

问题仅在于此。但我认为它就在附近,可能对某人有帮助。

最近,当我需要通过一个外部IP地址和端口来获取一些资源(debian存储库,我的网站和phpmyadmin)时,我遇到了问题。< / p>

了解了该问题之后,我发现了一种名为reverse proxy的技术。就像代理一样,但是服务器接受来自许多用户的所有连接并重定向到一个目标(您的服务器)。

我制作了简单的Docker映像和 docker-compose 文件,并将其推送到github.com/urpylka/docker-nginx-reverse-proxyhub.docker.com

配置文件非常简单:

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运行的Web服务器。