Python 在切诺基和uwsgi部署烧瓶

Python 在切诺基和uwsgi部署烧瓶,python,flask,cherokee,uwsgi,Python,Flask,Cherokee,Uwsgi,我正在尝试部署一个使用切诺基和uwsgi开发的flask web应用程序。我安装了cherokee和uwsgi并开始工作(我认为uwsgi可以工作),但是当我在cherokee中配置应用程序时,我只收到一个错误,说uwsgi error wsgi application not found。我使用了一个xml配置文件(我认为您需要使用cherokee),其中包含以下内容: <uwsgi> <pythonpath>/srv/mobile-site/app/</

我正在尝试部署一个使用切诺基和uwsgi开发的flask web应用程序。我安装了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/移动站点/应用程序/
移动ECM
应用程序
我的flask应用程序明显位于
/srv/mobile site/app/
文件夹中,主脚本为
mobilecms.py


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

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

uwsgi-x


它将打印大量信息/错误

罗伯托的建议很好;它将有助于诊断错误发生的位置(即uWSGI还是切诺基)

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

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


/srv/移动站点/应用程序/
/srv/mobile-site/app/mobilecms.py
应用程序
/tmp/foo.sock
666
1.

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

+1这帮助我最近了解了我自己的类似设置的情况。我使用uWSGI--http 0.0.0.0:8080-x我已经这样做了,现在我得到了一个503错误。我在提示符下尝试了
uwsgi-x
方法,现在我得到了这个错误:
fopen():没有这样的文件或目录[uwsgi.c行2769]
@tominated:Hmm。你需要找出找不到的文件/目录。尝试逐个删除chdir、wsgi文件和套接字选项,看看是哪一个导致了错误(可能不是套接字)。确保对您的目录和文件的权限设置为读写for world(即xx6或xx7)@tominated:实际上,我在源代码中看到了这一行,这意味着打开您的主WSGI文件时出错(
/srv/mobile site/app/mobilecms.py
)。仔细检查它是否存在并且它是世界可读的(使用
ls-l
查看权限,使用
chmod a+r mobilecms.py
为所有人添加可读权限)我现在让uwsgi工作得很好!谢谢你!但现在切诺基只给了我500个内部错误。我检查了错误日志,发现它们是错误的empty@tomintated:尝试重新启动机器,然后再次启动切诺基——在第一个请求中,您应该会在错误日志中看到切诺基启动uWSGI。这将显示发生了什么。错误日志不应为空--请在vServer的“日志记录”选项卡下检查日志文件是否正确设置
<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>