【问题标题】:Phusion Passenger 5.1.12 + OSX 10.13 + Server 5.4Phusion 乘客 5.1.12 + OSX 10.13 + 服务器 5.4
【发布时间】:2018-06-23 14:29:08
【问题描述】:

自从升级到 10.13 后,我在使用 Phusion Passenger 时遇到了问题。我已经阅读了几篇关于这个问题的根本原因的文章(坦率地说,其中大部分都在我的脑海中),但我的印象是,Passenger 5.1.12 应该解决这个问题。尽管如此,它并没有对我和 Apache 崩溃并出现以下日志条目:

httpd[31444]: objc[31444]: +[__NSCFConstantString initialize] 可能有 调用 fork() 时正在另一个线程中进行。我们不可以 在 fork() 子进程中安全地调用它或忽略它。崩溃 反而。在 objc_initializeAfterForkError 上设置断点进行调试。

任何指针将不胜感激!

【问题讨论】:

  • 是的,我在同一条船上:(
  • 哦,我确定这可能是一个错字,但您是说乘客5.1.12 吗?你提到的修复是在5.1.11
  • 你确实是对的。我已经适当地编辑了帖子。谢谢你指出这一点。希望现在有人会回答我的问题:D
  • 这是由于 macOS 10.13 在不区分大小写的文件系统上附带的 apache 中的一个错误。
  • 哦,太好了。任何已知的解决方法?我没有屏住呼吸让 Apple 给那个网络服务器打补丁……(对不起,双关语不好,但如果鞋子合适的话……)

标签: macos apache passenger macos-high-sierra


【解决方案1】:

如果你想坚持使用 Apache,直到 Apple 修补他们的构建,apparently your options current are 到:

  • 使用非系统 apache(所以它没有苹果的补丁)
  • 将 OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES 环境变量设置为 apache 启动 plist(需要禁用 SIP)
  • 如果您的应用程序可以,请将PassengerHighPerformance 添加到您的虚拟主机上 那样工作
  • 使用区分大小写的文件系统(需要全新安装 macOS)

这些听起来对我来说都不是特别吸引人,所以我安装并迁移到了 nginx(无论如何,我一直想这么做,已经有一段时间了)。

【讨论】:

  • 我也看到了这些建议,我尝试了 PassengerHighPerformance 指令,但无济于事。我希望最近发布的 Server 5.5 能够解决问题,但它没有。和你一样,我正在将一些东西转移到 Amazon EC2 上,所以这可能是我的最终解决方案,除非 Apple 很快会发生一些变化。
猜你喜欢
  • 2011-09-27
  • 2015-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多