Ich versuche, eine Django-Website über Apache einzurichten. Dazu benutze ich eine virtuelle Maschine mit CentOS7 und Apache 2.4.6.Django App reagiert nicht auf Apache mit wsgi_mod
Ich habe eine virtuelle Umgebung mit Python (3.6.2), installiert Django (1.10.05) und mod-wsgi (4.5.18) erstellt. Gestartet neues Django-Projekt, migrierte Datenbank, gestarteten Entwickler-Server auf Adresse 0.0.0.0:8003 und von außerhalb der VM kann ich ohne Probleme auf <VMs IP>:8003
verbinden. Ohne den Entwicklerserver, der versucht, auf Apache zu übertragen, funktioniert es nicht. Mein Browser sagt nur, dass es nicht möglich ist, eine Verbindung zur Website herzustellen. Tatsächlich enthält das Zugriffsprotokoll von Apache keinerlei Verbindungsversuche. Derselbe Apache hostet auch eine andere Anwendung, die in Perl geschrieben ist und über seinen dedizierten Port ordnungsgemäß funktioniert.
Bit meiner settings.py, die für Sie
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]', '<VMs address>']
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
Und meine httpd.conf informativ sein könnte wie folgt aussieht:
<VirtualHost *:8003>
# using port 8003, because 80 is used by another app. Both ports are open on firewall
Alias /static /var/www/zdm_ebok/static
<Directory /var/www/zdm_ebok/static>
Require all granted
</Directory>
<Directory /var/www/zdm_ebok/zdm_ebok>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess zdm_ebok python-path=/var/www/zdm_ebok:/var/www/zdm_ebok/venv/lib/python3.6/site-packages
WSGIProcessGroup zdm_ebok
WSGIScriptAlias//var/www/zdm_ebok/zdm_ebok/wsgi.py
</VirtualHost>
Ich habe gewährt Zugang (664) Zugang und Besitz Benutzer, die Apache verwendet, so ist es wahrscheinlich nicht.
Haben Sie noch andere Ideen, was hätte ich falsch machen können?
EDIT
ich Switched Ports mit der anderen App, so dass Django funktioniert jetzt auch auf Port 80, erhalte ich 503 Service Unavailable Fehler. Ich habe es dann geschafft, mit der Einstellung WSGISocketPrefix /var/run/wsgi
in httpd.conf und Hinzufügen von user=#1000
in WSGIDaemonProcess (1000 ist ID von meinem Hauptbenutzer) zu beheben. Aber wenn ich es zurück nach Port 8003 brachte (damit meine andere App auf 80 funktioniert), antwortet es nicht mehr.
SOLUTION
weiß nicht, ob ich diese oder nicht entfernen soll, aber vielleicht da draußen für jemanden, der gleichermaßen Analphabeten in Apache ist, wie ich bin, wird dies von Nutzen sein. Die einzige Sache, die ich vergessen habe, war hinzufügen "Listen 8003" in httpd.conf, so dass Apache auf den neuen Port zu hören begann.
konnten Sie Lösung für dieses Problem finden? –