首页 > 解决方案 > 部署 Django 应用程序(Apache、Passenger、Virtualenv)

问题描述

我坚持在生产 PLESK 服务器上部署我的工作 Django 应用程序。该项目可以通过键入以下内容成功启动为开发服务器:

httpdocs# cd mysite
httpdocs/mysite# source myvenv/bin/activate
httpdocs/mysite# export LD_LIBRARY_PATH="/usr/local/lib"
httpdocs/mysite# python manage.py runserver <freyt.de>:8000

然后,如果我将浏览器指向 freyt.de:8000 我可以看到我的应用程序。美好的。现在,我正在尝试通过来自 Apache 的乘客调用我的应用程序。当使用“passenger-config restart-app”检查时,它似乎在运行,但是当 curl freyt.de 显示带有 403 Forbidden 的 html 时。所以,我假设我的 Django 应用程序没有成功启动。

这是我当前的文件夹结构:

文件夹结构

我已经对 PLESK 中的一些主题进行了如下调整:

PassengerEnabled On
PassengerAppType wsgi
PassengerStartupFile passenger_wsgi.py

文档根目录的一些细节:

import sys, os
cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/mysite')

if sys.version < "2.7.9":
  os.execl(cwd + "/mysite/myvenv/bin/python", "python3.6", *sys.argv)

sys.path.insert(0, cwd + '/mysite/myvenv/bin')
sys.path.insert(0, cwd + '/mysite/myvenv/lib/python3.6')
#sys.path.insert(0, cwd + '/mysite/myvenv/lib/python3.6/site-packages/django')
sys.path.insert(0, cwd + '/mysite/myvenv/lib/python3.6/site-packages')

os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings"
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
application = get_wsgi_application()

如果有人能指出我正确的方向,那就太好了。我认为这只是某个地方的一个小错误:-) 在此先感谢。

标签: pythondjangoapachevirtualenvpassenger

解决方案


推荐阅读