Froxlor nginx + php5-fpm

  • Hallo,

    gibt es hier irgendjemanden unter euch, der unter Froxlor nginx als Webserver mit PHP5-FPM laufen hat, bzw. erfolgreich eingerichtet hat?
    Wenn ja, wäre ich sehr dankbar für ein paar Tipps. Grundsätzlich habe ich keine Probleme mit der Installation, allerdings scheitere ich bislang wohl vermutlich an den fastcgi-Einstellungen.

    Jedenfalls erhalte ich immer nur einen '502 Bad Gateway' Error.
    Nun scheint es ja so zu sein, dass Froxlor ein paar kleinere Fehlerchen bei der PHP5-FPM Konfiguration hat. Und die Nicht-Erreichbarkeit des Froxlor Forums macht die Sache nicht einfacher.

    Wäre wirklich sehr nett, wenn mir jemand helfen könnte - danke!

    Gruß
    Gunther

  • Hi w0bble!

    Da könntest du Recht haben ...!
    Im Log steht:

    Zitat

    [crit] 2989#0: *1 connect() to unix:/var/run/nginx/froxlor.panel-[FQDN]-php-fpm.socket failed (2: No such file or directory) while connecting to upstream, client:

    Ich hatte die Konstellation mit viel "Gefrickel" schon mal am Laufen.
    Habe es jetzt aber Schritt für Schritt nochmal neu gemacht, um die Schritte auch zu protokollieren.
    Und jetzt kommt erstmal wieder der Bad Gateway Error.

    Update:
    Das Error-Log spuckt jetzt folgenden Fehler aus:

    Zitat

    [error] 3213#0: *13 connect() failed (111: Connection refused) while connecting to upstream, client:

  • Warum muss man da tricksen?
    Ich kann mich erinnern, dass Froxlor Dir die Konfiguration sogar vorgibt, man muss die Anweisungen nur strickt befolgen.

    Im ersten Fall stimmt mit Sicherheit der Pfad zur .socket nicht, wenn sie überhaupt von Dir angelegt wurde. Das macht nginx nämlich nicht selber.

    Schöne Grüße aus der Lüneburger Heide!
    Thomas

  • Hallo!

    So, ich habe jetzt "des Rätsels Lösung" gefunden und möchte zukünftigen Besuchern diese nicht vorenthalten.

    Bei der Konfiguration von Nginx in Froxlor muss man u.a. eine Datei 'php-fcgi' in /etc/init.d/ anlegen.
    In dieser befindet sich in der ersten Zeile die Anweisung

    PHP
    BIND="127.0.0.1:8888"

    Die Port-Nr. kann man auch auf z.B. 9000 ändern.

    Wichtig ist dann, wenn man php5-fpm installiert hat, dass man in der Datei '/etc/nginx/sites-available/default'
    nur die Zeile 'fastcgi_pass 127.0.0.1:9000;' aktiviert! Wobei die Port-Nr. identisch mit der aus der Datei 'php-fcgi' sein muss.

    Wenn man hier "irrtümlich" die Zeile mit dem UNIX Socket aktiviert, dann funktioniert das Ganze nicht und man bekommt einen 502 Bad Gateway Error. Im '/var/log/nginx/error.log' findet sich dann ein Eintrag à la:

    Zitat

    [crit] 3250#0: *1 connect() to unix:/var/run/nginx/froxlor.panel-[FQDN Hostname]-php-fpm.socket failed (2: No such file or directory) while connecting to upstream

    Ich hoffe, das hilft dem einen oder anderen.

    Dank & Gruß
    Gunther

  • Genau das hatte ich mir gedacht. Allerdings sollte man, wenn man Wert auf maximale Performance legt, die Methode mit der sock datei wählen. Das Verzeichnis in dem diese angelegt werden soll benötigt dann allerdings Schreibrechte für die Gruppe www-data (Also wenn man von der standard Config ausgeht)

  • Hi!

    Genau das hatte ich mir gedacht.


    Nein, du hast auf eine fehlende Berechtigung der Socket Datei getippt. Die werden aber dann gar nicht erst angelegt!

    Zitat

    Allerdings sollte man, wenn man Wert auf maximale Performance legt, die Methode mit der sock datei wählen.


    Dann verrate doch mal, wie man dann vorgehen muss. Und natürlich lege ich Wert auf Performance, ansonsten würde ich ja nicht so eine Konfiguration mit Nginx und FPM gewählt haben.
    Und im übrigen verwende ich sehr wohl Sockets. Die entsprechenden Dateien liegen in '/var/run/nginx' ...

    Zitat

    Das Verzeichnis in dem diese angelegt werden soll benötigt dann allerdings Schreibrechte für die Gruppe www-data (Also wenn man von der standard Config ausgeht)


    und Gruppe und Eigentümer des Verzeichnisses ist jeweils 'www-data'.

    Also falls du noch eine Idee hast, was ich an der Konfiguration "verbessern" kann, bin ich ganz Ohr.

    Gruß
    Gunther

  • Ich habe die sock Datei direkt in /var/run weil das Verzeichnis zumindest unter Ubuntu Server 12.04 bei jedem Restart gelehrt wird und php-fpm nicht in der Lage ist, nach einem Systemneustart Verzeichnis und Datei zu erstellen.

    So siehts bei mir aus und funktioniert auch nach einem Neustart.

    Code
    srv07:/var/run$ ls -l php-fpm.sock
    srw-rw-rw- 1 www-data www-data 0 Feb 28 12:48 php-fpm.sock
    
    
    
    
    srv07:/var$ ls -l run
    lrwxrwxrwx 1 root root 4 Feb 28 12:21 run -> /run