将 browser/system 默认本地主机端口 (80) 更改为自定义

Change browser/system default localhost port (80) to custom

当我使用 XAMPP 或 WAMP 时出现以下问题:

XAMPP - Port 80 in use by "Unable to open process" with PID 4! 12

而且很容易解决,改Apache的.ini文件,告诉他使用8080端口(举例)...

但是我总是需要在 URL 中指定自定义端口:

http://localhost.myapp:8080

虽然不修改默认的Apache localhost端口:当他是原来的80时,我可以直接放:

http://localhost.myapp

所以我猜端口 80 不仅是 Apache 的默认端口,也是其他东西的默认端口。我的问题是是否有其他方法可以配置 browser/windows-system/whatever 的默认参数,告诉他默认的本地主机端口现在是 8080(例如),所以我仍然可以使用较短的 URL 版本...

谢谢,

根据 RFC2616,HTTP 的默认端口是 80,因此浏览器被设计为将没有定义端口的请求解释为对端口 80 的请求。据我所知,有无法覆盖此默认值(无需对浏览器代码进行一些认真的修改),无论是针对单个主机(例如 localhost)还是针对所有主机。

底线:如果您想使用 80 以外的端口,则必须在请求中定义该端口,如 'localhost:8080/asset'.

就是说,这个命令应该会告诉你在大多数 linux 发行版中哪个程序正在侦听端口 80(这样你就可以找出是什么让 Apache 无法使用端口 80):

 sudo netstat -apn | grep :80

例如,在我的小测试服务器上,我得到以下输出:

tcp        0      0 0.0.0.0:80            0.0.0.0:*             LISTEN      1491/apache2

这告诉我它正在被 Apache (PID 1491) 使用。

Netstat 是一个很棒的工具,这里 article 提供了一些额外的示例来说明如何使用此工具。

如果 netstat 报告 PID 4 正在使用端口 80,这通常意味着 IIS,它也是一个 Web 服务器,或其关联工具之一是 运行。

Microsoft 有一个他们使用的端口共享机制,因此 IIS 等的多个位可以共享端口 80,但 Apache 不使用它。

查看您的系统(程序和功能)是否有以下任何一项,恐怕它不是完整列表,但涵盖了最有可能的候选人。

  1. IIS
  2. Web Deploy 2.0 (Web Deployment Agent Service)
  3. MS Sql Server Reporting service.
  4. BranchCache ( Windows 8.1 )
  5. SQL Server VSS Writer

如果您不使用其中任何一个,请卸载它们,在 W8+ 中,MS 似乎认为默认安装 IIS 是个好主意,但如果您不使用它,则可以毫无问题地卸载它。

或者,如果您正在使用它们,但不是在您使用 Apache/MySQL/PHP 进行开发时,您应该从服务管理单元中暂时禁用它们。