V dnešní době už mi připadá jako standard, že hostingové firmy z bezpečnostních důvodů nedovolují zobrazení chyb v PHP skriptech. Ale co když skript doma funguje bezproblémově a chybka se projeví až teprve na ostrém serveru (který výsměšně posílá jenom prázdný dokument)?

Ti kdo to marně zkoušeli zapnout přímo v PHP skriptu ať už pomocí error_reporting(E_ALL ^ E_NOTICE); nebo ini_set(…) už asi zjistili, že tudy cesta nevede.

Řešení samozřejmě existuje, jinak bych to asi nepsal, že.

Díky pár změnám v souboru .htaccess můžeme error reporting nejen zapnout, ale – co je ještě lepší – můžeme logy ukládat do logovacího souboru.

Jak zapnout zobrazení chyb v PHP

Pro zobrazení chyb na výstupu stačí do souboru .htaccess přidat následující řádek


php_flag display_errors on

Rovnou dodám že tohle řešení je z důvodů bezpečnosti vhodné použít jenom dočasně.

Anebo rovnou použít

Ukládání chyb v PHP skriptu do logovacího souboru

Na rozdíl od prvního příkladu zakážeme zobrazování chyb na výstupu skriptu.


# nezobrazovat chyby
php_flag display_startup_errors off
php_flag display_errors off

Pak je samozřejmě třeba umožnit ukládání chyb do souboru. A nastavíme kam. Mně na hostingu funguje i relativní cesta k souboru, někde možná budete muset použít absolutní cestu (zjistíte pomocí DOCUMENT_ROOT) Samořejmě nejlépe někam do neveřejného adresáře. Nebo souboru alespoň zrušíme práva pro čtení “zvenku”. Ale to určitě zvládnete sami.


# zapnout logování PHP
php_flag log_errors on
php_value error_log /logs/errors.txt

Komentáře

Váš komentář: