Jump to content
Froxlor Forum
  • 0

Rechteproblem? nach Aktivierung php-fpm


froxlorforum@pilsgenuss.de

Question

Hallo allerseits,

ich verstehe ein Problem auf meinem Froxlor-Server nicht:

Das Grundsystem ist ein Debian 9.11 stable mit Apache 2.4.25, PHP 7.0.33, FPM-FCGI installiert bzw. aktiviert habe. Froxlor ist 0.9.40.1-1+jessie1 (DB: 201809280) laut Dashboard.

Ich habe mod_proxy / mod_proxy_fcgi ebenso wie libnss-extrausers aktiviert und konfiguriert (nach Anleitung, hoffe ich).

PHP-FPM ist aktiviert, PHP-FCGID ist NICHT aktiviert (lässt sich nicht aktivieren wegen aktiviertem PHP-FPM - sollte also passen).

Das System hatte ich auf PHP-FPM umgestellt, um außer der "aktiven" PHP7.0-Version auch noch PHP5 anbieten zu können. Grundsätzlich funktioniert glücklicherweise nach ein paar Anlaufproblemen auch alles, allerdings nur mit ein wenig manueller Nachhilfe (die ich - zugegeben - nicht verstehe und für die ich Nachhilfe bräuchte):

Immer, wenn der Froxlor-Cronjob durchgelaufen ist, werden die Sockets im Verzeichnis /var/lib/apache2/fastcgi mit nicht richtigen Berechtigungen/ Benutzer bzw. Gruppen angelegt. Letzteres glaube ich allerdings nicht, denn es handelt sich bei den Benutzer-/Gruppenkombinationen immer um die "richtigen" Benutzer, denen auch die jeweilige Domain zugeordnet ist (zwei Beispiele):

srw-rw---- 1 froxlorlocal froxlorlocal 0 Sep 24 23:25 1-froxlor.panel-helena.bloombox.de-php-fpm.socket
srw-rw---- 1 jens         jens         0 Sep 24 23:25 1-jens-bembel.city-php-fpm.socket

Erst wenn ich diese nun per chmod 777 umstelle, lässt sich die jeweilige Webseite aufrufen:

srwxrwxrwx 1 froxlorlocal froxlorlocal 0 Sep 24 22:44 1-froxlor.panel-helena.bloombox.de-php-fpm.socket
srwxrwxrwx 1 jens         jens         0 Sep 24 22:44 1-jens-bembel.city-php-fpm.socket

Ansonsten gibt es vom Apache:

 

Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Kann mir irgendjemand sagen, an welcher Stelle ich einen Fehler gemacht habe? Welche Infos werden noch benötigt? Auf Dauer ist es nervig, nach einer Korrektur in Froxlor das chmod auszuführen ... ;-)

Vielen Dank,

Jens

 

 

Link to comment
Share on other sites

Recommended Posts

  • 0

Als Ergänzung: Wenn ich das recht sehe, läuft php-fpm mit genau dem User, dem auch der Socket "gehört":

jens     10844  0.0  0.0 359520  7476 ?        S    Sep24   0:00 php-fpm: pool bembel.city

 

Und der zugehörige Logeintrag:

[Wed Sep 25 02:13:57.561954 2019] [proxy:error] [pid 11018] (13)Permission denied: AH02454: FCGI: attempt to connect to Unix domain socket /var/lib/apache2/fastcgi/1-jens-bembel.city-php-fpm.socket (*) failed

Habe nun versucht, wie hier beschrieben:

https://serverfault.com/questions/897691/php-fpm-error-503-attempt-to-connect-to-unix-domain-socket-failed

das Verzeichnis auf ein Unterverzeichnis des Apache2 "DefaultRuntimeDir" zu konfigurieren. Hat grundsätzlich geklappt, aber der Fehler ist derselbe.

In der Datei /etc/php-fpm.d/bembel.city.conf, die von Froxlor erzeugt wird, steht auch explizit Benutzer/Gruppe auf dem Benutzer und nicht etwas Benutzer:Jens/ Gruppe: www-data:

;PHP-FPM configuration for "bembel.city" created on 2019.09.25 11:38:33
[bembel.city]
listen = /var/run/apache2/fastcgi/1-jens-bembel.city-php-fpm.socket
listen.owner = jens
listen.group = jens
listen.mode = 0660
user = jens
group = jens

 

