在以前的 macOS 版本中,您提到的部分是单行Listen 80
,位于/etc/apache2/httpd.conf
. 纯粹是为了在升级 macOS 时便于设置,这是放置您自己的Listen
指令的正确位置。例如,每次升级时,我都会将该行替换为
Listen 80
Listen 81
Listen 82
然后恢复我现有的httpd-vhosts.conf
文件,在那里我尽可能多地保留我的自定义配置。
(你暗示你Listen
在很多地方都有指令,我不知道为什么会这样。把它们都放在一个地方更常见,当然更容易,尤其是当你处理苹果的“土拨鼠”时Day' 配置文件的方法)
我在新表单上找不到任何文档,并且在 High Sierra 配置文件或launchd
Apache 调用中的其他任何地方都没有提到它。但它的作用非常清楚:它Listen
根据是否设置了某个参数来选择两种替代配置之一。唯一可以想到的原因是允许 Apple 在两种不同的设置之间切换而无需修改http.conf
文件。我猜它与某处的复选框有关,可能在服务器应用程序(我没有安装)中,或者它可能预期未来的一些选项。
无论如何,我的理由是:过去,我修改了 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
参数在我的电脑上变成了真的,那么它的全部意义就很明显了。