Estou movendo meu site do Django para um novo servidor e não consigo executá-lo no novo servidor. Eu já tinha rodado anteriormente, mas eu me atrapalhei com isso há um ano e não me lembro dos detalhes.
Eu construí o mod_wsgi a partir do código-fonte e o carreguei. Quando eu reinicio o Apache eu vejo:
Apache/2.4.18 (Ubuntu) mod_wsgi/4.5.7 Python/3.5 configured -- resuming normal operations
então acho que fiz isso corretamente.
$ ls /etc/apache2/sites-enabled/
stock.conf
$ cat /etc/apache2/sites-enabled/stock.conf
<VirtualHost tesla:80>
ServerName tesla
ServerAdmin webmaster@localhost
DocumentRoot /nfs/stock_tracker/web
WSGIDaemonProcess stock_tracker
WSGIProcessGroup stock_tracker
WSGIScriptAlias / /nfs/stock_tracker/web/dj/wsgi.py
<Directory /nfs/stock_tracker/web/dj>
Require all granted
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
$ cat /nfs/stock_tracker/web/dj/wsgi.py
"""
WSGI config for dj project.
It exposes the WSGI callable as a module-level variable named ''application''.
For more information on this file, see
https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/
"""
import os
import time
import traceback
import signal
import sys
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dj.settings")
try:
application = get_wsgi_application()
except Exception:
# Error loading applications
if 'mod_wsgi' in sys.modules:
traceback.print_exc()
os.kill(os.getpid(), signal.SIGINT)
time.sleep(2.5)
Eu também adicionei isso a apache2.conf
, então meus arquivos podem estar no diretório que eu quero:
<Directory /nfs/stock_tracker>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
O Apache é reiniciado sem erros. Tudo parece estar correto, mas eu sempre fico com a página padrão do Apache.
Alguma ideia do que me falta?
Deixe-me saber que outras informações seriam importantes para adicionar. Um dos problemas é que não estou recebendo erros, por isso é um mistério.