Drupal fejlesztőként előfordulhat, hogy olyan helyzetbe kerülünk aminek eredménye a WSOD (White Screen of Death). Szerencsénk ha egyénileg fejlesztett témánk okozza a hibát ami ezt a kellemetlen fehér képernyőt eredményezi. Ebben a leírásomban megnézünk több módszert az oldalunk megmentésére.
Láthatatlan hibaüzenetek
A fehér képernyőn nem kapunk hibaüzenetet és ez jól is van így, főleg hogyha élesbe kapcsolt oldalról van szó. Kis debugging segítség lehet ha bekapcsoljuk ideiglenesen a hibák kiírását. Ezt az oldalunk gyökérkönyvtárában lévő index.php fájlon keresztül tudjuk elérni. Adjuk hozzá a fájl elejéhez (PHP tag után) a következő sorokat:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Ezzel láthatóvá válnak az eddig láthatatlan hibaüzenetek, amik kiindulási pontot adhatnak nekünk hibánk kiküszöbölésében.
Téma helyreállítása (rossz módszer)
Helyreállíthatjuk oldalunk működését az alapértelmezett (default) téma megváltoztatásával. Laikusként ehhez kis adatbázis hekkelést is végrehajthatunk a következő SQL kóddal:
Ezzel a Garland témát állítottuk be alapértelmezettként, de van ennél egyszerűbb út is.
Téma helyreállítása (dev módszer)
Ha már van egy kis gyakorlatunk, akkor biztosan kihasználjuk a Drush által nyújtott kényelmi funkciókat. Így csak annyi dolgunk van, hogy a következő parancsokkal elvégezzük a szükséges módosításokat.
Téma helyreállítása (Drupal módszer)
Szerencsénkre van olyan megoldás ami nem igényel sem adatbázisban való “nyúlkálást” sem parancssoros fejlesztői eszközök telepítését. Ehhez a settings.php fájl “Variable overrides” részét fogjuk kihasználni.
Tehát navigáljunk szerverünkön a sites/all/default/settings.php fájlhoz és keressük meg a fentebb említett részt, majd vegyük ki a kommentet a következő sor elől.
$conf['theme_default'] = 'garland';
A Drupal a $conf
tömbbe tölti be és tárolja a rendszer változókat. Ha a settings.php fájban határozzuk meg ezek értékét, akkor könnyedén felülírhatjuk az adatbázisban tárolt beállításokat. Ha sikerült kijavítanunk témánk hibáit, akkor újra kikommentelve ezt a sort visszatérhetünk régi témánkhoz.