小编Cit*_*enS的帖子

Django/mod_wsgi OSError:[Errno 13]权限被拒绝:当DEBUG = OFF时'静态'

我使用mod_wsgi在Centos 6.2服务器上运行Django 1.4应用程序(运行apache,mysql,php),我的项目部署在虚拟环境中.应用程序本身就是我多年来在托管服务上使用的应用程序本身,我现在部署在我自己的rackspace云服务器上.该应用程序的确切版本在其他地方运行良好,所以这个问题是关于我如何部署它.这是我的第一个python/django部署 - 之前我已经建立了几十个LAMP站点,所以我对Django部署的熟悉程度显然让我无法接受.

该应用程序在我的服务器上使用DEBUG = TRUE项目的settings.py文件正常工作,但是当我将其更改为FALSE时,站点的前端会产生[500]内部服务器错误.

据我所知,有DEBUG设置为OFF,Apache是目前通过mod_wsgi的服务我的静态文件(mod_wsgi的工作正常),这使我相信我的配置"东西"是防止这一点.我已经运行了./manage.py collectstatic填充文件夹中/static目录的命令/myproject.

我已经在这方面工作了几个星期,阅读了尽可能多的部署指南,但到目前为止还没有任何乐趣.非常感谢您的协助.

以下是我项目的settings.py文件中的相关声明:

############ settings.py #############

SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
MEDIA_ROOT = '/opt/virtual/myproject/static/localtv/media/'
MEDIA_URL = 'http://example.org/static/localtv/media/'
STATIC_ROOT = '/opt/virtual/myproject/static/'
STATIC_URL = 'http://example.org/static/'
Run Code Online (Sandbox Code Playgroud)

这是wsgi.py文件:

############# wsgi.py #################
import os
import sys
import site
site.addsitedir('/opt/virtual/myapp/lib/python2.7/site-packages')

apache_configuration= os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)

sys.path.append('/opt/virtual')
sys.path.append('/opt/virtual/myproject')

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

我在httpd.conf中的虚拟主机声明如下所示:

############ virtual host declaration in httpd.conf ##############
<VirtualHost *:80>
ServerName example.org
ServerAlias www.example.org
DocumentRoot /opt/virtual/myproject …
Run Code Online (Sandbox Code Playgroud)

python django permissions mod-wsgi django-staticfiles

6
推荐指数
1
解决办法
7058
查看次数