2017/07/28 09:17:56 [virhe] 2488#0: *460868 FastCGI lähetti stderr: "PHP-viesti: PHP Varoitus: Tuntematon: Syötemuuttujat ylittivät 1000. Rajan nostaminen max_input_vars php.ini. Tuntematon rivillä 0" lukiessaan vastausotsikkoa ylävirrasta, asiakas: 1.1.1.1, palvelin:www.itsvse.com, request: "POST /admin.php HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", isäntä: "www.itsvse.com", viittaaja: "http://www.it.com/xxx"
Ongelma, joka näkyy PHP-virhelokissa
Virheilmoitus on edelleen hyvin ystävällinen, sen pitäisi näyttää maksimimäärä julkaisuja, enintään 1000 viestiä
Myös muut internetissä ovat kohdanneet sen
Jonkin aikaa sitten osallistuin APP API:n kehittämiseen, johon yksi oli lähettää asiakkaan osoitekirja JSONin kautta, POST-pyyntö-API:n kautta, testin alussa ei löytynyt ongelmia, ja sitten asiakas testasi ladatun datan epätäydelliseksi ja raportoi poikkeavan virheen. Myöhemmin tarkistin lokit ja huomasin, että POSTin vastaanottamat tiedot olivat puutteellisia. Riippumatta siitä, ohitetaanko kerralla 1 000 vai 2 000 tietuetta, lokissa näytetään vain yli 300 tietuetta.
Iltapäivän heittelyn jälkeen huomasin vihdoin, että julkaistu JSON-paketti oli oletuksena katkaistu PHP:llä. Syy liittyy parametriin. php.ini max_input_vars tiedostossa. Tämä muuttuja on lisätty PHP 5.3.9:stä lähtien.
max_input_vars tarkoittaa ilmaistujen committien määrää, oletusarvolla 1000. Tämän muuttujan lisäämisen virallinen tarkoitus on suojata palvelinta paremmin hyökkäyksiltä. Vältä tukkeutumista.
Muokkauksen jälkeen sinun täytyy muokata ja käynnistää php-fpm uudelleen
Palvelu PHP-FPM-pysäkki
Palvelu PHP-FPM:n aloitus
Kun php-fpm käynnistetään uudelleen, max_input_vars alkaa vaikuttaa, onko ongelma ratkaistu? Ratkaisu, muokkaa php.ini max_input_vars parametreja ja aloita sitten alusta ongelman ratkaisemiseksi!
|