cur*_*urt 4 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>
Run Code Online (Sandbox Code Playgroud)
显然,这一变化与 Apache 的新版本有关。更改的原因是什么?我是否正确修复了它?
在以前的 macOS 版本中,您提到的部分是一行Listen 80,位于/etc/apache2/httpd.conf. 纯粹是为了在升级 macOS 时轻松进行设置,这是放置您自己的Listen指令的正确位置。例如,每次升级时,我都会将该行替换为
Listen 80
Listen 81
Listen 82
Run Code Online (Sandbox Code Playgroud)
然后恢复我现有的httpd-vhosts.conf文件,我在其中保留尽可能多的自定义配置。
(你暗示你Listen在很多地方都有指令,我不确定为什么会出现这种情况。将它们全部放在一个地方更常见,而且当然更容易,特别是当你处理苹果的“土拨鼠”时配置文件的日方法)
我找不到有关新表单的任何文档,并且 High Sierra 配置文件或launchdApache 调用中的其他任何地方都没有提到它。但它的作用非常明确:它Listen根据是否设置了某个参数来选择两个备用配置之一。唯一可以想象的原因是允许苹果在两种不同的设置之间切换而无需修改文件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>
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常。据推测,如果这个神秘的SERVER_APP_HAS_DEFAULT_PORTS参数在我的计算机上成为真,那么它的含义就会显而易见。
| 归档时间: |
|
| 查看次数: |
3127 次 |
| 最近记录: |