Durch manuelles Hinzufügen der Gruppe in die Datei /etc/group wird das Problem per Workaround für's Erste gelöst:

jens:x:10002:jens,www-data

Danach den Apache2 neu starten und die Fehlermeldung "Service Unavailable" ist weg ...

Das sollte natürlich nicht der Sinn der Übung sein. ?

 

Edited by froxlorforum@pilsgenuss.de
Details nachgefügt
Link to comment
Share on other sites

  • 0
On 9/25/2019 at 7:59 AM, froxlorforum@pilsgenuss.de said:

Als Ergänzung: Wenn ich das recht sehe, läuft php-fpm mit genau dem User, dem auch der Socket "gehört":

das ist ja sinn der sache :)

On 9/25/2019 at 7:59 AM, froxlorforum@pilsgenuss.de said:

In der Datei /etc/php-fpm.d/bembel.city.conf, die von Froxlor erzeugt wird, steht auch explizit Benutzer/Gruppe auf dem Benutzer und nicht etwas Benutzer:Jens/ Gruppe: www-data:

ja das ist korrekt so

On 9/25/2019 at 7:59 AM, froxlorforum@pilsgenuss.de said:

Durch manuelles Hinzufügen der Gruppe in die Datei /etc/group wird das Problem per Workaround für's Erste gelöst:

in /etc/group hat das schonmal gar nix verloren. Ich dachte du nutzt libnss-extrausers? Es sollte auch der webserver-user (www-data) in der Gruppe des Customers sein, das regelt froxlor, siehe dazu /var/lib/extrausers/group - oder überprüfe in den froxlor einstellungen ob du da auch www-data als Webserver-Benutzer angegeben hast (ist default!)

Link to comment
Share on other sites

  • 0

Erst einmal vielen Dank für die Antwort. Und ja, ich gebe zu, ich hatte dann ein paar Dinge als eigene Antwort reingeschrieben, die ich zum einen in der ersten Runde vergessen hatte, zum anderen der Nachvollziehbarkeit halber für wichtig hielt.

 

Ja, ich nutze libnss-extrausers (sonst funktioniert php-fpm nicht wie gewünscht, wenn ich das richtig verstanden habe). Und auch die Dateien existieren im Verzeichnis /var/lib/extrausers.

Aber in der group-Datei steht bei keiner Gruppe "www-data" dabei. Hier die Gruppe "jens" aus dem Beispiel oben:

jens:x:10002:jens,froxlorlocal,froxlorlocal

Unter "Einstellungen" - "Webservereinstellungen" ist "www-data" als Benutzer und Gruppe definiert. Insofern ist mir nicht klar, warum dies nicht verwendet wird.

Was wäre denn noch zu prüfen?! Ich weiß nach 3 Abenden leider nicht mehr weiter ... 

 

Link to comment
Share on other sites

  • 0
2 minutes ago, froxlorforum@pilsgenuss.de said:

jens:x:10002:jens,froxlorlocal,froxlorlocal

Da steht zweimal froxlorlocal, eines davon muss der Webserver User sein, muss also in deinen Einstellungen irgendwo froxlorlocal drin stehen wo www-data reingehört

Link to comment
Share on other sites

  • 0
Gerade eben schrieb d00p:

Da steht zweimal froxlorlocal, eines davon muss der Webserver User sein, muss also in deinen Einstellungen irgendwo froxlorlocal drin stehen wo www-data reingehört

OK. Dann suche ich mal. ?

Bei den Froxlor-VHost-Einstellungen steht es drin. Aber das sollte ja nicht zusammenhängen:

    "phpfpm.vhost_httpuser": "froxlorlocal",
    "phpfpm.vhost_httpgroup": "www-data",

Das hier sollte nicht relevant sein:

    "system.mod_fcgid_httpuser": "froxlorlocal",
    "system.mod_fcgid_httpgroup": "froxlorlocal",

Das sind alle Vorkommen von "froxlorlocal" im Download des JSON-Modells der Einstellungen.
 

Link to comment
Share on other sites

  • 0

