WAMP 中不同端口上的多个虚拟主机
Posted
技术标签:
【中文标题】WAMP 中不同端口上的多个虚拟主机【英文标题】:Multiple Virtual Hosts on Different Ports in WAMP 【发布时间】:2012-03-27 07:34:00 【问题描述】:所以我有这个问题......
我过去使用 WAMP 并设置了完美运行的虚拟主机,但现在我遇到了我从未预见到的事情。
我正在尝试这样做:
通过http://localhost访问C:\wamp\www
通过http://localhost:8080 或http://something.dev 访问 D:\somethingelse
我更喜欢使用正确的http://something.dev,因为工作站点是http://something.co,所以我可以将它们分开。
我已经按照指南阅读了论坛帖子,但到目前为止我所做的只是:
通过http://localhost或http://something.dev访问C:\wamp\www
通过http://localhost:8080 或http://something.dev:8080 访问 D:\somethingelse
有人知道你会怎么做吗?这是我的虚拟主机代码:
<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 等效主机文件的访问。它还允许我通过路由器上的端口转发仅将服务器的特定部分打开到互联网。)
【问题讨论】:
【参考方案1】:我想你已经解决了这个问题。无论如何,分享一些关于如何在 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、主机(在 \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\"
【讨论】:
【参考方案2】:使用 * 作为主机名需要使用 NameVirtualHost:
NameVirtualHost *:80
NameVirtualHost *:8080
【讨论】:
NameVirtualHost 未在最新版本的 Wampserver 中使用。【参考方案3】:对于使用 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>
当然,您的hosts
文件中需要有project1.local
和project2.local
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
【讨论】:
【参考方案4】:这个问题有点关于它。但我认为它就在附近,可能对某人有帮助。
最近,当我需要通过一个外部 IP 地址和端口访问一些资源(debian 存储库、我的网站和 phpmyadmin)时,我遇到了这个问题。
在了解问题后,我发现名为reverse proxy
的技术。它类似于代理,但服务器接受来自许多用户的所有连接并重定向到一个目标(您的服务器)。
我制作了简单的 Docker 镜像和 docker-compose 文件并将其推送到 github.com/urpylka/docker-nginx-reverse-proxy 和 hub.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 运行的少数网络服务器。
【讨论】:
问题不是这个。 是的,但是任务(通过localhost 访问C:\wamp\www & 通过something.dev 访问D:\somethingelse)可以通过我的方法解决。我认为这可能对某人有所帮助。它可以使用不同的端口)以上是关于WAMP 中不同端口上的多个虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章
在win7上的不同目录中的wamp 2.5中创建vhost返回禁止错误