【问题标题】:pyramid from localhost to live从本地主机到生活的金字塔
【发布时间】:2014-12-29 05:06:13
【问题描述】:

大家好,我在这里遇到了一些麻烦,所以我正在寻求一些建议。

我构建了一个金字塔应用程序,它可以在 localhost 上完美运行,现在我将它上传到 vps 并且遇到了各种麻烦。我的网站托管在 mercurial 上。

请不要引用这个:http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/modwsgi/index.html

我已经尝试了很多次并且在 Google 上搜索了很多次,这就是我在这里问这个问题的原因。

我在 python 2.7 上

  1. 我创建了一个虚拟环境
  2. 激活虚拟环境
  3. pip -r requirements 下载所有需求
  4. 然后 python setup.py 安装

我现在有一个这样的文件夹结构:

appname_dir/
     appname_module/
        static/
        template/
        __init__.py
        views.py

请记住,我没有将文件夹命名为 appname_dir 和 appname_module。

我在 appname_module 文件夹中创建了我的 app.wsgi 文件,它看起来像这样

from pyramid.paster import get_app, setup_logging
ipath = '/path/to/appname_dir/production.ini'
application = get_app(ipath, 'main')

我尝试创建一个类似于下面的虚拟主机文件

<VirtualHost *:80>
        ServerAdmin contact@domain.com
        ServerName domain.com
        ServerAlias www.domain.com

        UseCanonicalName On

        WSGIScriptAlias / /path/to/my/app.wsgi
        <Directory /path/to/folder/that/contains/app.wsgi>
                Order allow,deny
                Allow from all
        </Directory>

        Alias /static /path/to/app/static/folder
        <Directory /path/to/app/static/folder>
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog /path/to/app/folder/logs/error.log
        LogLevel warn
        CustomLog /path/to/app/folder/logs/access.log combined
</VirtualHost>

这行不通

我尝试添加类似于下面的自定义 apache conf 文件

WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess pyramid user=username group=groupname threads=6 \
   python-path=/path/to/virtualenv/site-packages
WSGIScriptAlias / /path/to/app.wsgi

<Directory /path/to/appname_dir>
  WSGIProcessGroup pyramid
  Order allow,deny
  Allow from all
</Directory>

还是不行。通常他们在 apache 错误日志文件中使用此代码会出现 500 错误

Target WSGI script cannot be loaded as Python module

任何人都可以帮助解释发生了什么或如何解决这个问题。请向我指出其他 SO 答案对我花了一整天的时间试图弄清楚这一点没有帮助。

【问题讨论】:

  • 您要求不要引用您链接的文档页面,但我注意到您的版本和他们的版本之间存在问题,有什么建议吗?
  • 我指的是人们只是说,去阅读....,我今天花了一整天的时间阅读 mod_wsgi 文档,但我仍然处于 0 的状态。你有什么建议可以帮助解决这个问题吗?
  • 在您的application = get_app(ipath, 'main') 行中——您使用的 ipath 是一个目录,而在文档中,它是一个指向 .ini 配置文件的链接。阅读文档的第 7 点。
  • 这是一个错字 ipath = '/path/to/production.ini' 我会在上面的问题中解决这个问题。
  • 你没有提到调整权限以允许 Apache 读取 wsgi 文件——你这样做了吗?还有 'Target...' 错误——在日志文件之前和之后是否有更多信息?

标签: python mod-wsgi pyramid


【解决方案1】:

嗯,我能够通过远离 apache 和 mod_wsgi 来解决问题,我设置了 nginx 和 uwsgi。如果我需要 apache,我可以代理从 nginx 到 apache 的连接,但我认为我不需要很快采取这条路线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 2020-10-04
    • 2014-08-18
    • 1970-01-01
    • 2019-09-14
    • 2017-06-13
    相关资源
    最近更新 更多