【发布时间】:2012-10-13 16:32:48
【问题描述】:
环境详情:
Amazon Ec2 Ubuntu 12.04
Django + mod_wsgi + python 2.6
web server: apache2
我已将10GB ebs volume 挂载到/mnt/ebs1/ 的实例。安装卷和格式化后,我已将所有项目文件放在/mnt/ebs1/project 中。 wsgi 文件位于 /mnt/ebs1/project/apache/django.wsgi 中。 wsgi文件的内容是:
import os, sys
sys.path.insert(0, '/mnt/ebs1/project')
sys.path.insert(1, '/mnt/ebs1')
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.configs.common.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
我的httpd.conf 文件如下所示:
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
WSGIPythonHome /usr/bin/python2.6
WSGIScriptAlias / /mnt/ebs1/project/apache/django.wsgi
<Directory /mnt/ebs1/project>
Order allow,deny
Allow from all
</Directory>
<Directory /mnt/ebs1/project/apache>
Order allow,deny
Allow from all
</Directory>
Alias /static/ /mnt/ebs1/project/static/
<Directory /mnt/ebs1/project/static>
Order deny,allow
Allow from all
</Directory>
上面的配置给了我Forbidden: You don't have permission to access / on this server。
我尝试使用ps aux 查找正在运行 apache 的用户,该用户是www-data 并且具有组www-data。我尝试使用chown -R www-data:www-data /mnt/ebs1 更改/mnt/ebs1 及其子目录的所有权,但这仍然不能解决问题。谁能告诉我我做错了什么或错过了什么?
【问题讨论】:
-
这与挂载的卷有关,因为类似的设置在其他不支持 ebs 的 ec2 实例上运行良好。
-
看来您必须首先在 httpd.conf 中将 DocumentRoot 声明到例外位置。
-
没有出现同样的禁止错误,我在
httpd.conf中添加了DocumentRoot /mnt/ebs1并重新启动了服务器。 -
yes 2.6 我手动安装的,默认是2.7.3,所以我在
httpd.conf中提到了WSGIPythonHome -
如何安装卷?什么属性?
标签: django linux apache amazon-ec2 mod-wsgi