Sentry可以在Passenger WSGI(DreamHost)下运行吗
我正在尝试在我的Dreamhost服务器上运行sentry。Dreamhost使用passenger wsgi来服务像django这样的Python框架。我已经能够让django应用正常运行。
我使用virtualenv,并通过pip安装sentry,所以sentry的所有代码都在virtualenv目录下。sentry提供的说明没有使用startproject
来创建一个目录,这样就可以把它放在某个地方,让passenger_wsgi.py
文件找到。
sentry的网站上给出了在Nginx和uWSGI下运行程序的例子,但在这种情况下,我只能使用apache和passenger wsgi。
在Dreamhost的配置下运行sentry是否可能,如果可以的话,怎么把配置文件等东西传进去让它正常工作。我已经能够在本地启动并与sentry互动,使用的是:
sentry --config=/home/user/.sentry/sentry.conf.py start
所以我知道主机系统上所有的依赖都已经存在了。
1 个回答
3
好吧,看起来我想得太复杂了。我忘了从 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
信不信由你,就这样。如果你查看虚拟环境安装下的 sentry 目录中的 wsgi 文件,你会发现它完成了所有 django.core.handlers.wsgi 的导入,并启动了正确的应用程序。