2017/07/28 09:17:56 [fejl] 2488#0: *460868 FastCGI sendt ind stderr: "PHP-besked: PHP Advarsel: Ukendt: Inputvariabler oversteg 1000. For at øge grænseændringen max_input_vars i php.ini. i Ukendt på linje 0" mens svarheaderen læses fra upstream, klient: 1.1.1.1, server:www.itsvse.com, forespørgsel: "POST /admin.php HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", vært: "www.itsvse.com", referrer: "http://www.it.com/xxx"
Et problem, der optræder i php-fejlloggen
Fejlrapporten er stadig meget venlig, den burde vise det maksimale antal opslag, op til 1000 beskeder
Andre på internettet har også oplevet det
For noget tid siden deltog jeg i udviklingen af en APP API, hvor en af dem var at sende klientens adressebog gennem JSON, POST request API, i starten af testen fandt jeg ingen problemer, og så testede en kunde de uploadede data ufuldstændige og rapporterede en unormal fejl. Senere tjekkede jeg loggene og fandt ud af, at de data, POST havde modtaget, var ufuldstændige. Uanset om der sendes 1.000 eller 2.000 ad gangen, vises kun mere end 300 poster i loggen.
Efter en eftermiddag med at rode og kigge fandt jeg endelig ud af, at den JSON-pakke, der blev postet, var forkortet af PHP som standard. Årsagen er relateret til en parameter. php.ini max_input_vars i filen. Dette er en variabel, der er blevet tilføjet siden PHP 5.3.9.
max_input_vars henviser til antallet af commits, der udtrykkes, med en standardværdi på 1000. Det officielle formål med at tilføje denne variabel er at beskytte serveren bedre mod angreb. Undgå tilstopning.
Efter at have modificeret, skal du ændre og genstarte php-fpm
Service PHP-FPM stop
Service PHP-FPM Start
Efter genstart af php-fpm træder max_input_vars i kraft, er problemet løst? Løsning, ændr php.ini max_input_vars parametre, og genstart så for at løse problemet!
|