2

我试图让哨兵在我的 Dreamhost 服务器上运行。Dreamhost 使用乘客 wsgi 服务于 python 框架,如 django。我能够运行 django 应用程序。

我正在使用 virtualenv 并使用 pip 安装哨兵,因此哨兵的所有代码都位于 virtualenv 目录下。为 sentry 提供的说明不使用startproject创建目录,您可以将其放置在某个位置以供passenger_wsgi.py文件查找。

sentry 网站给出了在 Nginx 和 uWSGI 下运行的程序的示例,但我仅限于(在这种情况下)apache 和乘客 wsgi。

是否可以在dreamhost的配置下运行哨兵,如果可以,如何传递配置文件等内容以使其工作。我已经能够在本地启动并与哨兵交互,使用:

sentry --config=/home/user/.sentry/sentry.conf.py start

所以我知道主机系统上存在所有依赖项

4

1 回答 1

3

好的,看起来我想多了,从 python 的角度来看,我忘记了文件wsgi.py(在哨兵目录中找到)在sentry.wsgi作为模块导入时被调用。我对 sentry 是从 pip 下载的模块以及如何访问它感到困惑。这是有效的简化解决方案:

passenger_wgsi.py

import sys, os
INTERP = "/home/user/.virtualenv/sentry2/bin/python" 
if sys.executable != INTERP:
    os.execl(INTERP, INTERP, *sys.argv)
os.environ['SENTRY_CONF'] = "/home/user/.virtualenv/sentry2/sentry.conf.py"

import sentry.wsgi

信不信由你,就是这样。如果您查看 virtualenv 安装下 sentry 目录中的 wsgi 文件,您将看到它完成了 django.core.handlers.wsgi 的所有导入并启动了正确的应用程序。

于 2014-03-07T20:13:10.553 回答