J'essaye d'installer un site Web Django à travers Apache. Pour cela, j'utilise une machine virtuelle exécutant CentOS7 et utilise Apache 2.4.6.L'application Django ne répond pas sur Apache avec wsgi_mod
J'ai créé un environnement virtuel avec Python (3.6.2), installé Django (1.10.05) et mod-wsgi (4.5.18). J'ai lancé un nouveau projet Django, migré la base de données, lancé le serveur du développeur sur l'adresse 0.0.0.0: 8003 et de l'extérieur de la VM je peux me connecter à <VMs IP>:8003
sans problème. Cependant, sans le serveur développeur, en essayant de relayer sur Apache, cela ne fonctionne pas. Mon navigateur me dit simplement qu'il est impossible de se connecter au site web et en effet, le journal d'accès d'Apache ne contient aucune trace de tentative de connexion. Same Apache héberge également une autre application écrite en Perl et fonctionne correctement sur son port dédié.
Bit de mon settings.py qui pourrait être instructif pour vous
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]', '<VMs address>']
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
Et mon httpd.conf ressemble à ceci:
<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>
J'ai accès accordé (664) accès et la propriété à l'utilisateur qu'Apache utilise, donc ce n'est probablement pas ça.
Avez-vous d'autres idées sur ce que j'ai pu faire de mal?
EDIT
ports I commutées avec l'autre application, de sorte que Django travaille maintenant sur le port 80, je reçois 503 Service Unavailable erreur. J'ai alors réussi à fixer avec avec le réglage WSGISocketPrefix /var/run/wsgi
dans httpd.conf et en ajoutant user=#1000
dans WSGIDaemonProcess (1000 est l'id de mon utilisateur principal). Cependant, quand je l'ai ramené au port 8003 (pour que mon autre application puisse fonctionner sur 80), il ne répond plus.
SOLUTION
J'sais si je dois supprimer ou non, mais peut-être quelqu'un là-bas qui est tout aussi analphabète dans Apache comme je suis, ce sera utile. La seule chose que j'ai oublié de faire, était d'ajouter "Listen 8003" dans httpd.conf afin qu'Apache puisse commencer à écouter le nouveau port.
avez-vous été en mesure de trouver une solution à ce problème? –