| 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: 15 let
|
|||
0