Jump to content
php.lv forumi

Kļūda: Premature end of script headers


mad182

Recommended Posts

Kādu laiku esmu mēģinājis izdomāt kļūdas iemeslu, bet pašam īsti neizdodas. Problēma tāda, ka retos gadījumos (1 no vairākiem simtiem pieprasījumu) lapa neielādējas uzmetot internal server error, un error logos par to vēsta tikai šāds ieraksts:

 

[Mon Apr 02 06:58:40 2012] [error] [client 85.23*] Premature end of script headers: combine.php
[Mon Apr 02 07:03:32 2012] [error] [client 85.31*] Premature end of script headers: index.php
[Mon Apr 02 07:10:13 2012] [error] [client 207.24*] Premature end of script headers: index.php
[Mon Apr 02 07:22:38 2012] [error] [client 66.24*] Premature end of script headers: index.php

 

Visam pasākumam tiek izmantots ubuntu serveris, php, apache, mysql, memcache, apc (gļuks gan bija arī pirms apc uzinstalēšanas). Visam aktuālās versijas no ubuntu repo. Pieprasījumi vakaros ir vairāki sekundē, bet nu ne tik daudz, lai serverim ar to būtu problēmas tikt galā, un gļukam, šķiet nav sakara ar slodzi.

 

Googlējot šo kļūdu gan daudz kur minēts, ka tāda problēma var būt, ja php nespēj izpildīties dēļ nepietiekamas servera jaudas, bet nu man īsti neticas, ka tāds varētu būt iemesls kļūdām septiņos no rīta, kad load average ar diviem kodoliem bija zem 0.5, un vispār load reti uzkāpj virs 2.

 

Kodā nav neviena php brīdinājuma vai paziņojuma, un kļūda izpaužas šķietami pilnīgi randomi, jebkurā lapas sadaļā. Un vispār šķiet, ka tam iemesls nav meklējams lapas kodā, jo kļūda mēdz parādīties arī js/css kompresorā, kam nav pilnīgi nekāda sakara ar pārējo lapas struktūru, tas ir vienkārši paņemts gatavs un nav atkarīgs no neviena cita faila.

 

It kā jau ar to var sadzīvot, bet nu interesē saprast, kur īsti ir problēma. Varbūt kāds var dot minējumus, ko apskatīties. Diemžēl kaut ko notestēt ir visai sarežģīti, atliek tikai vērot logus.

Edited by mad182
Link to comment
Share on other sites

Nedomāju, ka divos neatkarīgos koda gabalos ir kļūda, kas šķietami nejauši izraisa "internal server error". Klientu ip ir dažādas :/ Šķiet, ka tam drīzāk vajadzētu būt saistītam ar pašu apache/php, bet nesaprotu, kas tieši.

 

Mans pēdējais minējums bija par sesiju garbage collector'u, kurš varētu nostrādāt apmēram tik pat bieži, bet tā atslēgšana neko nemainija.

Edited by mad182
Link to comment
Share on other sites

izteikšu minējumus:

1. nepareizas tiesības uz failu

2. faili rediģēti uz wind. mašīnas un dotais redaktors rindiņu pārnešanai izmanto CR+LF bet priekš *.nix vajag LF

ielādē failu redaktorā un uzliec lai rindu pārnešna būtu unix formātā

aaa.. un vel uzliec PHP kā apche moduli nevis CGI (visticamāk ka problēma pazudīs)

Edited by Grey_Wolf
Link to comment
Share on other sites

Faili visi pieder pareizajam lietotājam. Ar newline formatējumu arī viss ir ok, windows nelietoju kā sugu.

 

Ir tā, ka uz servera ir arī citas lapas, un katrai lapai php izpildās ar savu lietotāju (izmantojot suPHP). Šo funkcionalitāti gribētos saglabāt. Domā vaina varētu būt ar to saistīta?

Link to comment
Share on other sites

Gribējās ierobežot, lai katrai lapai php izpildītos ar savu lietotāju. Cik noprotu, ar mod_php to īsti izdarīt nevar.

 

Bet nu anyway, tam jābūt kaut kādam izskaidrojumam, nevar tak būt, ka php nekrešo tikai kā apache modulis.

Ārzemju forumi saka kaut ko par log failiem virs 2 gigabaitiem, bet man tur visa smagā suphp logošana ir atslēgta.

Edited by mad182
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...