python - 使用 Passenger-wsgi 进行 Django 部署

标签 python django passenger wsgi dreamhost

看来我使用此代码成功部署了应用程序

import sys, os
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = "UR.settings"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

但是 Django 无法正常运行,因为它无法获取最新版本的 Django,并使用 Python 2.3 运行旧版本。我安装了最新的 Django 和 Python 2.7,并添加了这两行,现在我收到内部服务器错误..

INTERP = '/home/username/opt/python-2.7.7/bin/python'
if sys.executable != INTERP:
        os.execl(INTERP, INTERP, *sys.argv)

我确信这是通向我的 Python 2.7 的正确路径...任何帮助将不胜感激

最佳答案

终于解决了 我在dreamhost上部署,他们的服务器有django1.2和python2.6,每当我尝试制作python2.7并让它成为默认乘客时,就会进入python 2.6并成功执行python2.7,但由于某种原因它遇到了django1 .2 而不是我安装的最新 django。

我在/usr/中安装了python2.7(当然使用sudoer帐户),然后我将新的django安装到站点包中,现在我不再需要执行python2.7的行,因为它现在与django一起是默认值1.7

我还编辑了 Passenger-wsgi 文件,这段代码对我来说工作得很好......

import sys, os
sys.path.append(os.path.join(os.getcwd(), 'projectname')) #I needed this
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

现在唯一的挫折是服务器的响应速度变慢,但除此之外一切都很顺利

我发现了一个进入 django 日志的好技巧

  1. ssh into your server

  2. Execute python manage.py runserver

  3. Open another ssh session at the same time

  4. In the new ssh execute lynx localhost:8000

然后您将能够在第二个 ssh 中看到来自 django 的日志和调试信息。

关于python - 使用 Passenger-wsgi 进行 Django 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130408/

相关文章:

python - Django OAuth 工具包 - 注册用户

python - numpy.fromstring 中的 ValueError

python - input() 和 sys.stdin 有什么区别?

jquery - 具有验证和多表单处理的 Django Ajax 提交

python - MySQL 在 "Unknown column ' 中给出了 'field list' user.id' 错误使用 Django 的自动 id

ruby-on-rails - 乘客错误 - PhusionPassenger::ClassicRails::ApplicationSpawner::Error

django - 在 WSGI/Passenger 下使用 Werkzeug 调试 Django - 问题

ruby-on-rails-3 - 在 Linode 上托管 Rails 应用程序

python - Django : <django. utils.functional.__proxy__ object at 0x7feaac2761d0> 不是 JSON 可序列化的

python - 从在线 mp3 文件中读取元数据