PHP-FPM Problem

I

informant

Guest
Hallo zusammen, ich habe ein Problem mit PHP-FPM. Der Dienst kann nicht gestartet werden, weil unter /var/run das Verzeichnis php7.3-fpm nicht angelegt wird. Wenn ich es manuell anlege ist es nach einem restart weg. Wieso legt es das Script nciht automatisch an bzw. warum bleibt es nicht nach dem restart bestehen. hat jmd. eine Idee zur Lösung?
 
Last edited by a moderator:
Wie wurde das PHP7.4 FPM installiert? Vielleicht ein nicht abgeschlossener Installations-/DeInstallationsprozess der dazwischen funkt?
 
Hi habe nur apt install php-fpm gemach twie bei allen Debian Paketen auch. Dann halt
a2enmod proxy_fcgi setenvif
a2enconf php7.3-fpm
systemctl restart apache2
 
weil unter /var/run das Verzeichnis php7.3-fpm
So ein Verzeichnis gibt es nicht.
/var/run ist ein alias für /run/ und für PHP gibt es nur /run/php/ mit den erzeugten Dateien wenn php7.3-fpm läuft:
Code:
root@sv223112:~# l /var/run/php/
insgesamt 4
-rw-r--r-- 1 root     root     5 Jul  8 12:24 php7.3-fpm.pid
srw-rw---- 1 www-data www-data 0 Jul  8 12:24 php7.3-fpm.sock

root@sv223112:~# l -d /run/php/
drwxr-xr-x 2 www-data www-data 80 Jul  8 12:29 /run/php/
 
Last edited:
Korrekt, in /run/php liegt auch php7.3-fpm.pid und php7.3-fpm.sock drin. Aber das Verzeichnis für die socks der Verträge / vhosts die liegen ja in /run/php7.3-fpm, und das Verzeichnis php7.3-fpm erzeugt er nicht automatisch.
 
das Verzeichnis php7.3-fpm erzeugt er nicht automatisch
Welches Verzeichnis (Pfad)? Wo denn genau soll das dynamisch erzeugt werden?
Warum PHP bei dir nicht laufen soll. verstehe ich nicht.

Ich verwende eine reguläre Debian-Installation, keine Webadminsoftware or irgendein angepasstes Linux-Image.
 
Last edited:
Hallo, es läuft wenn ich das Verzeichnis php7.3-fpm in dem genantnten Verzeichnis erstelle solange, bis der Server neu gestartet wird. nach dem neustart ist nur dieses Verzeichnis weg und FPM kan nnicht gestartet werden da das Verzeichnis nicht erstellt wird. Ich verwende auch nur das Debian Image vom Hauptserver ohne irgendwas anderes... Ich stelle die Frage ja nicht umsonst, denn auf anderen Servern klappt es auch nur hier nicht udn ich bin ratlos nach 1ner Woche Suche.
 
In irgendeiner deiner Konfigurationen für den Webserver, den vHost, PHP bzw. php-fpm muss es doch drin stehen, dass du ein Verzeichnis /var/run/php7.3-fpm/ verwendest.
Suche doch mal mit grep danach. grep -iR /run /etc | grep fpm
 
Der Socket wird in den jeweiligen pool-Dateien angelegt, diese liegen für das PHP 7.3 FPM von Debian Buster unter /etc/php/7.3/fpm/pool.d - standardmäßig ist da ein Name unterhalb von /run/php angegeben. Das wirst du vermutlich durch was anderes ersetzt haben. PHP-FPM erwartet beim Start, dass die Verzeichnisstruktur schon existiert - für /run/php kümmert sich das Systemd Unit-File oder das Init-Script darum, für andere musst du dich selber drum kümmern. /run ist ein tmpfs-Filesystem, d.h. nach einem Neustart ist dieses Verzeichnis erst mal grundsätzlich leer. Ändere deine pool-Dateien ab, dass die Sockets in /run/php abgelegt werden und gut ist - auch dran denken, denn Socket auch in den Apache vHosts anzupassen.
 
Hallo Dank. Ich vermute es liegt an systemd, denn ich habe sysvinit laufen, da systemd nen Fehler brachte. Daher legt er die Sockets der vHosts bzw. den Ordner ncht an. Weil die anderen System ehaben alle systemd und da läuft es.
 
Hallo Dank. Ich vermute es liegt an systemd, denn ich habe sysvinit laufen, da systemd nen Fehler brachte. Daher legt er die Sockets der vHosts bzw. den Ordner ncht an. Weil die anderen System ehaben alle systemd und da läuft es.
Eigentlich hätte es beim installieren einen Konflikt geben müssen(?).

https://packages.debian.org/buster/php7.3-fpm -> dep: libsystemd0


Wenn du auf Systemd verzichten musst dann ist hier Devuan evtl. eine bessere Alternnative.

Edit: Shippt wohl doch noch ein init Script.
 
Last edited:
Ich habe gerade mal nachgesehen, im systemd Unit-File für PHP-FPM steht das Script /usr/lib/php/php-fpm-socket-helper drin, welches im Init-Script nicht eingebaut ist. Ich habe aber nicht nachgesehen, ob diesen ggfl. auch fehlende Verzeichnisse unter /run erstellt. Passe ggfl dein init-Script an (das musst du bei PHP-Updates bei Bedarf erneut machen).
Ich habe auf meinem System (mit systemd) alle Sockets direkt unter /run/php liegen, daher muss kein weiteres Unterverzeichnis darunter erstellt werden und es läuft ohne Probleme.
 
Verzichten nicht, aber umstellen brint einen Fehler beim booten und mounten der HDDs der nur bei Systemd kommt, vermutlich durch Upgrades seit Debian 4 bis heute... irgednwo eingeschleppt.
 
Back
Top