我已阅读了无数关于在 WAMP 上设置域名以监听 80 以外的端口的文章;但它们都不起作用。
我已安装并安装了 IIS 7 的 Windows Server 2008(标准版)在端口 80(和 443)上运行。
我已经安装了 WAMP,配置如下。
Listen 81
ServerName sub.example.com:81
DocumentRoot "C:/Path/To/www"
<Directory "C:/Path/To/www">
Options All MultiViews
AllowOverride All
# onlineoffline tag - don't remove
Order Allow,Deny
Allow from all
</Directory>
localhost:81 works
与上述配置相同,但是sub.example.com:81
没有。
为了确保我的防火墙不会妨碍我,我已将其完全禁用。
我的sub.example.com
域名已经指向我的服务器并且在 IIS 的 80 端口上运行。
另外,如果我禁用 IIS 并将 Apache 端口从 更改81
为,80
它就可以工作。
是的,每次 httpd.conf 更改后我都会重新启动 Apache。:-)
我不需要配置任何其他域(或子域[我甚至不关心本地主机]),这就是我不使用虚拟主机的原因。
知道这是怎么回事吗?我可能做错了什么?
更新
更改Listen
为80
但保留ServerName
原样sub.example.com:81
会导致导航到sub.example.com:80
工作;这对我来说似乎不对。可能ServerName
是以某种方式忽略了 :port 部分?
netstat -a -n | find "TCP"
:
>netstat -a -n | find "TCP"
TCP 0.0.0.0:81 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:912 0.0.0.0:0 LISTENING
...
TCP 127.0.0.1:81 127.0.0.1:49709 TIME_WAIT
...
答案1
#捂脸
这路由器配置为仅允许端口 80 和 443。这就是端口 81 适用于 localhost 而不适用于域的原因。
我只需要将端口 80 和 81 转发到 Web 服务器就可以了。
答案2
最近不得不设置同样的东西。您必须执行注册表破解才能使其工作。查看此网站文章了解更多信息。特别是关于编辑注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList 的部分。
http://beyondweblogs.com/setting-both-wamp-iis-on-80-port-no-need-of-81-now/