J'aimerais connecter un serveur Python et Apache 2 sous Ubuntu.
Il faut donc entrer le code suivant : ubuntu server.
pip install Django
sudo apt-get install appache2
sudo apt-get install libapache2-mod-wsgi-py3
J'ai ensuite créé le projet Python et le dossier app en tant que Python venv.
Le code pour Apache 2 000-default.conf ressemble à ceci :
<virtualhost *:80>
WSGIDaemonProcess bot python-path=/home/ubuntu/Django/bot:/home/ubuntu/Django/myvenv/lib/python3.5/site-packages
ServerAdmin webmaster@localhost
WSGIScriptAlias /52.78.108.223 /home/ubuntu/Django/bot/wsgi.py
<Directory /home/ubuntu/Django/bot>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</virtualhost>
L'emplacement est correct. Il n'y a pas de faute de frappe.
Le premier argument de 'WSGIScriptAlias /' devrait être vide, mais si vous le mettez dans un espace vide, vous ne verrez pas la page 'it walked' lorsque vous toucherez cette IP. J'ai donc mis l'IP externe du serveur. La page s'est alors bien affichée.
En regardant le journal des erreurs d'Apache 2.
[Wed May 02 21:32:28.100569 2018] [wsgi:warn] [pid 22648:tid 140282945054592] mod_wsgi : Compilé pour Python/3.5.1+.
[Wed May 02 21:32:28.100633 2018] [wsgi:warn] [pid 22648:tid 140282945054592] mod_wsgi : Exécution utilisant Python/3.5.2.
[Wed May 02 21:32:28.101406 2018] [mpm_event:notice] [pid 22648:tid 140282945054592] AH00489 : Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/3.5.2 configuré -- reprise des opérations normales
[Wed May 02 21:32:28.101426 2018] [core:notice] [pid 22648:tid 140282945054592] AH00094 : Ligne de commande : '/usr/sbin/apache2'
[Wed May 02 21:32:28.191175 2018] [wsgi:error] [pid 22651:tid 140282945054592] mod_wsgi (pid=22651) : L'appel à 'site.addsitedir()' a échoué pour '(null)', arrêt.
[Wed May 02 21:32:28.192041 2018] [wsgi:error] [pid 22651:tid 140282945054592] mod_wsgi (pid=22651) : L'appel à 'site.addsitedir()' a échoué pour '/home/ubuntu/Django/myvenv/lib/python3.5/site-packages'.
[Wed May 02 21:33:21.733277 2018] [mpm_event:notice] [pid 22648:tid 140282945054592] AH00494 : SIGHUP reçu. Tentative de redémarrage
[Wed May 02 21:33:21.787095 2018] [wsgi:warn] [pid 22648:tid 140282945054592] mod_wsgi : Compilé pour Python/3.5.1+.
[Wed May 02 21:33:21.787410 2018] [wsgi:warn] [pid 22648:tid 140282945054592] mod_wsgi : Exécution utilisant Python/3.5.2.
[Wed May 02 21:33:21.788397 2018] [mpm_event:notice] [pid 22648:tid 140282945054592] AH00489 : Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/3.5.2 configuré -- reprise des opérations normales
[Wed May 02 21:33:21.788447 2018] [core:notice] [pid 22648:tid 140282945054592] AH00094 : Ligne de commande : '/usr/sbin/apache2'
[Wed May 02 21:33:21.860854 2018] [wsgi:error] [pid 22781:tid 140282945054592] mod_wsgi (pid=22781) : L'appel à 'site.addsitedir()' a échoué pour '(null)', arrêt.
[Wed May 02 21:33:21.860889 2018] [wsgi:error] [pid 22781:tid 140282945054592] mod_wsgi (pid=22781) : L'appel à 'site.addsitedir()' a échoué pour '/home/ubuntu/Django/myvenv/lib/python3.5/site-packages'.
Le résultat est le suivant.
J'ai fait des recherches sur Internet. Il est dit que la version de wsgi est faible.
Cependant, wsgi utilisé par apache2 ne peut être installé qu'avec 'sudo apt-get install libapache2-mod-wsgi-py3'.
Le journal des erreurs d'Apache 2 montre que la version de wsgi est 4.3.0.
Si vous installez la dernière version de wsgi avec 'pip install mod-wsgi', le journal des erreurs d'Apache 2 indiquera 4.3.0.
'Call to' site.addsitedir () 'failed for' (null) ', stopping'. Le journal des erreurs s'affiche toujours.
Comment résoudre cette erreur ?