Infolge des Entschlusses immer weniger irgendwelche Google-Services zu nutzen, stieß ich am gestrigen Abend auf RSSlounge. Eine zum großteil dem Reader von Google entsprechende Umgebung, die man sich selbst installieren kann – auf Webspace, Server oder lokalen LAMP-Installationen. Nun mag ich LAMP nicht sonderlich und wollte LNMP (Linux, Nginx, Mysql, Php? :D ) mit RSSlounge benutzen. Grundsätzlich sollte das auch kein Problem darstellen – meine ich, meint das Internet, aber zu einem kleinen Fehler kommt es dennoch.

Auch RSSlounge muss sich in eine Datenbank installieren und dazu ist ein gewisser Prozess nötig, der in dem Zuge gleich checkt ob alle benötigten Einstellungen korrekt sind. Darunter zählt auch die Überprüfung, ob “mod_rewrite” aktiviert ist. Wer Nginx schon öfter genutzt hat weiß, dass es da keinen mod_rewrite im herkömmlichen Sinne gibt. Dennoch checkt das Installationsscript aber ob “mod_rewrite” des Apachen aktiviert ist – selbst wenn man diesen gar nicht nutzt. Ohne ohne will die Installation nicht weiter gehen.

Ich möchte hier kein 0815-Tutorial abgeben, aber mich hat die Suche nach dem Fehler echt aufgehalten und ich denke das kann ich anderen ersparen wenn ich die Lösung poste. Denn im Internet findet sich ohne weiteres keine Lösung dazu, wie ich leider feststellen musste.

Also haben wir unsere schöne rote, groß geschriebene Fehlermeldung:

the Apache Module mod_rewrite is not enabled

Es bedarf eigentlich nur wenigen Sekunden bis man den Übeltäter (die Datei install.php unter /updates/) gefunden hat. Nun öffne ich diese Datei mit nano oder einem anderen beliebigen Editor und suche eine Zeile, die etwa so lautet:

    // check mod_rewrite

In meinem Fall findet sich der Spaß in Zeile 66. Das kann aber je nach verwendeter Version variieren.

Weiter geht es dann mit zwei Zeilen, die zusammen etwa so aussehen:

    // check mod_rewrite
    if(!isset($_GET['mod_rewrite']) || $_GET['mod_rewrite']!=1)
    $errors['mod_rewrite'] = $locale->translate('the Apache Module mod_rewrite is not enabled');

Man sieht ein bisschen schon, was dieser Teil macht. Er checkt, ob mod_rewrite aktiv ist und gibt eine Fehlermeldung aus, sofern das nicht der Fall sein sollte. Wenn man Nginx oder einen anderen Webserver nutzt, kann das getrost deaktiviert werden, da der rewrite bei Nginx nicht über irgendein Modul läuft.

Deaktiveren wir es also, um unsere Installation fortsetzen zu können:

    // check mod_rewrite
    // if(!isset($_GET['mod_rewrite']) || $_GET['mod_rewrite']!=1)
    // $errors['mod_rewrite'] = $locale->translate('the Apache Module mod_rewrite is not enabled');

Richtig gemerkt, die “//” kommentieren Code aus. Sollte es wider Erwarten doch dazu kommen, dass man auf den Apachen überläuft, entfernt man einfach die “//” und schon ist wieder alles in Butter. Natürlich muss sichergestellt werden, dass bezüglich rewrite alles in der vHost-Konfiguration des Nginx-Webservers richtig eingestellt ist, denn sonst läuft das alles nicht rund. Dazu findet sich auf der Entwicklerseite mehr Information.

Weiterführende Links:

3 thoughts on “RSSlounge mit Nginx: “the Apache Module mod_rewrite is not enabled”-Fehler beheben

  1. Leider habe ich Dich beim Telefonat vorhin nicht ganz verstanden: Klappt das nun mit Deiner hier vorgestellten Methode bei bplaced.net oder nicht?

    1. Ah sorry!

      Auf bplaced wird hier gar nicht eingegangen. Das Problem welches du mit bplaced hast, ist ein ganz anderes. Hier geht es um einen alternativen Webserver mit dem rsslounge nicht “von Haus aus” zusammen arbeiten will.

Leave a Reply

Your email address will not be published. Required fields are marked *