我正在尝试获取sentry在我的 DreamHost 服务器上运行。 Dreamhost 使用 Passenger wsgi 来服务 Python 框架,例如 django。我能够运行 django 应用程序。
我正在使用 virtualenv 并使用 pip 安装sentry,因此sentry的所有代码都位于virtualenv目录下。针对 Sentry 的说明不使用 startproject
创建一个目录,您可以将其放置在某个位置以供 passenger_wsgi.py
文件查找。
Sentry 网站提供了在 Nginx 和 uWSGI 下运行的程序示例,但我仅限于(在本例中)apache 和乘客 wsgi。
是否可以在 dreamhost 的配置下运行 Sentry ,如果可以,如何传递配置文件等内容以使其正常工作。我已经能够在本地启动 Sentry 并与 Sentry 交互,使用:
sentry --config=/home/user/.sentry/sentry.conf.py start
所以我知道所有依赖项都存在于主机系统上
最佳答案
好吧,看起来我想多了,我忘记了从Python的角度来看,文件wsgi.py
(在sentry目录中找到)被称为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 的所有导入并启动了正确的应用程序。
关于python - Sentry可以在乘客WSGI(dreamhost)下运行吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22224463/