2017/07/28 09:17:56 [feil] 2488#0: *460868 FastCGI sendt inn stderr: "PHP-melding: PHP Advarsel: Ukjent: Inndatavariabler oversteg 1000. For å øke grenseendringen max_input_vars i php.ini. i Ukjent på linje 0" mens den leser responsheader fra upstream, klient: 1.1.1.1, server:www.itsvse.com, forespørsel: "POST /admin.php HTTP/1.0", oppstrøms: "fastcgi://127.0.0.1:9000", vert: "www.itsvse.com", referrer: "http://www.it.com/xxx"
Et problem som dukker opp i php-feilloggen
Feilrapporten er fortsatt veldig vennlig, det skal vise maksimalt antall innlegg, opptil 1000 meldinger
Andre på Internett har også støtt på det
For en tid tilbake deltok jeg i utviklingen av et APP-API, hvor en av dem var å sende klientens adressebok gjennom JSON, POST-forespørsels-API, i starten av testen fant ingen problemer, og så testet en kunde de opplastede dataene ufullstendige og rapporterte en unormal feil. Senere sjekket jeg loggene og fant ut at dataene POST mottok var ufullstendige. Uansett om 1 000 eller 2 000 sendes samtidig, vises bare mer enn 300 poster i loggen.
Etter en ettermiddag med leting fant jeg endelig ut at JSON-pakken som ble postet var forkortet av PHP som standard. Årsaken er knyttet til en parameter. php.ini max_input_vars i filen. Dette er en variabel som har blitt lagt til siden PHP 5.3.9.
max_input_vars, refererer til antall commits som uttrykkes, med en standardverdi på 1000. Det offisielle formålet med å legge til denne variabelen er å beskytte serveren bedre mot angrep. Unngå tetting.
Etter endringen må du endre og starte php-fpm på nytt
Tjeneste PHP-FPM stopp
Service PHP-FPM Start
Etter å ha startet php-fpm på nytt, vil max_input_vars tre i kraft, er problemet løst? Løsning, endre php.ini max_input_vars parametere, og så starte på nytt for å løse problemet!
|