【发布时间】:2012-06-14 13:37:46
【问题描述】:
我正在尝试对 Sinatra 应用程序进行一些愚蠢的自动配置,这将允许从不同的子 URI 使用它,具体取决于它是与 Apache 和 Passenger 一起运行,还是与 Thin Web 服务器一起运行。
所以我的问题是:是否可以从 Sinatra 应用程序内部找出运行它的 Web 服务器是什么?
【问题讨论】:
我正在尝试对 Sinatra 应用程序进行一些愚蠢的自动配置,这将允许从不同的子 URI 使用它,具体取决于它是与 Apache 和 Passenger 一起运行,还是与 Thin Web 服务器一起运行。
所以我的问题是:是否可以从 Sinatra 应用程序内部找出运行它的 Web 服务器是什么?
【问题讨论】:
您无法(据我所知)查看它是否在 Apache 上运行,但您可以检查它是否在Passenger 上运行:
if defined?(PhusionPassenger)
# We are running Passenger!
end
你应该可以为 Thin 做同样的事情:
if defined?(Thin)
# We are running Thin!
end
【讨论】:
defined?,但可能搞砸了)。