Autor | Zpráva | ||
---|---|---|---|
Lorin Profil * |
#1 · Zasláno: 25. 12. 2011, 13:25:05
Dobrý den.
Mám na localhostu nově nainstalovaný Apache2 s PHP5 a MySQL (tuším také verze 5). Localhost používám jako testovací prostředí pro scripty které následně nahraji na web. Zřejmě není něco správně nastaveno, protože pokud v některém souboru udělám nějakou chybu, nevypíše se mi chybová hláška, ale jen bílá stránka. V konfiguračním souboru /etc/php5/apache2/php.ini mám nastaveno error_reporting = E_ALL | E_STRICT. Zkusil jsem si tedy vše vypsat v php souboru: <?php // 32767 echo error_reporting() . "<br />"; // 32767 echo ini_get("error_reporting") . "<br />"; // 1 echo ini_get("display_errors") . "<br />"; // 30719 echo E_ALL . "<br />"; // 2048 echo E_STRICT . "<br />"; // 32767 echo E_ALL|E_STRICT; ?> Pro jistotu jsem chybový script zkusil nahrát na server, kam dávám už odladěné scripty a chyby se zobrazily. Testovací soubor vypsal následující: <?php // 6135 echo error_reporting() . "<br />"; // 6135 echo ini_get("error_reporting") . "<br />"; // 1 echo ini_get("display_errors") . "<br />"; // 6143 echo E_ALL . "<br />"; // 2048 echo E_STRICT . "<br />"; // 8191 echo E_ALL|E_STRICT; ?> Jak je možné, že se liší hodnota v E_ALL na localhostu (30719) a serveru (6143)? |
||
YoSarin Profil |
#2 · Zasláno: 25. 12. 2011, 13:28:17
Podívej se na http://php.net/manual/en/errorfunc.constants.php - hodnota v E_ALL závisí na konkrétní verzi PHP:
32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously |
||
Lorin Profil * |
#3 · Zasláno: 25. 12. 2011, 13:46:09
Takže chyba se zobrazováním chybových hlášek (chyba je v includování absolutní cesty) není zapříčiněna rozdílem hodnoty v E_ALL. Čím by to tedy mohlo být?
|
||
YoSarin Profil |
#4 · Zasláno: 25. 12. 2011, 14:01:31
Lorin:
Zapíše to nějakou chybu do logu? A pokud ano je stejná jako ta co se zobrazuje na hostingu? Máš nějaký konkrétní příklad který to dělá? |
||
Lorin Profil * |
#5 · Zasláno: 25. 12. 2011, 14:11:23
V logu žádná chyba není.
Soubor o který šlo vypadal nějak podobně: <?php define("SERVER_ADDRESS", "http://" . $_SERVER['SERVER_NAME']); define("DIRECTORY", dirname($_SERVER['SCRIPT_NAME'])); include SERVER_ADDRESS . DIRECTORY . "/test.php"; ?> |
||
YoSarin Profil |
#6 · Zasláno: 25. 12. 2011, 14:40:12
Lorin:
A má php dostatečná práva na zápis do logu? Třeba se pokouší chybu před výpisem zalogovat, to se mu nepodaří a spadne nějakým nezachytitelným fatalerrorem... co log apache? |
||
Lorin Profil * |
#7 · Zasláno: 25. 12. 2011, 15:01:13
Dodatečně jsem nastavil error_log na cestu k nějakému souboru a nastavil mu správná práva (zápis ostatními). Po restartu apache a znovu-načtení stránky se v logu nic neobjevilo. Stránka je prázdná i když zakážu logování chyb do souboru (log_errors = Off).
|
||
Časová prodleva: 12 let
|
0