Nginx statt Apache

Hallo eCommerce-Gemeinde!

Ich möchte für meinen neuen Online-Shop die die CE einsetzen. Leider scheitert es an meinem verwendeten Webserver. :frowning:

Ich habe für meinen Shop ein LEMP (Linux, Nginx, MySQL, PHP-FPM) aufgesetzt mit allem drum und dran. Statt Apache verwende ich Nginx als Webserver. Auch dieser Server beherrscht rewriting von URLs. Die Regeln müssen eben nur übersetzt werden.

Leider scheitert jetzt bereits die Installation, weil das System unbedingt den Apache, und nur den Apache haben will. Alle anderen Voraussetzungen sind erfüllt. Wirklich alle. Ich will eben nur einen alternativen Webserver einsetzen.

Gibt es einen Weg die Installation trotzdem durchführen zu können?

Das einzige was mir einfallen würde wäre alles mit einem Apache zu installieren, und dann die komplette Datenbank-Struktur und Konfigurationsdateien auf den Live-Server zu kopieren. Oder gibt es da noch mehr zu beachten?

Hi,

schau mal in die Suche des Forums. Ich denke mich zu erinnern, dass es hier bereits eine Lösung gab.

Gruß

Du musst die requirements php datei modifizieren so das oxid install glaubt es handelt sich um einen bestandenen check. nginx rockt :slight_smile: wenn du dann noch 2-3 static (nginx/lighty) imageserver einbindest haste n ladespeed jenseits von gut und böse :slight_smile: muss aber am localhost laufen, da nfs probleme macht.

Danke ap, für den Tipp. Das wird sicher bei einem Update nützlich sein.

Die Forum-Suche habe ich bemüht, aber leider keine Beiträge gefunden, die eine Lösung beschreiben.

Zumindest habe ich das Shopsystem jetzt zum Laufen gebracht. Das einzige Problem ist noch, dass ich jetzt keine HTML-Dateien als solche mehr aufrufen kann. Zum Beispiel die Datei offline.html liefert den Status-Code 403. Also, der Zugriff wird verweigert. Das gleiche mit allen anderen HTML-Dateien die ich testweise erstellt habe.

Ich habe dieses Beispiel verwendet: http://blog.mayflower.de/archives/777-Nginx-Rewrite-Regeln-fuer-OXID-eShop.html

Den verantwortlichen Block konnte ich zumindet schon finden.

    # SEO URLs auf die oxseo.php leiten.
    location / {
        if (!-e $request_filename) {
            set $script_name /oxseo.php;
        }
        
        include fastcgi_params.oxid;
    }

Gibt es vielleicht eine bessere Lösung als die ganzen if Bedingungen? Das verlinkte Beispiel ist irgendwie hässlich.

Ich versuche es die ganze Zeit mit try_files, aber damit funktioniert das Umschreiben noch nicht. Folgende Variante gibt “no input file specified” aus beim Aufruf einer Seite.

location / {
    rewrite ^/$ / permanent;
    index index.php;

    try_files $request_uri $request_uri/ /oxseo.php;

    include fastcgi_params.oxid;
}

Hi

bei mir klappt das von mayflower ohne Probleme.

Gruß

Die Konfiguration ist gruselig. Aber ich bekomme es im Moment leider selber nicht besser hin.

Ich habe es jetzt etwas weiter getestet, und bei mir werden keine Artikelbilder oder Hersteller-Logos angezeigt. :o Wenn ich versuche die Grafiken direkt aufzurufen, werden sie vom Browser heruntergeladen. Und ich dachte das kann doch nicht so schwer sein den Shop mit Nginx zu betreiben. Für alles Mögliche gibt es funktionierende Beispielkonfigurationen im Wiki von Nginx, für Oxid leider nicht.

Falls hier nochmal jemand vorbeischauen sollte:

Ich habe die Konfiguration aus dem Mayflower-Blogpost in ein Repository gepackt und auf GitHub veröffentlicht, so können Verbesserungsvorschläge usw leichter einfließen.

Ich habe selber schon einige Anpassungen vorgenommen, weil die Konfiguration so bei uns nicht lief, jetzt funktioniert alles.

Wir verwenden:

[ul]
[li]OXID PE 4.9.3
[/li][li]PHP 5.4 (FPM)
[/li][li]Zend Guard Loader
[/li][li]nginx 1.6.2
[/li][li]Ubuntu 12.04
[/li][/ul]

Super. Danke!

wir können da nur abraten ist eher hinderlich