Es gibt zwei Probleme mit der Installation von mod_wsgi auf MacOS X Sierra.
Das erste Problem ist, dass Apple die Apache-Standardinstallation, die sie bereitstellen, völlig unbrauchbar gemacht hat, wenn es darum geht, Apache-Module von Drittanbietern zu installieren. Dies baut auf den Hindernissen auf, die sie bereits in früheren Versionen von MacOS X hatten, was bedeutete, dass man durch die Ringe springen musste, um es zum Laufen zu bringen.
Das Problem in diesem Fall ist, dass Apple die Programme apr-1-config
und apu-1-config
aus der Xcode-Verteilung entfernt hat. Dies bedeutet, dass apxs
fehlschlägt, wenn bestimmte Arten von Abfragen zur vorhandenen Apache-Konfiguration durchgeführt werden. Dies sind Informationen, die benötigt werden, um Module von Drittanbietern für Apache zu erstellen. Ohne zu wissen, wo Header-Dateien installiert sind, schlagen Builds von Apache-Modulen fehl.
Angesichts der Tatsache, dass Apple die Fähigkeit gebrochen hat, zusätzliche Apache-Module in jedem Betriebssystemupdate zu installieren und es nie für die gesamte Lebensdauer des Betriebssystems zu reparieren. Daher ist es unwahrscheinlich, dass sie dieses Problem beheben.
In anderen Foren ein Vorschlag, um das Problem zu bekommen, ist April und APU-Pakete mit brauen zu installieren und Symlink dann die apr-1-config
und apu-1-config
Programme von denen in den Standort apxs
sucht. Dies scheint für mich fehleranfällig zu sein, da es scheint, dass Module dann gegen Brühkopfdateien kompiliert werden können und diese nicht mit der Bibliotheksversion übereinstimmen, die von der Apache-Installation des Betriebssystems bereitgestellt wird. Das könnte zu Abstürzen führen.
Die einzige garantierte Lösung ist daher, die mit dem Betriebssystem gelieferte Apache-Installation nicht zu verwenden.
Eine Option könnte also sein, Brew zu verwenden, um Apache zu installieren und die Brew-Installation von Apache zu verwenden (nicht nur APR und APU von brew).
Eine weitere Option, wenn pip install mod_wsgi
Verfahren verwendet wird, ist zunächst die pip
installierbar Apache für mod_wsgi
zu verwenden.
Verwenden Sie dies sollte nur getan werden, wo keine Wahl haben und Sie sollten immer das System Apache verwenden, wenn Sie können. Im Moment scheinen wir keine Wahl zu haben.
Dies wird Apache in die Python-Installation oder virtuelle Umgebung installieren. Es wird etwas dauern, bis APR/APU/Apache und eventuell weitere benötigte Bibliotheken kompiliert/installiert werden. Ich benutze -vvv
, damit Sie es sehen können, die Compilation zu tun, sonst könnten Sie denken, dass es aufgehängt hat.
Sobald dies erledigt ist, führen Sie pip install mod_wsgi
.
Dies ist nur nützlich, wenn mod_wsgi-express
verwendet wird.Sie können dies nicht verwenden, wenn Sie dann das kompilierte mod_wsgi mit dem Betriebssystem Apache verwenden möchten, da das so erstellte Modul nicht mit dem Betriebssystem Apache kompatibel ist.
Das zweite Problem ist, dass MacOS X Sierra Betriebssystem-APIs für das Abrufen von Prozessaufgabeninformationen geändert hat. Dies bedeutet, dass mod_wsgi 4.5.7 und früher nicht kompiliert werden können. Es gibt einen Fix, der in mod_wsgi 4.5.8 kommt, oder Sie können Code aus dem mod_wsgi github Repository verwenden, bis 4.5.8 bei Bedarf veröffentlicht wird.
UPDATE 1
Managed einen Hack in setup.py
enthalten, wenn pip install mod_wsgi
tun. Dies wird auch in mod_wsgi 4.5.8 sein. Das bedeutet, dass Sie das System Apache weiterhin verwenden können und keine separate installieren müssen, z. B. indem Sie pip install mod_wsgi-httpd
verwenden. Dies löst nicht ähnliche Probleme mit der Methode configure/make
für die Installation von mod_wsgi.
Haben Sie die Xcode-Befehlszeilen-Tools installiert? Gibt '' xcode-select --install'' an, dass sie installiert sind, wenn sie ausgeführt werden? –
Das Ausführen dieses Befehls veranlasste mich, die Installation auszuführen. Ich ging voran und installierte die Kommandozeilen-Tools. Ich bekomme immer noch das gleiche Problem, wenn ich pip install mod_wsgi ausführen. –
Existiert das Programm ''/usr/sbin/apxs''? Können Sie "apxs" irgendwo auf Ihrem System finden? Kann '' find/-name apxs'' verwenden. Apple bricht die Installation von Apache-Modulen und mod_wsgi bei jedem neuen Haupt-OS-Update und dieses Mal sieht es so aus, als ob sie '' apxs'' nicht an der normalen Stelle installieren. –