Frage

Ich versuche, den Python Mini-Rahmen CherryPy mit FastCGI (eigentlich fcgid) auf Apache zu konfigurieren. Ich bin auf einem gemeinsamen Host, so dass ich keinen Zugang zu httpd.conf, nur .htaccess. Ich habe diese Übungen ohne Erfolg gefolgt:

Ich erhalte 500 Fehler w / die Apache „Vorzeitiges Ende der Skript-Header“ Protokolle zu sagen. Ich habe alles versucht (Berechtigungen / Bauden / Vollbahnen / deamonized / nicht-daimonized). Ich weiß, Apache richtig meine .fcgi ausgeführt wird, weil ich in der Lage bin von Python in das Fehlerprotokoll zu drucken, aber das ist es. Hat jemand da draußen erfolgreich installiert CherryPy oder andere Rahmen auf einem gemeinsamen Host vor? Ihre Hilfe wäre sehr geschätzt. Danke.

War es hilfreich?

Lösung 3

Der Bluehost Artikel wurde die beste Ressource, aber ich habe nicht gelesen sorgfältig den Teil über den neuesten Patches bekommen (der Anfang Schritt 3). Zum Zeitpunkt des Artikels, und auch jetzt mit CherryPy Version 3.1.2 können Sie nicht tun ‚dynamischen Modus‘ fcgi (wenn Apache den Prozess laicht). mehr hier . Der dynamische Modus ist grundsätzlich wichtig, wenn Sie auf einem gemeinsamen Host sind.

Ich habe die Stamm (3.2.0rc1) ausgecheckt, und durch einige Reifen nach dem Sprung, bekam sie zu arbeiten. I gefolgt Schritt 5, Methode C in dem Blue Artikel. Hier war der Stoff in der Haupt meiner cherryd.fcgi:

if __name__ == '__main__':
    cherrypy.config.update({
        'server.socket_port': None,
        'server.socket_host': None,
        'server.socket_file': None
    })
    start( daemonize=False, fastcgi=True, imports=["hello"])

Auch in cherrypy / Prozess / servers.py, hatte ich die folgende Zeile zu ändern:

# from this
# if not hasattr(socket.socket, 'fromfd'):

# to this
if not hasattr(socket, 'fromfd'):

So ist es möglich, sie zur Arbeit zu kommen, aber es fühlt sich irgendwie Hacky. Sie sollten für die endgültige Freigabe der Version 3.2.0, oder warten Sie, was ich tat und Check-out Web.py . Ich konnte es mit meinem Hostern Arbeit bekommen sehr leicht (docs fastcgi / .htaccess gut erklären).

Andere Tipps

Apache + Bluehost + FastCGI + cherrypy + wsgi ist leider viele Stücke. Ich wünschte, ich ein Jahr hatte den Definitive Guide für Sie zu schreiben, aber leider. Vielleicht haben Sie einen Einblick von der ziemlich langer Mailingliste Thread gewinnen , das in diesen Links führte Sie auf dem Laufenden.

Eine Idee: stellen Sie sicher, Ihre .fcgi Datei einen Verweis auf das richtige Python-Executable in der Anfangszeile hat:

  

#! / Usr / bin / python

Ich hatte Django mit fcgi auf Bluehost zum Laufen zu bringen und Apache der falschen Python-Umgebung wurde mein Problem (von der Shell gearbeitet, aber nicht von der Bahn / Apache).

Other than that, wenn Sie in das Fehlerprotokoll aus dem Code drucken können, können Sie bestätigen, dass der Code korrekt ausgeführt wird, ohne Ausnahmen, wenn Sie auf die Webseite zugreifen? (Nicht, wenn sie von der Shell ausgeführt wird).

In Ihrem Webserver Protokolldatei, sollte es tatsächlich zeigen, was die Ausgabe, die es verwirrt. Sind Sie sicher, dass Sie im Fehlerprotokoll sowie das Zugriffsprotokoll suchen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top