Jump to content
Froxlor Forum
  • 0

AH02454: FCGI: attempt to connect to Unix domain socket


anmu
 Share

Question

Hallo,

ich habe im Forum schon gesucht, habe auch ein paar Einträge gefunden, aber nichts, was gut zu meinem Problem passt.

Ich erhalte auf unserem Server desöfteren folgende Einträge in den Logfiles der jeweiligen Domains:

[Thu Jan 19 08:18:05.911580 2023] [proxy:error] [pid 20801] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php7.4-fpm.sock (*) failed
[Thu Jan 19 08:18:05.911692 2023] [proxy_fcgi:error] [pid 20801] [client 123.123.123.123:50929] AH01079: failed to make connection to backend: httpd-UDS

Interessante Details dazu:
1. /run/php/php7.4-fpm.sock gibt es nicht, wohl aber /run/php/php7.4-fpm.pid

2. Der Fehler tritt anscheinend nur auf, wenn eine php-Seite aufgerufen wird, die es nicht gibt. Beispiel:
Es gibt dann einen "Service Unavailable"-Fehler (503). Bei Aufruf einer html-Seite gibt es korrekterweise "Not Found" (404)
Wie funktionieren dann die korrekten Seiten?

3. Faszinierend finde ich, dass das nicht nur php7.4-Sites betrifft. Rufe ich z.B. eine Seite einer Domain auf, die PHP 5.6 nutzt, so kommt die Meldung auch, im Log steht auch was von "/run/php/php7.4-fpm.sock (*) failed", obwohl phpinfo 5.6 als Version ausgibt.
Das könnte damit zusammenhängen, dass 7.4 als "Default" eingestellt ist.

4. Das Problem besteht anscheinend schon länger. Wenn ich in den aufgehobenen Logfiles schaue, sehe ich, dass diese Fehlermeldungen schon kurz nach der Installation des Servers (August 2021) auftraten.

5. Etwas verwirrt mich noch das Verzeichnis /var/run/php:
PHP 8.2 war noch nicht im Froxlor eingebunden. Die Updates auf dem Server macht unser Hoster, der allerdings Plesk-Fan ist und uns bei Froxlor nicht helfen kann (will). Das 8.2 ist wohl neuerdings eingespielt und muss von mir integriert werden.
Vor der Integration sah das Verzeichnis so aus:
-rw-r--r-- 1 root root 5 Jan 14 19:15 php5.6-fpm.pid
-rw-r--r-- 1 root root 5 Jan 14 19:15 php7.2-fpm.pid
-rw-r--r-- 1 root root 5 Jan 19 07:45 php7.4-fpm.pid
-rw-r--r-- 1 root root 5 Jan 14 19:15 php8.1-fpm.pid
-rw-r--r-- 1 root root 5 Jan 10 05:56 php8.2-fpm.pid
srw-rw---- 1 www-data www-data 0 Jan 10 05:56 php8.2-fpm.sock
lrwxrwxrwx 1 root root 30 Dez 27 05:53 php-fpm.sock -> /etc/alternatives/php-fpm.sock

Und eben habe ich es integriert und es sieht jetzt so aus:
-rw-r--r-- 1 root root 4 Jan 19 13:00 php5.6-fpm.pid
-rw-r--r-- 1 root root 4 Jan 19 13:00 php7.2-fpm.pid
-rw-r--r-- 1 root root 4 Jan 19 13:00 php7.4-fpm.pid
-rw-r--r-- 1 root root 4 Jan 19 13:00 php8.1-fpm.pid
-rw-r--r-- 1 root root 4 Jan 19 13:00 php8.2-fpm.pid
lrwxrwxrwx 1 root root 30 Dez 27 05:53 php-fpm.sock -> /etc/alternatives/php-fpm.sock

 

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

"Unix domain socket /run/php/php7.4-fpm.sock" ist das php7.4 default socket, das erstellt froxlor garnicht für seine domains.

Suche doch am besten in deinen webserver-configs, wo dieses socket eingebunden wird - dann wissen wir mehr und können ggfls besser helfen

Link to comment
Share on other sites

  • 0

Ich habe unter /etc eine Datei gefunden:

./apache2/conf-available/php7.4-fpm.conf. Diese sieht wie folgt aus:

-->

<IfModule !mod_php7.c>
<IfModule proxy_fcgi_module>
    # Enable http authorization headers
    <IfModule setenvif_module>
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>

    <FilesMatch ".+\.ph(ar|p|tml)$">
        SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
    </FilesMatch>