Könnte es sein, dass "mein Froxlor" schon zu alt ist oder anders: Hätte ich die Einstellungen jedes Mal nach einem Upgrade neu machen müssen (habe schon grob kontrolliert, ob sich da was geändert hat)? Sicher bin ich mir nicht, aber ich hatte Debian irgendwann hochgezogen von 8 auf 9 und dadurch (oder war es schon vorher von 7 auf 8 - müsste ich nachsehen) wurde auch der Apache umgestellt. Die Einstellungen hatte ich mir angesehen.

Die Umstellung auf php-fpm hatte ich erst vor kurzem vorgenommen, was bedingt gut geklappt hat. Und in diesem Zusammenhang kam auch erst libnss-extrausers dazu ...

Link to comment
Share on other sites

  • 0
vor 2 Minuten schrieb d00p:

Da Ist dein Fehler ;)

hmm. Verflixt. Ich verstehe - zumindest jetzt. Da stand zunächst in beiden Feldern "froxlorlocal" drin. Damit lief es nicht (klar). Also dachte ich, ich bin schlau und schreibe den www-data in die Gruppe.

 

Aber: ich habe das alles unter dieser Überschrift verstanden:

Verwende PHP-FPM im Froxlor-Vhost
Wenn verwendet, wird Froxlor selbst unter einem lokalen Benutzer ausgeführt
Lokaler Benutzer für PHP-FPM (Froxlor-Vhost)
Lokale Gruppe für PHP-FPM (Froxlor-Vhost)
 

Ich dachte, damit steuere ich ausschließlich den Froxlor-Vhost. Nicht funktioniert haben aber alle anderen VHosts ... Deswegen kam ich nicht drauf. ?

Nun kassiere ich allerdings im Froxlor-Panel mehrere Fehler:

PHP warning/error
#2 Unknown: open(/var/customers/tmp/froxlor.panel//sess_5721bcf8d802872cb9fd52789b0eb54a, O_RDWR) failed: Permission denied (13)

Unknown:0

Muss ich mir ansehen ... 

Link to comment
Share on other sites

  • 0

Ne halt jetzt, also lokaler user ist natürlich "froxlorlocal", genau wie auch group. Aber dennoch musst du irgendwo froxlor-local reingeschrieben haben wo der webserver user hingehört, dump doch einfach mal die panel_settings wo in der value überall froxlorlocal drinsteht

Link to comment
Share on other sites

  • 0
vor 16 Minuten schrieb d00p:

Ne halt jetzt, also lokaler user ist natürlich "froxlorlocal", genau wie auch group. Aber dennoch musst du irgendwo froxlor-local reingeschrieben haben wo der webserver user hingehört, dump doch einfach mal die panel_settings wo in der value überall froxlorlocal drinsteht

ok ... aber: Das hatte ich doch schon gemacht, oder? Das waren vorher genau die drei Zeilen, die ich aus dem Menüpunkt "Einstellungen" "Import/Export" heruntergeladen habe. Da erzeugt Froxlor eine Datei Froxlor_settings-0.9.40.1-201809280_26.09.2019.json und in der habe ich nach "froxlorlocal" gesucht. Aktuell sind es diese Zeilen hier, nachdem ich das wieder zurück korrigiert habe:

    "phpfpm.vhost_httpuser": "froxlorlocal",
    "phpfpm.vhost_httpgroup": "froxlorlocal",
    "system.mod_fcgid_httpuser": "froxlorlocal",
    "system.mod_fcgid_httpgroup": "froxlorlocal",

Das entspricht exakt dem, was auch in der panel_settings steht:

 
Vollständige Texte settingid settinggroup varname value
Bearbeiten Bearbeiten Kopieren Kopieren Löschen Löschen 67 phpfpm vhost_httpuser froxlorlocal
Bearbeiten Bearbeiten Kopieren Kopieren Löschen Löschen 68 phpfpm vhost_httpgroup froxlorlocal
Bearbeiten Bearbeiten Kopieren Kopieren Löschen Löschen 146 system mod_fcgid_httpuser froxlorlocal
Bearbeiten Bearbeiten Kopieren Kopieren Löschen Löschen 147 system mod_fcgid_httpgroup froxlorlocal


Oder stehe ich nun völlig auf dem Schlauch/ verstehe Deine Hinweise nicht?

Danke!

