用passenger_wsgi.py托管Django

时间:2016-01-28 19:31:13

标签: python django apache hosting

我无法使用python passenger_wsgi.py和虚拟环境在dreamhost共享主机上设置我的django。当我运行passenger_wsgi.py时,不会返回任何错误,shell会打印我的项目路径。我的网站显示500国际服务器错误。我已清除缓存,因此没有缓存错误。如何正确设置?

django 1.9 python 2.7 阿帕奇

我的网站结构是:

/home/myuser/mydomain.com/
   env/
   myApp/
   passenger_wsgi.py
   public/

passenger_wsgi.py

import sys, os
cwd = os.getcwd()
sys.path.append(cwd)

project_location = cwd + '/myApp'
print (project_location)
sys.path.insert(0, project_location)

#Switch to new python
if sys.version < "2.7.3": os.execl("/home/myuser/mydomain.com/env/bin/python",
"python2.7.3", *sys.argv)

sys.path.insert(0,'/home/myuser/mydomain.com/env/bin')
sys.path.insert(0,'/home/myuser/mydomain.com/env/lib/python2.7/site-packages/django')
sys.path.insert(0,'/home/myuser/mydomain.com/env/lib/python2.7/site-packages')


os.environ['DJANGO_SETTINGS_MODULE'] = "myApp.settings"

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

1 个答案:

答案 0 :(得分:1)

从Django 1.6升级到1.8时,我特别遇到Dreamhost问题。其中一个问题是WSGIHandler()。我不能特别说这是你的问题,但你可以尝试这样设置application

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

最后 - 确保重新启动乘客。这里有关于如何操作的文档:http://wiki.dreamhost.com/Passenger

从该页面开始:

  

每当修改应用程序的代码或配置文件时,您必须创建或更新文件的修改日期&#34; tmp / restart.txt&#34;在应用程序的根目录树中,以便触发Passenger重新初始化应用程序。 Passenger缓存许多资源,因此除非修改日期为&#34; tmp / restart.txt&#34;否则无法识别更改。改变了。

     

进行此更改的最常用方法是运行&#34;触摸tmp / restart.txt&#34;通过SSH。 (Ruby on Rails自动创建一个名为&#34; tmp&#34;的目录。如果要创建非RoR应用程序,则可能需要手动创建&#34; tmp&#34;目录。