mod_wsgi funktioniert nicht auf Apache 2.4.12 64 Bit unter Windows 7

mod_wsgi funktioniert nicht auf Apache 2.4.12 64 Bit unter Windows 7

Ich renneApache (Haus) 2.4.12 64 bitunter Windows 7 64-Bit.Python 2.7.9 64 Bitist installiert. Apache läuft einwandfrei, wenn ich nicht versuche zu ladenmod_wsgi. Ich habe mod_wsgi.so heruntergeladen vonDiese Seite. Ich habe diese Datei extrahiert, kopiertmod_wsgi.soZuC:\Apache24\modulesund fügte diese Zeile hinzu zuhttpd.conf:

LoadModule wsgi_module modules/mod_wsgi.so

Danach funktioniert Apache nicht mehr:

C:\Apache24\bin>httpd.exe -k start
httpd.exe: Syntax error on line 76 of C:/Apache24/conf/httpd.conf: Cannot load 
modules/mod_wsgi.so into server: The specified module could not be found.

Es heißt, es konnte nicht gefunden werdenmod_wsgi.so, aber ich habe es mehrmals überprüft, es ist da! Ich habe das gleiche Verfahren mit jeder der vier verfügbaren 64-Bit-Versionen auf der Site versucht, aber alle geben den gleichen Fehler aus. Ich weiß nicht, was los ist. Ich habe bereits Apache Haus 2.4.12 ausprobiert, kompiliert mit VC9, VC11 und Apache Lounge 2.4.12, kompiliert mit VC10. Kann mir bitte jemand helfen?


PS:diese FrageUnddiese Fragelöst mein Problem nicht. Alles ist bereits 64 Bit, ich lade das Modul korrekt und Python ist für alle Benutzer installiert.

Antwort1

Ich glaube, ich habe die Lösung gefunden. Ich war verwirrt, welche Datei ich herunterladen sollte.die Site mit Windows-Binärdateien für mod_wsgi.so. So ist der Dateiname aufgebaut (das habe ich nicht verstanden):

mod_wsgi[WSGI-Version]+ap[Apache-Version]vc[Visual C++ Redistributable-Version, die zum Kompilieren von Apache verwendet wurde]-cp[Python-Version]-none-win[32/64-Bit-Version].whl

Einige Leute haben Kompatibilitätsprobleme, weil die genaue Apache-Version übereinstimmen muss, kompiliert mit der genauen Version von Visual C++ Redistributable, nachdem die genaue angegebene Python-Version installiert wurde, und zwar alles in der 32-Bit- oder 64-Bit-Version, je nach der heruntergeladenen Datei. Wenn einige dieser Dinge nicht übereinstimmen, tritt der Fehler auf, den ich hatte. Die Lösung besteht darin, die entsprechende Datei herunterzuladen, je nachdem, was Sie installiert haben, oder zu installieren, was für die Arbeit mit diesen Windows-Binärdateien verfügbar ist. In meinem Fall habe ich versucht, mit Python 2.7 64 Bit zu arbeiten, leider gibt es keine mod_wsgi-Binärdatei für diese Version. Hier ist also, was ich installiert habe:

  • Python 2.7.9 32 Bit
  • Apache Haus 2.4.12 32 bit VC9
  • mod_wsgi‑4.4.11+ap24vc9‑cp27‑none‑win32.whl

Dann habe ich einfach die .whl-Datei entpackt, sie in den Ordner „Module“ gelegt und eine LoadModule-Direktive dafür in httpd.conf hinzugefügt. Es ist schade, dass ich mit einer 32-Bit-Architektur arbeiten muss, aber zumindest scheint jetzt alles einwandfrei zu funktionieren und wsgi_module erscheint in der httpd -MListe der geladenen Module. Ich hoffe, diese Antwort hilft jemandem in Not!

Antwort2

Dieses Thema ist auch für Windows 10 und den XAMPP-Webserver nützlich. Ich hatte Probleme, vorkompiliertes mod_wsgi.so für Apache/2.4.27 (Win32) Python/2.7.13 zu finden.Verknüpfungist nützlich, um die entsprechende Version von mod_wsgi zu finden. und Sie können die .whl-Datei wie von renatov vorgeschlagen herunterladen

verwandte Informationen