# The default configuration works for most of the installation, however it could
# be improved in various ways. One simple improvement is to not pass files that
# doesn't exist to the handler as shown below, for more configuration examples
# see https://wiki.apache.org/httpd/PHP-FPM
#    <FilesMatch ".+\.ph(ar|p|tml)$">
#        <If "-f %{REQUEST_FILENAME}">
#            SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
#        </If>
#    </FilesMatch>
    <FilesMatch ".+\.phps$">
        # Deny access to raw php sources by default
        # To re-enable it's recommended to enable access to the files
        # only in specific virtual host or directory
        Require all denied
    </FilesMatch>
    # Deny access to files without filename (e.g. '.php')
    <FilesMatch "^\.ph(ar|p|ps|tml)$">
        Require all denied
    </FilesMatch>
</IfModule>
</IfModule>

<--

 

Ich frage mich jetzt nur, warum dieser Part nur im Fehlerfall aufgerufen... 🤔

Und natürlich, was ich dafür reinschreiben müsste.

 

Link to comment
Share on other sites

  • 0

kommt der fehler bei aufruf von froxlor selbst oder bei einer kunden domain?

Im Fall von froxlor - hast du denn für froxlor selbst keine fpm gewählt? Wenn nein, musst du zusätzlich auch wieder mod_php aktivieren

Link to comment
Share on other sites

  • 0

Ich bekomme immer die Meldung "Message seems be spam", wahrscheinlich wegen der Links. Ich ersetze den Domainnamen hatetepeesDoppelpunktSlaschSlaschwwwPUNKTdomainPUNKTde mal mit DOMAIN

Der Fehler kommt nur beim Aufruf von php-Seiten, die es nicht gibt. Die Webseiten, auch Froxlor, funktionieren ganz normal.

Beispiel:

DOMAIN/ geht

DOMAIN/unterseite.php geht

DOMAIN/seitegibtsnicht.php erzeugt den 503er Fehler und die genannten Einträge im Log

DOMAIN/seitegibtsnicht.html erzeugt einen (korrekten) 404-Fehler


Ich habe mal eben geschaut, was passiert, wenn ich bei einem Froxlor-Link einen Fehler einbaue. Korrekte Seite:

DOMAIN/admin_phpsettings.php?page=overview&action=edit&id=8 Seite wird korrekt angezeigt

DOMAIN/admin_phpsettingsssss.php?page=overview&action=edit&id=8 Es wird "File not found." angezeigt. Die Froxlor-Konfiguration scheint also komplett in Ordnung zu sein.


Noch zwei Nachträge zu meinem Post von eben: In den anderen php*-fpm.conf-Dateien in diesem Ordner steht beim entsprechendem Part auch beispielweise:

-->

    <FilesMatch ".+\.ph(?:ar|p|tml)$">
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
    </FilesMatch>

<--

Und, im conf-enabled gibt es u.a. diesen Link (nur für php7.4):

lrwxrwxrwx 1 root root  33 Jul 15  2021 php7.4-fpm.conf -> ../conf-available/php7.4-fpm.conf

Link to comment
Share on other sites

  • 0

Faszinierend. 😀

Ich erhalte nun bei

DOMAIN/seitegibtsnicht.php

im Error-Log den Eintrag:

[Thu Jan 19 13:47:21.855431 2023] [php:error] [pid 11666] [client 123.123.123.123:61227] script '/var/customers/webs/kunde/domain.de/public_html/seitegibtsnicht.php' not found or unable to stat

und ein "Not found".

Allerdings: Normalerweise erscheint das ja eigentlich nicht mehr im Error-Log, sondern im access-log und sollte so aussehen:

123.123.123.123 - - [19/Jan/2023:13:53:17 +0100] "GET /seitegibtsnicht.php HTTP/1.1" 404 4846 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0"

 

Ich kann damit leben, aber interessieren würde mich schon, woran das liegt.

Link to comment
Share on other sites

  • 0

Ok...

Die Installation hat damals der Hoster gemacht. Da gab es wohl noch einen Mitarbeiter, der sich etwas mit Froxlor auskennt. Der ist jetzt nicht mehr da und nun bin ich auf mich allein gestellt (bzw. muss dann hier fragen, wenn ich nicht weiter komme).

Ich denke mal, so sollte es aber keine anderen Probleme machen, oder? Wie gesagt, wenn das im Error statt im Access auftaucht, kann ich damit leben (fand ich früher auch besser so).

Somit vielen Dank für die Unterstützung!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share



×
×
  • Create New...