从localhost到住金字塔

时间:2014-11-02 12:00:52

标签: python mod-wsgi pyramid

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

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

请不要参考此:http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/modwsgi/index.html

我已经尝试了很多次并且用Google搜索了很多,这就是为什么我在这里问这个问题。

我在python 2.7上

  1. 我创建了一个virtualenv
  2. 激活virtualenv
  3. pip -r要求下载所有要求
  4. 然后是python setup.py install
  5. 我现在有这样的文件夹结构:

    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答案没有帮助我花了一整天时间试图解决这个问题。

1 个答案:

答案 0 :(得分:0)

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