Tovább a tartalomhoz

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 61

A 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.

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/.redirects

Ok: 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 41

Ez 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.

  1. 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.
  2. 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.

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.

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:

  1. A shortcode-ot adó bővítmény nem aktív, ezért a shortcode nem működik.
  2. A sablon (téma) úgy írja ki a tartalmat, hogy nem alkalmazza rá a szükséges szűrőket.
  1. Telepítsd a „What The File” bővítményt: megmutatja, a sablon melyik fájlja rendereli az érintett oldalt.

  2. Nyisd meg azt a fájlt. Ha ilyen sort találsz benne, ott a hiba:

    echo $post->post_content;
  3. Írd át úgy, hogy a WordPress ciklusát és a the_content(); függvényt használja a tartalom kiírásához.

  4. 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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások