Jump to content
Froxlor Forum
  • 0

Probleme mit FPM -> ERROR: Unable to set php_value


Dagaz

Question

Hallo liebes Forum,

bisher konnte ich alle meine Probleme mit der Recherche hier im Forum lösen, aber jetzt bin ich auch an einen Punkt gekommen, an dem ich alleine nicht mehr weiter komme.

Erst mal zum System:
Kernel: Debian Buster mit 4.19.0-14-amd64 (x86_64)
Webserver: Apache/2.4.38 (Debian)
Webserver-Interface: FPM-FCGI
MySQL-Server-Version: 5.5.5-10.3.27-MariaDB-0+deb10u1
FPM-Version: php7.4-fpm 7.4.15-3+0~20210219.38+debian10~1.gbpf8a52a amd64

ich habe ein php-fpm-Problem, bei dem ich nicht weiter komme. Das Problem ist jetzt kurz nach dem Update auf php8 aufgetreten, wobei in Froxlor für FPM php7.4 eingestellt ist.
Auch ein "Configs neu schreiben" hat nicht geholfen.

Nachdem das passiert, kann ich auch auf Froxlor nicht mehr zugreifen, weil der vHost auch die gleichen Fehlermeldungen (s.u.) hat.

Interessant ist: Wenn ich  php7.4-fpm vollständig entferne (apt purge php7.4-fpm && rm -r /etc/php/7.4/fpm/) und neu installiere und über "a2enconf php7.4-fpm" aktiviere und den Dienst starte, kann ich auf Froxlor zugreifen. (Nur behauptet Nextcloud dann, dass es nicht schreibend auf die Konfiguration zugreifen könne - vermutlich wegen den fehlenden Rechten, weil php7.4-fpm nur mit einem generischen Pool läuft)
Sobald der Cronjob für Froxlor läuft oder ich dem mit "php7.4 -q /var/www/froxlor/scripts/froxlor_master_cronjob.php --force" manuell starte, kommen die Fehlermeldungen. (Für PHP8.0 gilt das gleiche.)

Zuvor hat alles funktioniert. Ich habe an den Froxlor-Einstellungen seit dem keine Änderungen vorgenommen. (Wobei ich nicht ausschließen will, dass ein Froxlor-Update irgendwann vor dem letzten Serverneustart war.)

Kommando zum Neustarten von php-fpm: /etc/init.d/php7.4-fpm restart
Pfad zu php-fpm-Konfigurationen: /etc/php/7.4/fpm/pool.d/

Prozess Manager Control (PM): dynamic

systemctl restart php7.4-fpm.service

oder

/etc/init.d/php7.4-fpm restart
starten den FPM Dienst auch neu und der ist gestartet:

 

systemctl status php7.4-fpm.service:
https://pastebin.com/aF6XNs1x

 

In /var/log/php7.4-fpm.log kommen jedoch jedesmal massenweise Fehlermeldungen:

Das Problem betrifft alle Domains und alle FPM-Pools, ich habe mal exemplarisch einen rausgegriffen und bleibe auch im folgenden bei diesem Beispiel:

https://pastebin.com/jMKjsD2d

 

Die myoc.mydomain.net.conf in /etc/php/7.4/fpm/pool.d/ sieht so aus:
https://pastebin.com/yh5s3Sfv

 

Die Socket-Datei gehört dem Nutzer cloud (dem ist auch die Domain in Froxlor zugeordnet):

# ls -l /var/lib/apache2/fastcgi/1-cloud-myoc.mydomain.net-php-fpm.socket
srw-rw---- 1 cloud cloud 0 Feb 20 10:27 /var/lib/apache2/fastcgi/1-cloud-myoc.mydomain.net-php-fpm.socket
 

Ich habe keine Ahnung, was Ihr noch braucht, um mir zu helfen. Der Vollständigkeit halber hier auch noch die vHost-Datei für Apache:

https://pastebin.com/bkn69X8d

 

Hat irgend jemand von Euch eine Idee, was da falsch läuft?

Vielen Dank in jeden Fall schon einmal für Eure Unterstützung!

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Hm also ich habe etliche systeme mit 7.4 und 8.0 parallel und die Meldungen habe ich tatsächlich noch nicht gesehen. Kann ich dir so auf die schnelle nicht sagen, vielleicht hat noch jemand anderes eine Idee oder google weiss mehr...

Link to comment
Share on other sites

  • 0

Bei Google war ich tatsächlich gestern den halben Tag.

Wenn man nach "ERROR: Unable to set php_admin_value" ohne Anführungszeichen sucht, kommt alles mögliche zu Plex, was alles nicht passt und mit Anführungszeichen kommen da überhaupt nur 5 Treffer. Gestern waren es noch 4.  (Vielleicht habe ich ja auch mit "php fpm ERROR: Unable to set php_admin_value" (mit und ohne Anführungszeichen) die falschen Suchwörter verwendet. Hast Du vielleicht einen Tip, womit ich da sinnvoller weiter suchen könnte?)

Heute ist da bei Google noch das hier aufgetaucht (was gestern nicht dabei war; und ich auch über die Forensuche nicht gefunden habe):

Da geht es im ngix. Ich habe nur überhaupt keine Ahnung, ob das auf Apache übertragbar ist.

Da hattest Du den Tip curl_exec() zu archivieren gegeben. - Wobei ich keine Ahnung habe wie ich das wo machen muss.

[EDIT: phpinfo gibt aus: "cURL support    enabled"]

Ich habe es jetzt auch immerhin so weit zum Laufen bekommen, dass php7.4-fpm überhaupt gestartet wird - nachdem ich die generische www.conf zusätzlich nach /etc/php/7.4/fpm/pool.d kopiert habe.

Nextcloud sagt dann natürlich noch immer: "Cannot write into "config" directory!" - was jetzt auch nicht verwundert, da das mit den falschen Rechten laufen dürfte, weil FPM ja nicht richtig startet.

Damit läuft das dann aber immerhin so weit, dass ich auf Froxlor wieder zugreifen kann. Wenn der Froxlor-Master-Cron durchläuft verschwindet die www.conf und die anderen Configs werden neu geschrieben. Dann läuft wieder nichts und es ist wie im OP beschrieben.

Link to comment
Share on other sites

  • 0
2 hours ago, Dagaz said:

Da hattest Du den Tip curl_exec() zu archivieren gegeben. - Wobei ich keine Ahnung habe wie ich das wo machen muss.

php.ini, das steht in der liste der disaled_functions

2 hours ago, Dagaz said:

[EDIT: phpinfo gibt aus: "cURL support    enabled"]

auf der shell oder in froxlor oder beim kunden? Da greifen ggfls verschiedene php.inis

2 hours ago, Dagaz said:

Ich habe es jetzt auch immerhin so weit zum Laufen bekommen, dass php7.4-fpm überhaupt gestartet wird - nachdem ich die generische www.conf zusätzlich nach /etc/php/7.4/fpm/pool.d kopiert habe.

ja dann stimmt ja irgendwas anderes nicht bei dir, froxlor generiert ja fpr jede domain eine eigene config und der vhost verweist ja auch auf ein spezifisches socket - das bietet www.conf ja garnicht

Kann ich leider so nicht beantworten - vermutich irgendwelche Einstellungen falsch oder irgendwas merkwürdiges durch das 7.4 / 8.0 mischmaschzeug entstanden, kann ich so nicht nachvollziehen.

Link to comment
Share on other sites

  • 0

Ich überlege gerade, ob es einen Versuch wert sein könnte, von FPM auf FCGID zu wechseln. Könnte das den Server vielleicht wieder ordentlich zum laufen bringen?
(Ich habe da ja wenig emotionale Bindung zu FPM ;))

Reicht es dann, wenn ich im Terminal
 

#Die module für FPM deaktivieren:
a2dismod suexec proxy_fcgi actions

# FCGID nach Anleitung in Froxlor installiere:
apt-get install apache2-suexec-pristine libapache2-mod-fcgid php-cgi
a2enmod suexec fcgid

