sql >> Database >  >> RDS >> Mysql

Willekeurige PHP FastCGI / verbinding opnieuw ingesteld door peer / onvolledige headers

Dit probleem is over het algemeen niet alleen host-specifiek, het is ook gerelateerd aan de ontwikkelaar, afhankelijk van de configuratie. Sommige hosts zijn echter nogal strikt met FastCGI en beperken uw mogelijkheden. Het is over het algemeen gemakkelijker te gebruiken zonder FastCGI en gebruik gewoon mod_php tenzij u specifieke behoefte hebben om FastCGI in uw toepassing te gebruiken.

We zouden je fcgi-wrapper (wat staat in /dev/shm/blackmou-php.fcgi) of .htaccess voor FastCGI-spawning moeten zien, om je beter te kunnen helpen zonder te weten met welke bestanden en de code in die bestanden het probleem zich voordoet. Gebruiken je hosts ook Apache, LightHttpd of Nginx (of een combinatie)? Op dat moment raad ik je ten zeerste aan om te updaten om PHP 5.3.9+ te gebruiken

Aangezien dit kan worden veroorzaakt door een aantal problemen, voorkomt FastCGI effectief dat uw site/scripts worden aangevallen door een Denial of Service of crashen als gevolg van geheugenlekken, enz. van verzoeken of vast komen te zitten in een eindeloze lus door time-out en het beëindigen van het proces)

Deze fout wordt in het algemeen veroorzaakt door een idle_timeout (standaard 30 seconden) of max. limiet voor kinderen. Het kan ook worden veroorzaakt doordat iemand een langlopend script start en zijn browser/verbinding sluit voordat het script is voltooid.

FastCGI lanceert zijn proceswrapper, voert een commando uit, time-out voordat het proces is voltooid, verbinding wordt gezien als gereset door peer.

Een ander voorbeeld is dat max. kinderen (maxProcessen) wordt bereikt (Vb:veel sites tonen 2 of 4 als voorbeeld terwijl u in werkelijkheid 20 of 50 nodig heeft, afhankelijk van het gemiddelde verkeer) Als alle kinderen momenteel actief zijn en een extra verzoek/ verbinding is gemaakt, zijn de kinderen beperkt tot maxProcesses, waaraan FastCGI de actieve kinderen niet zal delen, dus het moet eerst ofwel het proces beëindigen en een nieuw onderliggend proces starten, of het verzoek laten vallen, afhankelijk van uw configuraties.

Hier is wat meer informatie over de instellingen:

http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html

http://www.fastcgi.com/drupal/node/10

Wrapper voorbeeld

PHP_FCGI_CHILDREN=0 #no limit
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=10000
export PHP_FCGI_MAX_REQUESTS

UPDATE

Om hieraan toe te voegen, kan dit ook worden veroorzaakt door php-geheugenlimiet

Als het bovenstaande uw probleem niet oplost, update dan uw php.ini om de memory_limit te vergroten



  1. Integratie met een ander systeem

  2. ORA-00604 ORA-12705

  3. Hoe twee kolommen in een MySQL-database bij te werken?

  4. Database-e-mailmeldingen configureren in MS SQL Server