Apache 1/2 + php5 ?!?

8 отговора 170 прегледа
#1

Apache 1/2 + php5 ?!?

Инсталирах си PHP 5 RC1(WinXP), но следния скрипт, както и повечето от скриптовете, съдържащи exception handling (try..catch) карат апача да забива (1 и 2).

<?php
function logTick($part)
{
static $n = 0;
print("Tick $n $part " . microtime() . "
\n");
$n++;
}
print("Start " . microtime() . "
\n");
register_tick_function("logTick", "doing square roots");
declare(ticks=1)
{
1;1;1;
}
unregister_tick_function("logTick");
print("Done " . microtime() . "
\n");
?>

Може ли някои да го пробва, да знам поне в мен ли е проблема. Все пак и да съм сбъркал нещо в настройките, логично е да не се изпъляват всички пхп скиптове, а не тези, които използват специфични конструкции от езика.

Отговор
в отговор на Agathon #2

Re: Apache 1/2 + php5 ?!?

spored men gre6kata e v skripta,
sega niamam vsreme da se 4udia kade, no az sam PHP 4.3.4 i koda mi vra6ta:
PHP has encountered an Access Violation at 001D0005 Start 0.75325000 1081799433
kaji ako razbere6 kade e problema.
:) pozdravi

Отговор
в отговор на ti-ri-bum #3

Re: Apache 1/2 + php5 ?!?

E, trudno da ne ti vurne gre6ka, pri polojenie 4e koda e pisan za php5

Отговор
в отговор на Agathon #4

Re: Apache 1/2 + php5 ?!?

Preinstalirah vsi4ko nanovo, php scriptovete si vurvqt, opitam li se da izpolzvam tozi taka zabiva scripta, 4e sled tova daje ne iska da se startira dokato ne preinstall windows. blokovete try..catch otnovo ne vurvqt, tozi pat puk sam nqmal definiran klas Exception. Moje li nqkoi da mi kaje, pri polojenie 4e vsi4ki php4 scriptove si ba4kat, moje li da e problema v nepravilni nastroiki ot moq strana ?

Отговор
в отговор на Agathon #5

Re: Apache 1/2 + php5 ?!?

kakvo ozna4ava:
....."pri polojenie 4e koda e pisan za php5....."
4e mnogo silno si si mislil za php5 dokato si go pisal li ???
tezi funkcii gi ima i v 4.0 nagore.

i 2-ro
ako pro4ete6 kakvo pi6e v php.net...
tam se kazva.....

"If your script will be used on Windows sytems running Apache, its best to stay away from this function... and for portability purposes, try and use a different function.
In most cases it will crash apache continually until the page is stopped from loading."

Отговор
в отговор на ti-ri-bum #6

Re: Apache 1/2 + php5 ?!?

samo zabravih da kaja 4e "this function" e register_tick_function();

Отговор
в отговор на ti-ri-bum #7

Re: Apache 1/2 + php5 ?!?

Hmm, izvinqvam se. Ne sam do4el. Qvno problema sas try..catch e ot sa6toto estestvo (4e php5 e beta ili 4e sam w win).

Отговор
в отговор на Agathon #8

Re: Apache 1/2 + php5 ?!?

Значи, наистина има проблеми с try catch функционалността, но от bugs.php.net претендират, че в новите snapshots е оправена

Специално за мене, когато имам 1 exception, няма проблеми до момента, в който не натисна рефреш няколко пъти. Когато обаче изключенията са 1+, почти винаги апача забива.

Иначе, exceptions си вървят, макар и значително по-бавно, отколкото ако не ги използваш (направо в пъти по-бавно).
Предполагам, имаш проблеми, тъй като не си дочел changelog-а, т.е. от beta 4 мисля беше, за да се ползват exceptions, трябва задължително да дефинираш твой exception, наследяващ вградения, примерно:

class MyException extends Exception {
function __construct($message) {
parent::__construct($message);
}
}

Отговор
в отговор на AcidMemory #9

Re: Apache 1/2 + php5 ?!?

Mersi mnogo za suveta!
Re6enieto, koeto vzimam e dokato ne izleze stabilna versiq na php5, v koqto okon4atelno da e izvestno kak 6te se izpolzvat try..catch i sa implementirani bezproblemno, da ne polzvam tazi specifika ot ezika. Mislq 4e i bez tqh 6te nau4a osnovnoto, nali?

Отговор