Ich fange an, PHP-FPM verachten! Es ist schrecklich bei der Handhabung von Fehlern!Fehler 502 in PHP-FPM ohne Details
Ich bekomme eine NetworkError: 502 Bad Gateway
und obwohl ich weiß, wo der Fehler auftritt, weil ich Zeilen Zeile für Zeile manuell auskommentiert, bis ich die schlechte Zeile gefunden habe, weiß ich nicht, warum diese Zeile ein Problem verursacht.
Bevor Sie fragen, was die Zeile ist, die den Fehler verursacht, das ist nicht mein Problem, mein Problem ist, dass ich PHP nicht bekommen kann, um mir zu sagen, was der Fehler ist. Es reagiert nur mit einem 502-Fehler.
Hier ist meine Konfiguration
nginx Website
location ~ .+?\.php {
fastcgi_split_path_info ^(.+?\.php)/?(.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param LOG_PATH /var/www/sites/api/logs;
fastcgi_param ENVIRONMENT dev;
fastcgi_buffer_size 128k;
fastcgi_buffers 254 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
proxy_intercept_errors on;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
}
php.ini
[PHP]
engine = On
expose_php = Off
max_execution_time = 30
memory_limit = 128M
default_socket_timeout = 5
session.save_path = /var/www/session/
file_uploads = Off
upload_tmp_dir = /tmp/php
upload_max_filesize = 5M
post_max_size = 5M
max_file_uploads = 1
date.timezone = 'UTC'
disable_functions = phpinfo,exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
mail.add_x_header = Off
sql.safe_mode = On
cgi.force_redirect = 1
allow_url_fopen = Off
allow_url_include = Off
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
html_errors = Off
log_errors = On
error_log = /var/log/php5-fpm.log
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = On
pool.d/www.conf
[www]
listen = /var/run/php5-fpm.sock
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
pm = static
pm.max_children = 600
;pm.start_servers = 10
;pm.min_spare_servers = 5
;pm.max_spare_servers = 15
pm.max_requests = 100
;pm.status_path = /php_status
;request_terminate_timeout = 5s
;request_slowlog_timeout = 5s
;slowlog = /var/log/php/fpm/domain.slowlog.log
; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
; Default Value: no
catch_workers_output = yes
php_flag[display_errors] = on
php_flag[display_startup_errors] = on
;php_flag[output_buffering] = off
php_admin_value[error_log] = /var/log/php5-fpm.log
php_admin_flag[log_errors] = on
und alles, was ich bekommen in Die Protokolle sind die folgenden
Website Fehlerprotokoll
2014/10/02 14:34:50 [error] 25966#0: *9 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 109.70.40.213, server: www.example.com, request: "POST /v2/payments/payment/sale HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "www.example.cm", referrer: "http://boxshop.im/checkout"
php error log
[02-Oct-2014 14:44:26.023450] DEBUG: pid 25216, fpm_event_loop(), line 419: event module triggered 2 events
[02-Oct-2014 14:44:26.023927] DEBUG: pid 25216, fpm_got_signal(), line 76: received SIGCHLD
[02-Oct-2014 14:44:26.024044] WARNING: pid 25216, fpm_children_bury(), line 252: [pool www] child 25251 exited on signal 11 (SIGSEGV) after 1441.610042 seconds from start
[02-Oct-2014 14:44:26.025943] NOTICE: pid 25216, fpm_children_make(), line 421: [pool www] child 26039 started
[02-Oct-2014 14:44:26.026192] DEBUG: pid 25216, fpm_event_loop(), line 419: event module triggered 1 events
ein schönes, würde Parse Error on line 234
schön sein!
Haben Sie es jemals geschafft, dies zu lösen? –
@JoelKoh Es könnte sein, dass der Prozess abstürzt, bevor ein Ausnahmefehler protokolliert werden kann. In diesem Fall kann nichts getan werden. –
Ist das "nginx site" deine/etc/nginx/nginx.conf oder einer der Hosts in/etc/nginx/sites-available? Als ich versuchte, nginx mit dieser Konfiguration neu zu starten, beschwert es sich, dass die "location" Direktive dort nicht erlaubt ist – mickadoo