【问题标题】:How to configure Django on OpenShift? [closed]如何在 OpenShift 上配置 Django? [关闭]
【发布时间】:2012-07-26 04:36:25
【问题描述】:

我最近尝试在 OpenShift 上导出一个 Django 项目,但没有结果。我发现的唯一解决方案是“预建”解决方案(例如 https://github.com/openshift/django-example)。

我花了几个小时试图让它适应我的项目,但我总是遇到内部服务器错误。

那么,如何在 openshift 上设置 django?

【问题讨论】:

    标签: python django openshift redhat


    【解决方案1】:

    我终于明白了。首先要做的是启动一个 openshift 应用程序并编辑 setup.py 文件:

    rhc app create -a APPNAME -t python-2.6
    cd APPNAME
    vim setup.py
    

    您需要取消注释“install_requires=['Django>=1.3']”

    然后你可以提交到服务器:

    git commit -a -m "Initialization"
    git push
    

    默认情况下,它会安装 django 1.4,但我认为您可以在 setup.py 中选择具有正确安装要求的另一个版本。无论如何,您必须在您的计算机和服务器上运行相同的 django 版本才能进行以下操作。

    创建你的 django 项目:

    cd wsgi
    django-admin.py startproject PROJECTNAME
    

    然后您必须编辑文件应用程序,将整个内容替换为:

    #!/usr/bin/python
    import os, sys
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'PROJECTNAME.settings'
    sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi',
        'PROJECTNAME'))
    
    virtenv = os.environ['APPDIR'] + '/virtenv/'
    os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python2.6/site-packages')
    virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
    
    try:
        execfile(virtualenv, dict(__file__=virtualenv))
    except IOError:
        pass
    
    #
    # IMPORTANT: Put any additional includes below this line.  If placed above this
    # line, it's possible required libraries won't be in your searchable path
    # 
    from django.core.handlers import wsgi
    application = wsgi.WSGIHandler()
    

    最后,您可以提交修改:

    cd ..
    git add .
    git commit -a -m "Project Creation"
    git push
    

    您应该会看到 django 欢迎页面。 现在您可以编辑设置并导入您的 django 应用程序,而不会包含不需要的内容

    【讨论】:

    • 伟大的工作。谢谢!对上述步骤的小幅扩展。 1. 为了提供您的静态文件,您需要将它们放入PROJECTNAME/wsgi/static。 2. 在PROJECTNAME/wsgi/static 中,您还应该放置site-packages/Django-xxx/django/contrib/admin/static/admin 中的admin 文件夹。否则你会错过静态的 Django Admin 文件。
    • 不幸的是,当我尝试您的解决方案时,我收到了 503 Service Temporarily Unavailable 错误。我根据我的项目名称编辑了 PROJECTNAME 并使用 python2.7 编辑了该行。 OpenShift 的项目文档似乎非常缺乏:(
    • 我知道您刚刚编辑了this file,但仍然感谢您的出色工作:))))
    • 使用 virtualenvwrapper 添加需求文件怎么样?
    • 我试过这个。我不知道它是否是一个常见问题,但 wsgi.py 没有出现在它自己的文件夹中,现在是根目录。尝试这些建议会导致与@shailenTJ 相同的问题,我收到 503 错误。 wsgi 格式是否发生了很大变化?
    猜你喜欢
    • 1970-01-01
    • 2013-03-15
    • 2012-06-19
    • 1970-01-01
    • 2017-12-16
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    相关资源
    最近更新 更多