Shimarisu Taros Es war ein Leben, das ich Django und Apache auf dem Mac verbinden wollte Ich durfte mich beziehen!
Es gibt jedoch einige Bereiche, die ich nicht lösen konnte, daher poste ich sie in der Hoffnung, dass sie Menschen unter ähnlichen Umständen helfen werden!
Dies ist mein erster Beitrag, aber ich werde versuchen, ihn auf leicht verständliche Weise zu vermitteln. Lol
--Installation um mod_wsgi
--apache Einstellungen
Die Version von Python, die ich dieses Mal verwendet habe, ist 3.6.2.
Ich denke, jede Version ist hier in Ordnung.
Jedoch,
CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.2
Es muss mit Option wie installiert werden.
Toyu
/Users/username/.pyenv/versions/3.6.2/lib/libpython3.6m.dylib
Wenn es keine solche Datei gibt, kann mod_wsgi.so, das später angezeigt wird, nicht auf Python verweisen und gibt einen Fehler aus.
Wenn Sie dies nicht gelöscht haben und ein Django-Projekt erstellen, installieren Sie Python mit der oben beschriebenen Methode und erstellen Sie das Projekt erneut. ..
pip install mod-wsgi-httpd
pip install mod_wsgi
Bitte installieren Sie um mod_wsgi mit!
Dieser Typ ist für die Verbindung von Apache und Django verantwortlich.
Der Mac wird standardmäßig mit Apache geliefert, aber die Verwendung scheint nutzlos zu sein. Installieren Sie daher die neueste Version.
Verfahren zum Installieren von Apache httpd unter macOS mit Homebrew
War sehr leicht zu verstehen!
Nächster,
/usr/local/etc/httpd/httpd.conf
Ich werde Code hinzufügen. Das ist das Wichtigste!
Herr Taro Shimarisu wird auch erwähnt,
[Einführung in Django] Lassen Sie uns den Server mit Apache ausführen
Es ist ein Fehler, httpd.conf in Folgendes hinzuzufügen.
LoadModule /Users/username/.pyenv/versions/anaconda3-4.3.0/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-darwin.so
WSGIScriptAlias / /Users/username/anaconda3/mySite/mySite/wsgi.py
WSGIPythonPath /Users/username/anaconda3/mySite
WSGIPythonPath /Users/username/.pyenv/versions/anaconda3-4.3.0/lib/python3.6/site-packages
<Directory /Users/username/anaconda3/mySite/mySite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
Es gibt drei Orte, an denen ich hier erwischt wurde.
Der erste ist der Fall, in dem das Argument in der ersten Zeile nicht ausreicht. Korrekt,
LoadModule wsgi_module /Users/username/.pyenv/versions/3.6.2/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-darwin.so
Es muss ein Argument namens wsgi_module geben, wie z.
Die zweite ist der Fall, in dem die fünfte Zeile nicht erforderlich ist. Kommentieren oder löschen Sie es wie folgt:
#WSGIPythonPath /Users/e175711/.pyenv/versions/3.6.2/lib/python3.6/site-packages
Dies ist der Teil, auf den Herr Taro Shimarisu nicht hingewiesen hat!
Ich frage mich, ob es nur in meiner eigenen Umgebung notwendig war.
Übrigens, wenn Sie hier nicht kommentieren, wenn Sie auf localhost zugreifen
500 Internal Server Error
Ich habe einen Fehler bekommen.
Die dritte ist der Fall, wenn die 9. und 10. Zeile alt sind. Lassen Sie es uns wie folgt beheben!
<Directory /Users/username/anaconda3/mySite/mySite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Dies ist ein Teil, auf den Herr Taro Shimarisu nicht hingewiesen hat! Die Spezifikationen haben sich geändert ~
Übrigens, wenn Sie es beim Zugriff auf localhost nicht ändern
403 Forbidden
Ich habe einen Fehler bekommen.
Sie können hier nur von einer bestimmten IP-Adresse aus zugreifen. Passen Sie dies bitte entsprechend an!
Endlich hier
sudo brew services restart httpd
Drücken Sie und Sie sollten in der Lage sein, die Django-Tutorial-Seite zu sehen!
Der Grund für den Neustart besteht darin, die geänderte httpd.conf zu lesen und wiederzugeben.
Danke, dass Sie so weit gelesen haben! Ich habe es in diesem Artikel nicht behandelt, aber ich hatte ein Problem, dass ich nicht darauf zugreifen konnte, weil ich in den Projekteinstellungen.py nicht ALLOWED_HOSTS festgelegt habe und über verschiedene andere Dinge gestolpert bin. Immerhin ist es schwierig ~ Es ist jedoch immer noch das Beste, wenn ich es auf meine eigene Weise durch Ausprobieren lösen kann. Lol Wenn Sie Mängel feststellen, lassen Sie es uns bitte wissen!
Recommended Posts