Dann in Froxlor unter Einstellungen "PHP-FPM" abschalte und FCGID einschalte und speicher und dann

/etc/init.d/apache2 restart
php /var/www/froxlor/scripts/froxlor_master_cronjob.php --force

mache?

Würde das

  1. überhaupt funktionieren?
  2. falls ja: müsste ich dann alle Datei-Rechte in den /var/customers/webs/* mit chown auf einen anderen Eigentümer ändern oder könnte das dann mit den in FPM gesetzen Berechtigungen laufen?
Link to comment
Share on other sites

  • 0

ja ne einfach nur aus und das andere an reicht eben nicht. Nach dem anpassen der Einstellungen in froxlor solltest du sie config-tempaltes für webserver und fpm/fcgid auch durchgehen...sonst wird das nichts

und nein, du änderst bitte nicht manuell alle datei-rechte in /var/customers/webs/* .... was treibst du denn da? Der user ist doch egal wie der selbe...

Link to comment
Share on other sites

  • 0

Genau deshalb wollte ich das nicht einfach ändern. - Wobei "mal eben einfach" wäre das ja offenbar nicht.

Aber ich habe gerade was anderes "gefunden":

 

Es erhärtet sich der Verdacht, dass das ein Bug in debians php7.4-fpm gewesen sein könnte.

APT hat gerade ein Update bekommen und php7.4-fpm von 7.4.15-3 auf 7.4.15-5 aktualisiert.

Jetzt sind die Fehlermeldungen zwar immer noch da, aber immerhin laufen die Seiten jetzt nach dem Froxlor-Cronjob wieder. Der Leidensdruck ist also direkt mal SEHR viel kleiner. 🙂

Vielleicht haben die Warnungen/Error in den Logs ja gar nichts mit dem "tuts nicht mehr" zu tun und die waren vorher schon da, wo es nicht aufgefallen ist, weil man ohne die Fehlfunktion keinen Grund hatte, in die Logs zu gucken. 🤔

disable_functions ist bei mir:

curl_multi_exec,exec,parse_ini_file,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,system

Die PHP-Info war jetzt im Kunden-Verzeichnis (genauer im Root-Folder der Nextcloud, die dem Kunden "cloud" zugeordnet ist). Da ist das jeweils in "Lokal" und "Master" identisch.
In Froxlor wird unter "PHPinfo()" das selbe angezeigt (sowohl in der ersten als auch in der Master-Zeile).
"curl_exec" ist da jetzt nicht bei. Nur "curl_multi_exec", "exec" und "shell_exec".

Link to comment
Share on other sites

  • 0

Das Springen war nicht intendiert.

Das Grundproblem war:

  • Die gehosteten Seiten der Kunden funktionierten nicht, genau so wenig Froxlor selbst.
  • Das FPM-Log hat massenhaft Fehlermeldungen ausgespuckt, bei denen ich davon ausgegangen war, dass diese mit dem "tuts nicht" des ersten Punkts zusammenhängen.

Mittlerweile funktionieren seit dem Update von php7.4-fpm (und aller anderen PHP7.4-Pakete) von heute (vor ca. 1h) wieder.

Ich nehme deshalb an, dass "tuts nicht" die Folge eines möglichen (behobenen) Bugs im Paket php7.4-fpm war.

Was jedoch noch immer da ist sind die vielen Fehlermeldungen in der FPM-Logdatei.

Weil Du im anderen Forenpost bei einem ähnlichen Problem empfohlen hattest, "curl_exec" zu aktivieren, habe ich das versucht, um die Fehlermeldungen weg zu bekommen.
curl_exec scheint jedoch schon aktiv zu sein.

Und da werde ich dann morgen weiter machen, um zu sehen, ob ich die irgend wie weg bekomme.

Ich würde aber vorschlagen, dass ich da erst einmal selbst weiter suche.
Wenn ich das hinbekomme, werde ich hier hinschreiben wie ich das gelöst bekommen habe. (Oder ggf. auch noch einmal Fragen, wenn ich es gar nicht hinbekomme.)

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...