Link to comment
Share on other sites

  • 0
+-----------+--------------+-----------------+----------+
| settingid | settinggroup | varname         | value    |
+-----------+--------------+-----------------+----------+
|        67 | phpfpm       | vhost_httpuser  | froxlor  |
|        68 | phpfpm       | vhost_httpgroup | froxlor  |
|       115 | system       | httpuser        | www-data |
|       116 | system       | httpgroup       | www-data |
+-----------+--------------+-----------------+----------+

So müsste das aussehen (bei dir 'froxlorlocal' statt wie bei mir 'froxlor')

Link to comment
Share on other sites

  • 0
vor 15 Minuten schrieb d00p:

+-----------+--------------+-----------------+----------+
| settingid | settinggroup | varname         | value    |
+-----------+--------------+-----------------+----------+
|        67 | phpfpm       | vhost_httpuser  | froxlor  |
|        68 | phpfpm       | vhost_httpgroup | froxlor  |
|       115 | system       | httpuser        | www-data |
|       116 | system       | httpgroup       | www-data |
+-----------+--------------+-----------------+----------+

So müsste das aussehen (bei dir 'froxlorlocal' statt wie bei mir 'froxlor')

OK, verstehe. Aber was doch schon bei mir falsch ist: Der "varname" ist nicht httpuser, sondern mod_fcgid_httpuser! Das bedeutet doch vermutlich, dass ich irgendwo eine Checkbox falsch gesetzt habe ..

Grundsätzlich habe ich ja genau den httpuser richtig:

    "system.httpuser": "www-data",
    "system.httpgroup": "www-data",

Kann es sein, dass hier fälschlich "froxlorlocal" aus dem fcgid gezogen wird? Editieren kann ich das Feld ja nicht ...

Link to comment
Share on other sites

  • 0
3 minutes ago, froxlorforum@pilsgenuss.de said:

Anders rum: Kann ich über die Datenbank die beiden Einträge korrigieren - auf www-data?


    "system.mod_fcgid_httpuser": "froxlorlocal",
    "system.mod_fcgid_httpgroup": "froxlorlocal",

Ich trau mich mal. Moment.

nochmal, das sind die FCGID configs, die werden genau nix bewirken...und spiel bitte nicht manuell in der DB rum, das kann nur schiefgehen

Link to comment
Share on other sites

  • 0
vor 1 Minute schrieb d00p:

nochmal, das sind die FCGID configs, die werden genau nix bewirken...und spiel bitte nicht manuell in der DB rum, das kann nur schiefgehen

ok. ? aber sonst gibt es definitiv kein "froxlorlocal". Bzw. schon, in ftp_groups:

Suchergebnisse für "froxlorlocal" mindestens eines der Wörter:
0 Treffer in cronjobs_run    
0 Treffer in domain_dns_entries    
0 Treffer in domain_redirect_codes    
0 Treffer in domain_ssl_settings    
4 Treffer in ftp_groups Anzeigen Löschen
0 Treffer in ftp_quotalimits    
0 Treffer in ftp_quotatallies    
0 Treffer in ftp_users    
0 Treffer in mail_users    
0 Treffer in mail_virtual    
0 Treffer in panel_activation    
0 Treffer in panel_admins    
0 Treffer in panel_customers    
0 Treffer in panel_databases    
0 Treffer in panel_diskspace    
0 Treffer in panel_diskspace_admins    
0 Treffer in panel_domains    
0 Treffer in panel_domaintoip    
0 Treffer in panel_fpmdaemons    
0 Treffer in panel_htaccess    
0 Treffer in panel_htpasswds    
0 Treffer in panel_ipsandports    
0 Treffer in panel_languages    
0 Treffer in panel_phpconfigs    
0 Treffer in panel_plans    
0 Treffer in panel_sessions    
4 Treffer in panel_settings Anzeigen Löschen
0 Treffer in panel_syslog    
0 Treffer in panel_tasks    
0 Treffer in panel_templates    
0 Treffer in panel_ticket_categories    
0 Treffer in panel_tickets    
0 Treffer in panel_traffic    
0 Treffer in panel_traffic_admins    
0 Treffer in redirect_codes    

Insgesamt 8 Treffer

 

 

Link to comment
Share on other sites

  • 0
