Ich habe einen sehr schwierigen Fall mit dem neuesten php5-fpm (von debphp) und nginx 1.4.3 auf Ubtuntu 12.04LTS.
Kurz gesagt, ich kann überhaupt nicht starten php5-fp
. Ich erhalte immer wieder diesen Fehler im Syslog:
kernel: [1213013.564441] init: php5-fpm main process (7357) terminated with status 78
kernel: [1213013.564496] init: php5-fpm main process ended, respawning
..... (repeated several times)
kernel: [1213014.143911] init: php5-fpm respawning too fast, stopped
Mein /var/log/php5-fpm.log
ist überhaupt nicht besiedelt. Es gibt kein php5-fpm.sock
und php5-fpm.pid
in /run
(oder /var/run
).
Meine /etc/php5/fpm/php-fpm.conf
ist unten: (Diese Datei scheint jetzt nicht geladen zu sein, da ich versucht habe, falsche Informationen darin zu platzieren, aber keine Änderung verursacht habe)
;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
include=/etc/php5/fpm/*.conf
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
[global]
; Pid file
; Note: the default prefix is /var
; Default Value: none
pid = /run/php5-fpm.pid
catch_workers_output = yes
; Log level
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
log_level = debug
; To configure the pools it is recommended to have one .conf file per
; pool in the following directory:
include=/etc/php5/fpm/pool.d/*.conf
include=/var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf
Berechtigungsprüfung:
ls -l /etc/php5/fpm/php-fpm.conf
-rwxrwxrwx 1 root root 4641 Nov 6 01:37 /etc/php5/fpm/php-fpm.conf
Meine include=/var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf
(diese Datei scheint nicht mehr geladen zu sein)
[www.mysite.com]
listen = /run/php5-fpm.sock
# listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www.mysite.com
listen.group = mysite.com
listen.mode = 0666
user = www.mysite.com
group = mysite.com
pm = dynamic
pm.max_requests = 0
pm.max_children = 15
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.status_path = /php_pool_wwww.mysite.com_status
ping.path = /www.mysite.com_ping
ping.response = www.mysite.com_pong
request_terminate_timeout = 30
request_slowlog_timeout = 20
slowlog = /var/www/vhosts/mysite.com/w/w/w/www/logs/php-slow.log
rlimit_files = 131072
rlimit_core = unlimited
chroot = /var/www/vhosts/mysite.com/w/w/w/www/
; Chdir to this directory at the start. This value must be an absolute path.
; Default Value: current directory or / when chroot
; chdir = /htdocs
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
security.limit_extension = .php
; php_value/php_flag - you can set classic ini defines which can
; be overwritten from PHP call 'ini_set'.
; php_admin_value/php_admin_flag - these directives won't be overwritten by
; PHP call 'ini_set'
php_flag[display_errors] = on
php_admin_value[error_log] = /logs/php_err.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 100M
php_value[max_execution_time] = 300
Berechtigungsprüfung:
ls -l /var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf
-rwxr-xr-x 1 www.mysite.com mysite.com 1830 Nov 6 01:05 var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf
Überprüfung der Benutzer- / Gruppenberechtigung:
groups www.mysite.com
www.mysite.com : www.mysite.com www-data mysite.com
Ich denke nicht, dass dies irgendetwas mit nginx zu tun hat, da es im Moment php5-fpm
sowieso überhaupt nicht starten kann, aber um alle Informationen zu haben: nginx ist auch so eingestellt, dass es denselben Benutzer / dieselbe Gruppe verwendet
quelle
listen
Direktivenpfad gemacht habe. Überprüfen Sie, ob das Verzeichnis, das Sie für Ihre Listen-Direktive angeben, vorhanden ist, wenn Sie einen Unix-Socket abhören.Antworten:
Der Prozess, den der Emporkömmling beobachtete, ist gestorben, aber die Poolarbeiter laufen immer noch. Führen Sie Folgendes aus, um das Problem zu beheben:
Der php5-fpm-Job wird wiederholt mit dem Status 78 beendet, bis alle alten Worker-Threads tot sind. Beachten Sie, dass der Server in diesem Status normalerweise funktionsfähig ist, obwohl upstart den Dienst nicht verwaltet. Wenn es schließlich stirbt, wird es nicht automatisch wieder erscheinen, daher sollte es so schnell wie möglich behoben werden. Ein einfacher Neustart behebt das Problem ebenfalls, führt jedoch zu Ausfallzeiten.
quelle
killall
gab mir einephp-fpm: no process found
Antwort. Ichps aux | grep php
habe alle PHP-Prozesse ausgeführt und dann manuell beendet. Danach konnte ich den php5-fpm-Dienst erfolgreich neu starten.ps aux
.php5.6-fpm
. Ich sehe es immer noch nicht.syslog
zeigt an, dass es mit einem Fehler 78 abstürzt, wenn ich versuche, es zu starten. Ich versuche immer noch, das zu klären.sudo php-fpm -t
Ich bin kürzlich auf dasselbe Problem gestoßen. Es stellt sich heraus, dass ein anderer Prozess bereits denselben Port überwacht hat. Um herauszufinden, welcher Prozess ausgeführt wurde, habe ich den folgenden Befehl ausgeführt:
Es stellte sich heraus, dass
hhvm
Port 9000 bereits abgehört wurde.Sobald ich den hhvm-Daemon gestoppt habe, wurde php5-fpm erfolgreich gestartet.
quelle