apache - 为什么在升级到 High Sierra 时需要从我的配置文件中删除 "Listen 80"?

标签 apache macos-high-sierra

升级到 High Sierra 后,我的本地网站访问失败,就像每次升级后一样。这次我虽然在上面,因为我将所有更改都放在/other/overides.conf 中。它仍然没有奏效。我终于能够通过在每个出现的地方删除 Listen 80 来修复它。这个新代码带有最新的 httpd.conf

<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
    Listen 8080
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
    Listen 80
</IfDefine>

显然,这种变化与更新版本的 Apache 有关。更改的原因是什么,我是否正确修复了它?

最佳答案

在以前的 macOS 版本中,您提到的部分是单个 Listen 80行,在 /etc/apache2/httpd.conf 开头的同一位置.纯粹为了在升级 macOS 时便于设置,这里是放置您自己的设备的正确位置 Listen指令。例如,每次升级时,我都会将该行替换为

  Listen 80
  Listen 81
  Listen 82

然后恢复我现有的 httpd-vhosts.conf文件,我尽可能多地保留我的自定义配置。

(你暗示你在很多地方都有 Listen 指令,我不确定为什么会这样。将它们全部放在一个地方更常见,当然也更容易,尤其是当你处理Apple 的“土拨鼠日”配置文件方法)

我找不到关于新表单的任何文档,并且在 High Sierra 配置文件或 launchd 中的其他任何地方都没有提到它。 Apache 的调用。但它的作用很清楚:它选择两个备用 Listen 之一。根据是否设置了某个参数来配置。唯一可以想到的原因是允许 Apple 在两种不同的设置之间切换,而无需修改 http.conf文件。我猜它与某个地方的复选框有关,可能在服务器应用程序中(我没有安装),或者它可能预计 future 的一些选项。

无论如何,我的推理是:过去,我修改了Apache所做的而不是监听80端口,所以这是我现在应该修改的部分。因此我换了新的 High Sierra httpd.conf到:
<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
    Listen 8080
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
    Listen 80
    Listen 81
    Listen 82
</IfDefine>

这似乎工作正常。想必,如果神秘SERVER_APP_HAS_DEFAULT_PORTS参数在我的电脑上变成真的,很明显这是怎么回事。

关于apache - 为什么在升级到 High Sierra 时需要从我的配置文件中删除 "Listen 80"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46496767/

相关文章:

java - Tomcat 不工作但 apache 工作。在 CentOs 6.x 上

php - 从 apache 服务器中的 php 访问 shell 可执行文件

node.js - 如何在 php/apache 服务器上部署 nodejs 应用程序?

Ruby gem Nokogiri 1.9.1 在具有不同 LibXML 版本的 Mac 上失败

java - 安装 JDBC 驱动程序以从 Matlab 访问 Mariadb 数据库

xcode - 无法启动 Xcode 内置的 macOS 应用程序

apache - "Unexpected token H in JSON at position 0"Apache Web 服务器上的 SignalR 核心和 Kestrel

svn + apache每个目录访问控制: weird permissions issue (403 Forbidden error)

objective-c - iOS 11 - 核心数据 - UIColor 不再用作可转换属性

c++ - brew 警告 : dependency was built with a different C++ standard library