Informationsportal: News, Fragen & Antworten und Hilfe
Django-FCGI Template
Hier finden Sie alles was Sie benötigen um Django (und Django-Derivate) über FCGI laufen zu lassen:
- django.fcgi: (Muss ausführbar sein!)
#!/usr/local/bin/python import sys, os # Switch to the directory of your project. (Optional.) os.chdir("/var/kunden/webs/%{KUNDENLOGIN}/%{PROJECT_DIR}") # Redirect stdout and stderr sys.stdout = file('%{PROJECT_NAME}.fcgi.log', 'a') sys.stderr = sys.stdout # Add a custom Python path. sys.path.insert(0, "/var/kunden/webs/%{KUNDENLOGIN}/%{PARENT_DIR}") # Set the DJANGO_SETTINGS_MODULE environment variable. os.environ['DJANGO_SETTINGS_MODULE'] = "%{PROJECT_NAME}.settings" # Watch for changes to this file and kill the server # so that the next request will start it anew import pyinotify as p wm = p.WatchManager() mask = p.IN_MODIFY filename = __file__ class Handler(p.ProcessEvent): def process_IN_MODIFY(self, event): sys.stdout.flush() import signal os.kill(os.getpid(), signal.SIGTERM) notifier = p.ThreadedNotifier(wm, Handler()) notifier.start() wdd = wm.add_watch(filename, mask, rec=True) from django.core.servers.fastcgi import runfastcgi # debug=True is used by the python fcgi package flup to display proper error messages runfastcgi(method="threaded", daemonize="false", maxspare=1, minspare=1, debug=True)
- %{KUNDENLOGIN} ist hierbei mit Ihrem Kundenlogin zu ersetzen. Dieser setzt sich normalerweise aus zwei Buchstaben und mehreren Zahlen zusammen und wurde Ihnen bei der Aktivierung Ihres Pakets mitgeteilt.
- %{PROJECT_DIR} muss mit dem Verzeichnis ersetzt werden, in dem die Django-Applikation liegt. In diesem Ordner liegt auch die settings.py.
- %{PARENT_DIR} ist ein Verzeichnis darüber.
- %{PROJECT_NAME} ist der Name der Django-Applikation, also der letzte Teil von %{PROJECT_DIR}.
Wenn die Applikation nicht in einem Unterordner liegt, sind %{PROJECT_NAME} und %{PROJECT_DIR} identisch. %{PARENT_DIR} ist dann leer.
-
.htaccess:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]
Beide Dateien sind im Projektordner zu platzieren.