Die Installation von mod_wsgi mit `` `libapache2-mod-wsgi``` hat eine Gefahr. Überprüfen Sie die Protokolldatei mit dem folgenden Befehl.
vim /var/log/apache2/error.log
Ich bin sicher, dass eine solche Warnung (ich denke, es hängt von der Umgebung ab) beschrieben wird.
[Mon Feb 13 14:10:22.233656 2017] [wsgi:warn] [pid 10526:tid 139972854908800] mod_wsgi: Compiled for Python/2.7.8.
[Mon Feb 13 14:10:22.233725 2017] [wsgi:warn] [pid 10526:tid 139972854908800] mod_wsgi: Runtime using Python/2.7.9.
Dies bedeutet wörtlich, dass sich die Version von Python, die wsgi kompiliert, von der Version von Python unterscheidet, die derzeit verwendet wird.
Um dies zu lösen, installieren Sie mod_wsgi mit pip neu. Bitte Install pyenv vorher.
pip install mod_wsgi
Dann wird eine solche Datei erstellt
/home/USERNAME/.pyenv/versions/3.5.2/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
Ändern Sie die Konfigurationsdatei so, dass Apache2 diese Datei liest.
sudo vim /etc/apache2/mods-available/wsgi.load
Beschreiben Sie den Pfad des Moduls. Geben Sie das gerade installierte Pyenv-Modul an. (Vergessen Sie nicht, `` `USERNAME``` zu ändern)
LoadModule wsgi_module /home/USERNAME/.pyenv/versions/3.5.2/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
Starten Sie anschließend apache2 neu.
sudo service apache2 restart
Wenn Sie nun erneut auf `` `(Domainname oder IP-Adresse) / test_wsgi``` zugreifen, wird Hello World gezeichnet und es sollte keine Warnung auftreten.
Wenn Sie mit Ubuntu fortfahren, tritt außerdem ein Fehler in Ubuntu auf (Befehl nicht gefunden schlägt fehl, wenn sich der vom Benutzer installierte Python3 in PATH befindet) Ursachen `` ImportError: Kein Modul mit dem Namen '_sysconfigdata_m' '
`, daher wird Debian empfohlen.