【发布时间】:2014-07-15 15:07:18
【问题描述】:
我在 EC2 上有一个安装了 Django 的微型实例。我还按照几个教程安装了 mod-WSGI、PostgreSQL 等。 最后,我从 bitbucket 中提取了我的项目并在我的 EC2 上启动了 Apache。不幸的是,我唯一拥有的是默认的 Apache 页面,而且我已经花了一天一夜的时间阅读并试图找出我做错了什么。
my_project 位于/home/ubuntu 目录中。在它的文件夹中,我有 wsgi.py 文件:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
这是我存储在/etc/apache2/httpd.conf 中的.conf 文件:
Listen 80
NameVirtualHost *:80
WSGIPythonPath /home/ubuntu/my_project/
<VirtualHost *:80>
DocumentRoot /home/ubuntu/my_project
ServerName www.ec2-54-***-104-**.us-west-2.compute.amazonaws.com
ServerAlias ec2-54-***-104-**.us-west-2.compute.amazonaws.com
ErrorLog /home/ubuntu/my_project/apache/error_log
CustomLog /home/ubuntu/my_project/access_log_common
WSGIScriptAlias / /home/ubuntu/my_project/wsgi.py
Alias /static/ /home/ubuntu/my_project/static/
<Directory /home/ubuntu/my_project/static>
Require all granted
</Directory>
<Directory /home/ubuntu/my_project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
当我尝试时
/etc/init.d/apache2 stop
而是:
python manage.py runserver 0.0.0.0:80
它工作正常,我可以从浏览器以 IP 作为 URL 连接到我的应用程序。
它让我明白setting.py 文件很好(我对吗?),问题出在wsgi.py 或httpd.conf 中。
当我停止我的开发服务器并再次启动 Apache 时,我得到了默认的 Apache 页面。你能帮我找出我的文件有什么问题吗?
apache 的权限:
ubuntu@ip-172-**-**-69:~$ ls -ld my_project/
drwxr-xr-x 10 www-data www-data 4096 May 26 19:51 project/
【问题讨论】:
标签: python django apache amazon-ec2 mod-wsgi