3

我正在尝试部署我使用 cherokee 和 uwsgi 开发的烧瓶网络应用程序。我安装了 cherokee 和 uwsgi 并且可以正常工作(我认为 uwsgi 可以工作),但是当我在 cherokee 中配置应用程序时,我只是收到一条错误消息uWSGI Error wsgi application not found。我使用了一个 xml 配置文件(我认为您需要使用 cherokee),其中包含以下内容:

<uwsgi>
    <pythonpath>/srv/mobile-site/app/</pythonpath>
    <app mountpoint="/">
        <module>mobilecms</module>
        <callable>app</callable>
    </app>
</uwsgi>

我的烧瓶应用程序显然位于/srv/mobile-site/app/主脚本为mobilecms.py.

这个文件有问题吗?权限错误会导致这种情况吗?提前感谢您的帮助!

4

2 回答 2

2

在投入生产之前,请始终尝试在没有网络服务器的情况下部署 uWSGI。

uwsgi -x<xmlfile>

它会打印很多信息/错误

于 2011-02-27T05:36:37.060 回答
2

罗伯托的建议很好;它将帮助诊断错误发生的位置(即是 uWSGI 还是 Cherokee)。

我最近也在努力让 uWSGI 和 Cherokee 一起工作。我最终在 Cherokee 中手动配置了 uWSGI 源:

  • 在 Cherokee Admin 的“Sources”选项卡下,添加一个昵称为“uWSGI Source”和套接字“/tmp/foo.sock”的新源
    • 将类型更改为“本地解释器”
    • 在解释器字段中,输入:/usr/local/bin/uwsgi -x /path/to/uwsgiconfig.xml
  • 在虚拟服务器的规则管理中,单击 添加新的行为规则。
    • 选择“目录”类型的手动配置,路径为“/”
    • 将处理程序设置为“uWSGI”
    • 滚动到底部并为平衡器设置“循环”
    • 添加“uWSGI Source”信息源
  • 保存更改并重新启动 Cherokee

在我的 uWSGI 配置文件中,我有这样的内容(适用于您的示例):

<uwsgi>
    <chdir>/srv/mobile-site/app/</chdir>
    <wsgi-file>/srv/mobile-site/app/mobilecms.py</wsgi-file>
    <callable>app</callable>

    <socket>/tmp/foo.sock</socket>
    <chmod-socket>666</chmod-socket>

    <master />
    <processes>1</processes>

    <disable-logging /><!-- Errors are still logged; this just disables request logging which Cherokee takes care of -->

    <vacuum />
    <no-orphans />
</uwsgi>

请注意,Cherokee uWSGI 向导不接受这是一个有效的配置文件(因此是手动配置)。

于 2011-02-27T05:45:29.213 回答