3 minutes ago, Jazz said:

Hi was war denn die Lösung? Habe gerade das gleiche Problem.

LG

Kann man so nicht sagen, zum einen gab es keine Response mehr vom OP zum anderen ist es schwer zu interpretieren auf was du dein "ich habe gerade das gleiche Problem" beziehst.

Fehlermeldung? Bzw was geht nicht? Was hast du aus diesem Thread, sofern überhaupt zutreffend, schon probiert/gemacht? Logs? 

Link to comment
Share on other sites

  • 0

Hi d00p,

wenn ich FPM aktiviere bekomme ich im Log und einen Error 503 Service unavailiable.

Die Datei welche er unten sucht gibt es tatsächlich nicht.

System ist Debian Stretch. Installiert die Config (wie im froxlor Portal).

Davor lief es mit mod_php.

[Thu Oct 31 19:43:34.567423 2019] [proxy_fcgi:error] [pid 18535] [client 109.192.97.206:58290] AH01079: failed to make connection to backend: httpd-UDS, referer: https://www.itcares.de/
[Thu Oct 31 19:43:35.104924 2019] [proxy:error] [pid 18506] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/lib/apache2/fastcgi/1-jazz-itcares.de-php-fpm.socket (*) failed
[Thu Oct 31 19:43:35.105013 2019] [proxy_fcgi:error] [pid 18506] [client 109.192.97.206:58291] AH01079: failed to make connection to backend: httpd-UDS, referer: https://www.itcares.de/
[Thu Oct 31 19:46:48.499095 2019] [proxy:error] [pid 18535] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/lib/apache2/fastcgi/1-jazz-itcares.de-php-fpm.socket (*) failed
[Thu Oct 31 19:46:48.499142 2019] [proxy_fcgi:error] [pid 18535] [client 109.192.97.206:58398] AH01079: failed to make connection to backend: httpd-UDS, referer: https://www.itcares.de/
[Thu Oct 31 19:46:55.779000 2019] [proxy:error] [pid 18503] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/lib/apache2/fastcgi/1-jazz-itcares.de-php-fpm.socket (*) failed
[Thu Oct 31 19:46:55.779047 2019] [proxy_fcgi:error] [pid 18503] [client 109.192.97.206:58402] AH01079: failed to make connection to backend: httpd-UDS, referer: https://www.itcares.de/

 

Link to comment
Share on other sites

  • 0
1 hour ago, d00p said:

Läuft den der php-fpm dienst? 

Ja der lief. Fehler gerade gefunden:

 

Installiert war noch libapache2-mod-fcgid php-cgi

und auch das modul

a2enmod suexec fcgid
Lösung:

a2dismod fcgid
systemctl restart apache2
apt-get remove libapache2-mod-fcgid php-cgi

Schönen Abend und danke für schnelle Reaktion. :)

 

Link to comment
Share on other sites

  • 0

Der Fehler sagt aber ganz klar, dass er das Socket nicht finden kann, was mir sagt, der Dienst läuft nicht ODER du lässt die pool-configs für php-fpm an die falsche stelle erstellen und der fpm-dienst läuft zwar, aber nur mit der default www-pool config.

Wie ist denn die Ausgabe von:

ps faux | grep fpm

 

Link to comment
Share on other sites

  • 0
1 hour ago, d00p said:

Der Fehler sagt aber ganz klar, dass er das Socket nicht finden kann, was mir sagt, der Dienst läuft nicht ODER du lässt die pool-configs für php-fpm an die falsche stelle erstellen und der fpm-dienst läuft zwar, aber nur mit der default www-pool config.

Wie ist denn die Ausgabe von:


ps faux | grep fpm

 

root@rs243945:~# ps faux | grep fpm
root      8101  0.0  0.0  15436  1940 pts/1    S+   22:23   0:00  |       \_ grep fpm
root     12954  0.0  0.2 392888 40504 ?        Ss   21:11   0:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
www-data 12955  0.0  0.0 392888  9112 ?        S    21:11   0:00  \_ php-fpm: pool www
www-data 12956  0.0  0.0 392888  9112 ?        S    21:11   0:00  \_ php-fpm: pool www
root@rs243945:~#

 

von unterwegs deswegen knapp. 

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


×
×
  • Create New...