PHP execution time exeeded

2007-09-10 Diskussionsfäden Sven Kobow
Hallo,

ich schlage mich seit einiger Zeit mir einer Website rum, die auf meinem 
Server nicht so richtig funktionieren will. Ich bin allerdings der Meinung, 
dass der Server richtig konfiguriert ist, da sämtliche anderen Sites 
problemlos laufen.
Das Problem äussert sich so, dass sporadisch nur weiße Seiten angezeigt 
werden. In den logs finden sich dann solche Einträge:

PHP Fatal error:  Maximum execution time of 60 seconds exceeded 
in /srv/www/vhosts/website/http/index.php on line 339,

Mein erster Versuch die maximale execution time von 30s auf 60s anzuheben hat 
zwar schon zu einer Verbesserung geführt, das Problem aber noch nicht 
behoben. 
Ich weiß allerdings auch nicht genau, was diesen Fehler verursacht bzw. 
wodurch er ausgelöst wird. Ich weiß nur, dass bei der angegebenen 
Zeilennummer eine while-Schleife zu finden ist. 
Die Frage ist nun die: liegts am Server oder an der Programmierung 
(Endlosschleife etc.)? Ich habe den Code nicht selbst geschrieben und weiß 
daher nicht genau, was da passiert.

Irgendwelche Vorschläge?

Details:

OS: openSuSE Linux 10.2
Apache: 2.2.3
PHP: 5.2.0 with Suhosin-Patch 0.9.6.1 (cli)

Gruß

Sven


signature.asc
Description: This is a digitally signed message part.


Re: PHP execution time exeeded

2007-09-10 Diskussionsfäden James Blond
Hallo Sven,
um das beantworten zu können, wäre es sehr hilfreich, wenn Du das
while mal mit copy und paste per mail senden könntest.
Ohne etwas zu sehen gibt es nur raten. Mein erster Tipp ist die
Programmierung oder der server hat zu wenig resourcen wie CPU und RAM.

Gruß
Mario

On 9/10/07, Sven Kobow [EMAIL PROTECTED] wrote:
 Hallo,

 ich schlage mich seit einiger Zeit mir einer Website rum, die auf meinem
 Server nicht so richtig funktionieren will. Ich bin allerdings der Meinung,
 dass der Server richtig konfiguriert ist, da sämtliche anderen Sites
 problemlos laufen.
 Das Problem äussert sich so, dass sporadisch nur weiße Seiten angezeigt
 werden. In den logs finden sich dann solche Einträge:

 PHP Fatal error:  Maximum execution time of 60 seconds exceeded
 in /srv/www/vhosts/website/http/index.php on line 339,

 Mein erster Versuch die maximale execution time von 30s auf 60s anzuheben hat
 zwar schon zu einer Verbesserung geführt, das Problem aber noch nicht
 behoben.
 Ich weiß allerdings auch nicht genau, was diesen Fehler verursacht bzw.
 wodurch er ausgelöst wird. Ich weiß nur, dass bei der angegebenen
 Zeilennummer eine while-Schleife zu finden ist.
 Die Frage ist nun die: liegts am Server oder an der Programmierung
 (Endlosschleife etc.)? Ich habe den Code nicht selbst geschrieben und weiß
 daher nicht genau, was da passiert.

 Irgendwelche Vorschläge?

 Details:

 OS: openSuSE Linux 10.2
 Apache: 2.2.3
 PHP: 5.2.0 with Suhosin-Patch 0.9.6.1 (cli)

 Gruß

 Sven



--
Apache HTTP Server Mailing List users-de
  unsubscribe-Anfragen an [EMAIL PROTECTED]
   sonstige Anfragen an [EMAIL PROTECTED]
--



Re: PHP execution time exeeded

2007-09-10 Diskussionsfäden Rainer Sokoll
On Mon, Sep 10, 2007 at 11:23:42AM +0200, James Blond wrote:

 Ohne etwas zu sehen gibt es nur raten. Mein erster Tipp ist die
 Programmierung oder der server hat zu wenig resourcen wie CPU und RAM.

