我试图在我的Dreamhost服务器上运行sentry。 Dreamhost使用乘客wsgi服务于Django框架等python框架。我能够运行django应用程序。

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

哨兵网站提供了在Nginx和uWSGI下运行的程序的示例,但在这种情况下,我仅限于Apache和旅客wsgi。

是否有可能在dreamhost的配置下运行哨兵,如果是这样,如何传递诸如配置文件之类的内容以使其正常工作。我已经能够使用以下命令在本地启动哨兵并与哨兵进行互动:

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


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

最佳答案

好的,好像我想得太过分了,我从python角度忘记了当作为模块导入时,文件wsgi.py(在sentry目录中找到)被称为sentry.wsgi。我对哨兵这个从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的所有导入,并启动了正确的应用程序。

关于python - 哨兵能否在乘客WSGI(dreamhost)下运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22224463/

10-09 18:49