Szerver- és PHP-hibák
Gyakori szerveroldali és PHP-s hibák (letiltott függvények, hiányzó adatbázis-jogosultság, üres admin, shortcode-ok) okai és megoldásai.
Az alábbi hibák többsége a tárhely beállításaiból ered. Ha nem vagy a szerver adminisztrátora, a javításhoz a tárhelyszolgáltatód segítsége kell.
„[XYZ] has been disabled for security reasons”
Szekció neve “„[XYZ] has been disabled for security reasons””Példák a hibaüzenetre:
PHP Warning: loadClass() has been disabled for security reasons in /PATH_TO_WORDPRESS/wp-content/plugins/wordpress-seo-premium/vendor/composer/ClassLoader52.php on line 186
Warning: php_uname() has been disabled for security reasons in /www/wp-content/plugins/wordpress-seo-premium/vendor/yoast/wp-helpscout/src/class-helpscout-beacon-identifier.php on line 61A tárhely beállításai nem engedik, hogy a szerver használja a hibaüzenetben megnevezett függvényt (loadClass(), php_uname vagy más).
Megoldás: kérd meg a tárhelyszolgáltatót vagy a szerver adminisztrátorát, hogy engedélyezze a függvényt. Ha nem tudják, érdemes másik tárhelyen gondolkodnod.
A bővítmény nem tud adatbázistáblákat létrehozni
Szekció neve “A bővítmény nem tud adatbázistáblákat létrehozni”A működéshez a bővítménynek táblákat kell létrehoznia az adatbázisban. Ha ez automatikusan nem sikerül, hibaüzenetet kapsz.
Mielőtt bármit módosítasz, készíts biztonsági mentést az adatbázisról. Ha van lehetőséged, előbb próbáld ki a változtatást tesztoldalon (staging), hogy az éles oldal kiesése minél rövidebb legyen.
Nem neked kell megjavítanod: kérd meg a tárhelyszolgáltatót. A bővítménynek az adatbázis-felhasználón az alábbi jogosultságokra van szüksége: ALTER, CREATE, DELETE, INDEX, INSERT, SELECT, UPDATE és DROP. Írhatsz neki például így:
Szia! A Yoast SEO működéséhez új táblákat kell létrehoznia az adatbázisunkban. A bővítmény automatikusan megpróbálja ezeket létrehozni, de nem sikerült. Be tudnád állítani az adatbázis jogosultságait, hogy létre tudja hozni a táblákat? A bővítménynek ezek a jogosultságok kellenek: ALTER, CREATE, DELETE, INDEX, INSERT, SELECT, UPDATE és DROP. Köszönöm!
Ha a tárhelyszolgáltató nem hajlandó vagy nem tudja átállítani a jogosultságokat, az egyetlen tanács a tárhelyváltás.
Üres admin oldalak
Szekció neve “Üres admin oldalak”Ha az admin felület oldalai üresek (az oldal nem omlik össze, de a vezérlőpulton és más admin részeken nincs tartalom), a bővítmény a PHP bccomp() függvényét használja. Ez a BCMath PHP-könyvtár része, amely a PHP-val együtt jár, de nagyon kevés tárhelyen nincs beállítva. Ilyenkor az admin üres marad, amint a bővítmény eléri ezt a függvényt.
Megoldás: kérd meg a tárhelyszolgáltatót, hogy a szerver PHP-jét állítsák be a BCMath támogatással (a PHP fordításakor a --enable-bcmath kapcsolóval). Új csomagot nem kell telepíteniük, a beállítás azonnal megoldja a hibát.
„You should add … to the httpd config file”
Szekció neve “„You should add … to the httpd config file””Ez a figyelmeztetés Apache szerveren jelenik meg, például:
As you're on Apache, you should add the following include to the website httpd config file:Include /Path_To_WordPress/wp-content/uploads/wpseo-redirects/.redirectsOk: ha kikapcsolod a PHP-s átirányításokat, és külön átirányítási fájlt hozatsz létre, a bővítmény az összes átirányítást egy saját fájlba írja. A szerver viszont nem tudja, hogy ezt a fájlt használnia kell.
Megoldás: a figyelmeztetésben szereplő Include sor azt mondja meg a szervernek, hogy használja a fájlt. A httpd.conf szerkesztéséhez kérj útmutatást a tárhelyszolgáltatótól vagy a szerver adminisztrátorától. Biztonsági okokból a bővítmény nem tudja ellenőrizni a szerver teljes elérési útját, ezért a figyelmeztetés akkor is megmarad, ha a sort már hozzáadtad a httpd.conf fájlhoz.
„Call to undefined function filter_input()”
Szekció neve “„Call to undefined function filter_input()””Fatal error: Call to undefined function filter_input() in /PATH_TO_WORDPRESS/wp-content/plugins/wordpress-seo-premium/PATH_TO_FILE.extension on line ###A tárhelyen ki van kapcsolva a PHP szűrő (filter) kiterjesztése, amelyre a bővítmény támaszkodik. A legtöbb környezetben alapból be van kapcsolva, ezért általában nem szokott kikapcsolt lenni. Ha nem vagy a szerver adminisztrátora, magad nem tudod megoldani: kérd meg a tárhelyszolgáltatót, hogy engedélyezze a kiterjesztést.
„Parse error: Unexpected T_FUNCTION”
Szekció neve “„Parse error: Unexpected T_FUNCTION””Parse error: syntax error, unexpected T_FUNCTION in /PATH_TO_WORDPRESS/wp-content/plugins/PATH_TO/file.php on line 41Ez a hiba jellemzően akkor jelenik meg, ha a szerveren régi PHP fut, és a bővítmény bizonyos verziói nem működnek vele.
- Frissítsd a PHP-t. A szerver PHP-verzióját egy phpinfo-fájllal vagy a tárhely ügyfélszolgálatán keresztül tudhatod meg. Ha a verzió régebbi a PHP 5.3-nál, frissíts a PHP egy aktuális verziójára, ez azonnal megoldja a hibát.
- Frissítsd a bővítményt kézzel a legújabb verzióra. Ha már a legújabbat használod, és a hiba megmarad, jelezd a támogatásnak.
A frissítés menetét az Első lépések csoport frissítésről szóló fejezete írja le.
Az SPL kiterjesztés nem elérhető
Szekció neve “Az SPL kiterjesztés nem elérhető”A Standard PHP Library (SPL) olyan interfészek és osztályok gyűjteménye, amelyek az objektumorientált PHP-programozás gyakori feladatait oldják meg: a foreach bejárás viselkedését, a tömbszerű hozzáférést, a fájl- és könyvtárkezelést, a SimpleXML-objektumok kezelését. Legnagyobb része az iterátorok.
A Yoast SEO (Premium) működéséhez az SPL-nek telepítve és aktívnak kell lennie a tárhelyen. Ha nincs, telepítéskor ezt az üzenetet látod:
The Standard PHP Library (SPL) extension seem to be unavailable. Please ask your web host to enable it.
Kérd meg a tárhelyszolgáltatót, hogy telepítse vagy kapcsolja be az SPL-t. Ha nem tudják, váltsatok tárhelyet.
A shortcode-ok nem jelennek meg
Szekció neve “A shortcode-ok nem jelennek meg”Ha a tartalomban a shortcode szövege látszik a kész oldalon, például:
[wpseo_map id="all" width="400" height="300" zoom="-1" map_style="roadmap" show_route="0" show_state="0"]akkor két ok lehet:
- A shortcode-ot adó bővítmény nem aktív, ezért a shortcode nem működik.
- A sablon (téma) úgy írja ki a tartalmat, hogy nem alkalmazza rá a szükséges szűrőket.
A sablon javítása
Szekció neve “A sablon javítása”-
Telepítsd a „What The File” bővítményt: megmutatja, a sablon melyik fájlja rendereli az érintett oldalt.
-
Nyisd meg azt a fájlt. Ha ilyen sort találsz benne, ott a hiba:
echo $post->post_content; -
Írd át úgy, hogy a WordPress ciklusát és a
the_content();függvényt használja a tartalom kiírásához. -
Ha ez semmiképp nem megoldható, a sor helyettesíthető ezzel:
echo apply_filters( 'the_content', $post->post_content );
Ez utóbbi nem az ajánlott megoldás, mert más tartalmat is érinthet.
Készült: