2017/07/28 09:17:56 [fout] 2488#0: *460868 FastCGI verzonden in stderr: "PHP-bericht: PHP Waarschuwing: Onbekend: Invoervariabelen overschreden 1000. Om de limietwijziging te verhogen max_input_vars in php.ini. in Onbekend op regel 0" terwijl de responsheader van upstream wordt gelezen, client: 1.1.1.1, server:www.itsvse.com, verzoek: "POST /admin.php HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "www.itsvse.com", verwijzing: "http://www.it.com/xxx"
Een probleem dat verschijnt in het php-foutlogboek
Het foutrapport is nog steeds erg vriendelijk, het zou moeten zijn om het maximale aantal berichten te tonen, tot 1000 berichten
Anderen op het internet zijn het ook tegengekomen
Enige tijd geleden heb ik meegewerkt aan de ontwikkeling van een APP API, waarvan een daarvan is om het adresboek van de klant via JSON, POST request API, te sturen; aan het begin van de test vond ik geen problemen, waarna een klant de geüploade data onvolledig testte en een abnormale fout meldde. Later controleerde ik de logs en ontdekte dat de door POST ontvangen gegevens onvolledig waren. Ongeacht of er 1.000 of 2.000 tegelijk worden doorgegeven, worden er slechts meer dan 300 records in het logboek getoond.
Na een middag zoeken ontdekte ik eindelijk dat het geplaatste JSON-pakket standaard door PHP was ingekort. De reden heeft te maken met een parameter. php.ini max_input_vars in het dossier. Dit is een variabele die sinds PHP 5.3.9 is toegevoegd.
max_input_vars verwijst naar het aantal commits dat wordt uitgedrukt, met een standaardwaarde van 1000. Het officiële doel van het toevoegen van deze variabele is om de server beter te beschermen tegen aanvallen. Vermijd verstoppingen.
Na het wijzigen moet je php-fpm aanpassen en opnieuw starten
Service PHP-FPM stop
Service PHP-FPM Start
Na het herstarten van php-fpm treedt de max_input_vars in werking, is het probleem opgelost? Oplossing, pas php.ini max_input_vars parameters aan en start dan opnieuw om het probleem op te lossen!
|