Minule ma bratranec poprosil, aby som sa mu pozrel na chybu ktorú mal pri inštalácii WordPressu. Ak sa nemýlim, tak to bolo v kroku číslo 2 kde sa WordPress pokúša pripojiť na databázu. Problém bol, že v tomto kroku nedošlo k vypísaniu žiadnej chyby… ale len k zobrazeniu prázdnej stránky.
Vyzeralo to, že PHP skript bol zostrelený už pri jeho štarte… Začal som tým, že som zapol error_reporting, čo však nemalo žiadny efekt, keďže sa žiadna chyba stále nezobrazovala.
Tak som začal prehľadávať priamo zdrojáky inštalácie a natrafil som na nasledovný riadok v súbore www_root/wp-includes/wp-db.php
.
$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword, true);
Po volaní mysql_connect sa už nič nevykonalo a skript bol ukončený. Dôvod, prečo nedošlo k vypísaniu žiadnej chyby je @ pred menom funkcie. Ten v PHP zabezpečí aby pri volaní danej funkcie bol vypnutý error reporting
. To spôsobí, že nebudú vypísané chyby priamo z PHP, ale WordPress spracuje vrátenú chybu a vypíše ju v krajšej forme. V tomto prípade to bohužiaľ nefungovalo.
Keď som zavináč vyhodil a znovu sa pokúsil spustiť inštaláciu, tak došlo k vypísaniu tejto chyby:
Fatal error: mysql_connect() [function.mysql-connect]: Using mysql has been disabled by admin. in /www_root/wp-includes/wp-db.php on line 341.
Čiže ako vidno tak problémom bolo, že funkcia mysql_connect
bola pre daný hosting zakázaná a vďaka @ pred volaním tejto funkcie sa nič nevypísalo a skript bol ukončený.
Čiže ak by ste niekedy mali podobný problém s WP tak, si najprv zistite či máte vhodný web hosting. A ak by ste mali podobný problém vo všeobecnosti s PHP tak Vám nepomôže nič iné ako vyhľadať všetky zavináče pred volaním nejakej funkcie ;).
Pridaj komentár