Du meinst, mit einer schnelleren CPU wird die Endlosschleife eher
beendet?

Raiduck'n runner

--
Apache HTTP Server Mailing List users-de 
  unsubscribe-Anfragen an [EMAIL PROTECTED]
   sonstige Anfragen an [EMAIL PROTECTED]
--



Re: PHP execution time exeeded

2007-09-10 Diskussionsfäden Sven Kobow
Servus Mario,

hier die schleife:

// {wbvar ...} finden und entsprechend einsetzen

while(stristr($c,'{wbvar'))
{
$ii= stristr($c,{wbvar);
$paras = split( ,substr($ii,1,strpos($ii,})-1));
$ii = stristr($c,{wbvar);
$c  = substr($c,0,strlen($c)-strlen($ii)).
$$paras[1].substr(stristr($ii,}),1);
};

was da allerdings genau geschieht kann ich auch nicht sagen. kann leider nicht 
mehr code rausgeben, da er mir nicht gehört.
was den zweiten punkt angeht halte ich das für unwahrscheinlich:

dual intel xeon 3Ghz (HT)
2GB DDR2 Ram

daran sollte es also nicht liegen. hatte vergessen zu erwähnen, dass es sich 
um x64_86 Linux handelt. vielleicht ist das ja von einer gewissen relevanz?!

gruß

sven

 Hallo Sven,
 um das beantworten zu können, wäre es sehr hilfreich, wenn Du das
 while mal mit copy und paste per mail senden könntest.
 Ohne etwas zu sehen gibt es nur raten. Mein erster Tipp ist die
 Programmierung oder der server hat zu wenig resourcen wie CPU und RAM.

 Gruß
 Mario

 On 9/10/07, Sven Kobow [EMAIL PROTECTED] wrote:
  Hallo,
 
  ich schlage mich seit einiger Zeit mir einer Website rum, die auf meinem
  Server nicht so richtig funktionieren will. Ich bin allerdings der
  Meinung, dass der Server richtig konfiguriert ist, da sämtliche anderen
  Sites problemlos laufen.
  Das Problem äussert sich so, dass sporadisch nur weiße Seiten angezeigt
  werden. In den logs finden sich dann solche Einträge:
 
  PHP Fatal error:  Maximum execution time of 60 seconds exceeded
  in /srv/www/vhosts/website/http/index.php on line 339,
 
  Mein erster Versuch die maximale execution time von 30s auf 60s anzuheben
  hat zwar schon zu einer Verbesserung geführt, das Problem aber noch nicht
  behoben.
  Ich weiß allerdings auch nicht genau, was diesen Fehler verursacht bzw.
  wodurch er ausgelöst wird. Ich weiß nur, dass bei der angegebenen
  Zeilennummer eine while-Schleife zu finden ist.
  Die Frage ist nun die: liegts am Server oder an der Programmierung
  (Endlosschleife etc.)? Ich habe den Code nicht selbst geschrieben und
  weiß daher nicht genau, was da passiert.
 
  Irgendwelche Vorschläge?
 
  Details:
 
  OS: openSuSE Linux 10.2
  Apache: 2.2.3
  PHP: 5.2.0 with Suhosin-Patch 0.9.6.1 (cli)
 
  Gruß
 
  Sven

 --
 Apache HTTP Server Mailing List users-de
   unsubscribe-Anfragen an [EMAIL PROTECTED]
sonstige Anfragen an [EMAIL PROTECTED]
 --



