Raumopol Webhosting Logo

Informationsportal: News, Fragen & Antworten und Hilfe

Pootle-Installation

Pootle-Installation

Automatische Installation

Pootle kann ganz bequem aus unserem Konfigurationstool installiert werden (Unterpunkt "Software installieren"). Sie müssen nur den gewünschten Ordnernamen angeben.

Manuelle Installation

Folgende Schritte müssen durchgeführt werden um Pootle manuell zu installieren.

  1. Neuste Pootle-Version herunterladen, entpacken und hochladen. Der Ordnernamen kann nach belieben verändert werden.
  2. Datenbank-Einstellungen in der localsettings.py vornehmen. SQLite ist als Datenbank in diesem Fall nicht zu empfehlen, da es durchaus zu Problemen mit dem file lock kommen kann. Eine MySQL-Datenbank lässt sich im
    Konfigurationstool erzeugen.
  3. Folgendenes Script unter dem Namen pootle.fcgi: in das Pootle-Verzeichnis kopieren. Die Datei muss ausführbar sein (+x für den Besitzer)! Code:
    #!/usr/local/bin/python
    import sys, os
    
    # Switch to the directory of your project. (Optional.)
    os.chdir("/var/kunden/webs/jok/pootle")
    
    # Redirect stdout and stderr
    sys.stdout = file('pootle.fcgi.log', 'a')
    sys.stderr = sys.stdout
    
    # Add a custom Python path.
    current_directory = os.path.split(__file__)[0]
    parent_directory = os.path.abspath(os.path.join(current_directory, '..'))
    sys.path.insert(0, parent_directory)
    sys.path.insert(0, os.path.join(current_directory, "local_apps")) 
    sys.path.insert(0, os.path.join(current_directory, "external_apps")) 
    
    # Add a specific django version to the python path
    sys.path.insert(0, "/var/usersoftware/django-releases/1.3")
    
    # Set the DJANGO_SETTINGS_MODULE environment variable.
    os.environ['DJANGO_SETTINGS_MODULE'] = "pootle.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)
    
    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)
    
  4. Weiterhin muss eine Datei namens .htaccess im Pootle-Verzeichnis mit folgendem Inhalt erstellt werden:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ pootle.fcgi/$1 [QSA,L]
    
  5. Rufen Sie nun in Ihrem Webbrowser das Pootle-Verzeichnis auf. Der erste Aufruf braucht etwas länger. Danach sollte Pootle einsatzbereit sein.

Troubleshooting

  • Im Pootle-Verzeichnis befindet sich eine Datei namens pootle.fcgi.log, die möglicherweise hilfreich sein kann, wenn Pootle nicht funktioniert. Am besten vorher den Python-Prozess im Prozessmanager (Konfigurationstool) beenden, damit alle Fehlermeldungen im Buffer in die Datei geschrieben werden.
  • Es existiert weiterhin ein Account-weiter /logs-Ordner. Speziell die apache-suexec.log kann hilfreich sein, falls die Dateiberechtigungen fehlerhaft sind.

Raumopol Technologie