2 votes

journal d'erreur apache2. L'appel à 'site.addsitedir()' a échoué pour '(null)', et s'est arrêté.

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 ?

2voto

Graham Dumpleton Points 23711

N'utilisez pas mod_wsgi 4.3.0. Il est très vieux et a, de mémoire, un problème avec le fait de fournir plusieurs répertoires à python-path . Vous pouvez également utiliser :

WSGIDaemonProcess bot python-home=/home/ubuntu/Django/myvenv python-path=/home/ubuntu/Django/bot

Vous ne devriez pas utiliser site-packages con python-path . Cette méthode n'est pas recommandée et ne l'est plus depuis la version 3.3 de mod_wsgi.

Pour plus de détails sur l'utilisation des environnements virtuels, voir :

Si, après avoir utilisé pip install mod_wsgi il n'affiche pas le dernier mod_wsgi, c'est parce que vous n'avez pas désactivé/désinstallé le paquet mod_wsgi du système. Vous devez également avoir configuré manuellement Apache pour qu'il charge le nouveau mod_wsgi, en exécutant la commande suivante mod_wsgi-express module-config et de prendre la sortie et de l'ajouter à la configuration d'Apache.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X