-- 
Sven Kobow
Universität Paderborn
Sportmedizinisches Institut - Rechnerbetrieb 
Raum SP1-501
FON: +49 (05251) 60-3586
MAIL: [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part.


Re: PHP execution time exeeded

2007-09-10 Diskussionsfäden James Blond
Hallo!

Sven schrieb:
 // {wbvar ...} finden und entsprechend einsetzen

 while(stristr($c,'{wbvar'))
 {
 $ii= stristr($c,{wbvar);
 $paras = split( ,substr($ii,1,strpos($ii,})-1));
 $ii = stristr($c,{wbvar);
 $c  = substr($c,0,strlen($c)-strlen($ii)).
 $$paras[1].substr(stristr($ii,}),1);
 };

Wie die Beschreibung vom Code schon sagt:

{wbvar ...} finden und dann zerlegen.
Der Inhalt des While selber ist nicht Zeit aufwendig. Das bißchen
suchen ist IMHO schnell abgearbeitet.
Die Frage ist nur, wie groß der input string $c ist. Ich denke, das
die größe des Strings das in die Länge zieht.

Rainer schrieb:
Du meinst, mit einer schnelleren CPU wird die Endlosschleife eher
beendet?

Ist das eine Fangfrage?

Sven schrieb:
 dual intel xeon 3Ghz (HT)
 2GB DDR2 Ram

An sich mehr als ausreichen für die meisten PHP Anwendungen. Oder ist
das ein shared vhost?

 um x64_86 Linux handelt.
Ob das was mit den 64 bit zu tun hat, weiß ich nicht, da habe ich noch
keine Erfahrungen gesammelt.

Gruß
Mario

--
Apache HTTP Server Mailing List users-de
  unsubscribe-Anfragen an [EMAIL PROTECTED]
   sonstige Anfragen an [EMAIL PROTECTED]
--



Re: PHP execution time exeeded

2007-09-10 Diskussionsfäden Paul Puschmann
On Mon, Sep 10, 2007 at 10:59:21AM +0200, Sven Kobow wrote:
 Hallo,
 
 Das Problem äussert sich so, dass sporadisch nur weiße Seiten angezeigt 
 werden. In den logs finden sich dann solche Einträge:
 
 PHP Fatal error:  Maximum execution time of 60 seconds exceeded 
 in /srv/www/vhosts/website/http/index.php on line 339,
 
 Mein erster Versuch die maximale execution time von 30s auf 60s anzuheben hat 
 zwar schon zu einer Verbesserung geführt, das Problem aber noch nicht 
 behoben. 

Richtig, sondern nur verschoben.
 Ich weiß allerdings auch nicht genau, was diesen Fehler verursacht bzw. 
 wodurch er ausgelöst wird. Ich weiß nur, dass bei der angegebenen 
 Zeilennummer eine while-Schleife zu finden ist. 
 Die Frage ist nun die: liegts am Server oder an der Programmierung 
 (Endlosschleife etc.)? Ich habe den Code nicht selbst geschrieben und weiß 
 daher nicht genau, was da passiert.
 
Das Script versuchen zu debuggen. Was macht das Script?

Paul
-- 
: Bitte einen Realname benutzen, unter dem Zitat antworten
: und einfache Text-Mails senden (kein HTML).
: Danke.


signature.asc
Description: Digital signature


Re: PHP execution time exeeded

2007-09-10 Diskussionsfäden Dirk Nijenhuis

Hallo Sven!



Sven Kobow schrieb:

Servus Mario,

hier die schleife:

// {wbvar ...} finden und entsprechend einsetzen

while(stristr($c,'{wbvar'))
{
$ii= stristr($c,{wbvar);
$paras = split( ,substr($ii,1,strpos($ii,})-1));
$ii = stristr($c,{wbvar);
$c  = substr($c,0,strlen($c)-strlen($ii)).
$$paras[1].substr(stristr($ii,}),1);
};

was da allerdings genau geschieht kann ich auch nicht sagen. kann leider nicht 
mehr code rausgeben, da er mir nicht gehört.
  


Dann finde es doch heraus. Lasse Dir in der Schleife $ii und $c 
ausgeben. Zur Übersichtlichkeit eventuell einfach einen Zähler mitlaufen 
lassen und ausgeben. Ich vermute, dass Du dann siehst wann und warum die 
while-Bedingung unendlich oft wahr ist.

Und dann sollte es Dir über
http://www.php.net/manual/de/indexes.php
möglich sein zu verstehen was da passiert.

[...]


Grüße
von

Dirk

--
   Apache HTTP Server Mailing List users-de 
 unsubscribe-Anfragen an [EMAIL PROTECTED]

  sonstige Anfragen an [EMAIL PROTECTED]
--