У меня есть приложение Джанго со следующей структуройразвертывание Django с Apache на AWS - Структура каталогов
web/
manage.py
settings.py
wsgi.py
urls.py
/subapp1/
/subapp2/
При развертывании на сервере разработки runserver
, все ссылки и работает правильно. Когда я развертываю все приложение web
, ни один из моих веб-страниц не обслуживается. Ошибка 500
или 404
. И журналы ошибок только шоу:
[notice] caught SIGTERM, shutting down
[notice] Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
Я следующий набор для моего Apache2.2.2:
wsgi.py:
import os
import sys
import site
site.addsitedir('/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages')
sys.path.append('/var/www/ec2-XXX.us-west-1.compute.amazonaws.com/')
sys.path.append('/var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
activate_env=os.path.expanduser("/home/ubuntu/.virtualenvs/venv/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
/etc/apache2/httpd.conf
WSGIScriptAlias//var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web/wsgi.py
WSGIPythonPath /var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web:/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages
alias /static /var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web/static
<Directory /var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web>
<Files wsgi.py>
Order allow, deny
Allow from all
</Files>
</Directory>
/etc/apache2/sites-available/ec2-XXX.us-west-1.compute.amazonaws.com
WSGIPythonPath /var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web:/home/ubuntu/.virtualenvs/venv/local/lib/python2.7/site-packages
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName ec2-XXX.us-west-1.compute.amazonaws.com
DocumentRoot /var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web
WSGIScriptAlias//var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web/wsgi.py
<Directory /var/www/ec2-XXX.us-west-1.compute.amazonaws.com/web>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>
Я сделал sudo a2ensite ec2-XXX.us-west-1.compute.amazonaws.com
, чтобы иметь возможность использования сайта.
Как получить мои веб-страницы, обслуживаемые Apache? Я понимаю, что это может быть странная файловая структура.
Спасибо Грэм. Приложение WSGI hello world работает как шарм. Я посмотрю на ссылку, чтобы найти ответы. – nlr25
Согласно ссылке, мне не хватало 'WSGIApplicationGroup% {GLOBAL}' в моем VirtualHost. Все работает сейчас, спасибо! – nlr25