Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Procédure

Co je to prázdná stránka nebo chyba 500?

Chyba 500 je stavový kód stránky, který znamená Internal Server Error. Znamená, že na webovém serveru došlo k chybě. Může pocházet z webového serveru Apache2, z interpretu PHP, který chybu předal webovému serveru, nebo z databáze MySQL, která chybu předala PHP a ten ji zase předal webovému serveru. Vypadá to takto:

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Pokud jde o některé jiné prohlížeče, může se zobrazit pouze prázdná stránka bez obsahu:

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

U webů Prestashop se zobrazí chybová stránka generovaná systémem Prestashop :

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Pro diagnostiku problému bude praktičtější zobrazit chyby přímo na webu (i když jsou viditelné v souboru error.log ve složce log přístupné přes účet FTP.

Zobrazení chyb PHP

Chcete-li zobrazit chyby PHP, budete muset upravit soubor php.ini příslušné webové stránky. V nástroji ISPConfig klikněte na možnost Sites (Stránky) a poté vyberte příslušnou webovou stránku:

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Poté klikněte na kartu "Možnosti" a do pole "Vlastní nastavení php.ini" přidejte následující řádek:

display_errors = On

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Je také vhodné přidat následující řádek, abyste zajistili hlášení chyb tak, že se zobrazí na obrazovce (v případě, že to skript ve výchozím nastavení vypne):

error_reporting = E_ALL

Povolení režimu ladění na vašich webových stránkách

Některé systémy CMS a frameworky, jako je WordPress, Prestashop, Symfony, Laravel atd. mohou ignorovat skutečnost, že je v PHP nastavena hodnota display_errors na On, protože mají vlastní systémy pro správu chyb.

Povolení režimu ladění ve WordPressu

Chcete-li povolit režim ladění na webu založeném na systému WordPress, musíte upravit soubor wp-config.php nastavením hodnoty WP_DEBUG na true a WP_DEBUG_DISPLAY také na true.

Pokud soubor WP_DEBUG_DISPLAY v souboru wp-config.php není, je třeba jej přidat za WP_DEBUG:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', true);

Povolení režimu ladění v Prestashopu

Chcete-li povolit režim ladění na Prestashopu, musíte upravit soubor config/defines.inc.php. V tomto souboru nastavte hodnotu _PS_MODE_DEV_ na true.

define('_PS_MODE_DEV_', true);

Aktivace režimu ladění v systému Joomla

Chcete-li v systému Joomla povolit režim ladění, musíte upravit soubor configuration.php. V tomto souboru nastavte hodnotu $debug na 1 a hodnotu $error_reporting na maximum.

public $debug = '1';
public $error_reporting = 'maximum';

Povolení režimu ladění v systému Laravel

Chcete-li aktivovat režim ladění v systému Laravel, musíte upravit soubor .env nastavením hodnoty APP_DEBUG na true:

APP_DEBUG=true

Dále je třeba odstranit mezipaměť konfiguračního souboru. V konzoli spusťte následující příkaz:

php artisan config:clear

Porozumění chybám PHP

Druhým nejdůležitějším krokem je pochopení chyb a nalezení řešení.

Chyba parsování - syntaktická chyba

Chyby "Parse error" a "syntax error" jsou způsobeny špatně napsaným kódem PHP: chybějící středníky na konci, neuzavřené závorky, obrácené čárky atd. Je třeba zkontrolovat skript na vašem webu.

Určité syntaxe mohou také způsobovat problémy pouze v určitých verzích PHP, protože syntaxe PHP se mezi několika verzemi vyvíjí. Například použití hranatých závorek pro deklaraci pole funguje v PHP 7.2, ale ne v PHP 7.4.

Proto by bylo vhodné zkontrolovat aupravit verzi PHP podle specifik vašeho webu.

Fatální chyba: volání nedefinované funkce

Pokud se tato chyba vyskytne, funkce, kterou se PHP snaží zavolat, neexistuje. Tento problém nastává, pokud na vašem webu chybí soubory nebo jsou neúplné.

Fatální chyba: Uncaught Error: Volání nedefinované funkce mysql_connect()

Tato chybová zpráva znamená, že funkce mysql_connect() neexistuje. Ve skutečnosti tato funkce v PHP 7.0 a novějších verzích již neexistuje. Aby vaše webové stránky fungovaly, musíte použít verzi PHP 5.x.

Fatální chyba: nelze znovu deklarovat

Pokud se tato chyba vyskytne, byl stejný název funkce deklarován několikrát. Tento problém se vyskytuje zejména tehdy, když zásuvné moduly, témata, moduly atd. používají stejný název funkce.

Fatální chyba: povolená velikost paměti vyčerpána

To znamená, že byla překročena maximální povolená velikost paměti RAM. K tomuto problému dochází při překročení limitu memory_limit zadaného na webových stránkách.

Doporučené hodnoty předinstalované v balíčku VPS jsou následující:

  • VPS S: memory_limit=1024M (1 GB)
  • VPS M: memory_limit=2048M (2 GB)
  • VPS L: memory_limit=4096M (4 GB)
  • VPS XL: memory_limit=6144M (6 GB)
  • VPS PRO S: memory_limit=7168M (7 GB)
  • VPS PRO M: memory_limit=8192M (8 GB)
  • VPS PRO L: memory_limit=9216M (9 GB)
  • VPS PRO XL: memory_limit=12288M (12 GB)

Pokud však chcete hodnotu memory_limit přizpůsobit, můžete tak učinit v aplikaci ISPConfig.

Na kartě "Možnosti" na webové stránce ISPConfig přidejte do direktiv PHP.INI řádek memory_limit:

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Více informací na toto téma: Jak upravím soubor php.ini na svém VPS serveru prostřednictvím ISPConfig?

Fatální chyba: Překročení maximální doby provádění

Tato chybová zpráva souvisí s tím, že váš skript PHP potřebuje k vytvoření výsledku více času, než dovolují parametry souboru php.ini.

Chcete-li tento problém překonat, můžete zvýšit maximální dobu provádění. Ještě na kartě "Možnosti" vaší webové stránky ISPConfig přidejte do směrnic PHP.INI následující řádek:

max_execution_time = 1800

Zde jsme nastavili 1800 sekund, tedy 30 minut.

Důležité: Pokud je doba provádění PHP příliš dlouhá, Apache2 nemusí být schopen čekat až do konce. V důsledku toho Apache2 odešle návštěvníkovi chybu 503 (chybu 522 nebo 524, pokud používáte CloudFlare). Je proto důležité udržovat tuto hodnotu co nejnižší. Doporučujeme vám nastavit ji na 30 sekund(max_execution_time = 30), pokud neplánujete na svých stránkách provádět hromadné operace importu nebo exportu.

SQLSTATE[28000] [1045] Přístup pro uživatele odepřen

To znamená, že uživatel nebo heslo MySQL, které používáte, je nesprávné.

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig
Příklad chybové stránky "Přístup odepřen" v systému Prestashop

Pokud používáte WordPress, může být chybové hlášení jiné:

Chyba při navazování spojení s databází

Chcete-li zkontrolovat, zda je kombinace uživatele a hesla MySQL funkční, doporučuji přejít do aplikace phpMyAdmin a použít ji.

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Pokud phpMyAdmin také zobrazí takovouto chybu, pak je váš uživatel nebo heslo MySQL nesprávné. Můžete je pak obnovit v ISPConfig.

Nelze navázat spojení s databází:SQLSTATE[HY000] [2002] Žádný takový soubor nebo adresář.

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Toto chybové hlášení souvisí s tím, že se vaše webové stránky snaží připojit k serveru MySQL pomocí unixového socketu namísto připojení TCP.

Unixový soket, který se snaží použít, však není na jeho úrovni přístupný (například kvůli omezení openbase_dir ).

Tento problém vyřešíte tak, že v parametru serveru MySQL své webové stránky donutíte používat připojení TCP tak, že místo "localhost " uvedete "127.0.0.1".

V případě Prestashopu 1.6 je třeba upravit soubor config/settings.inc.php:

Diagnostika a oprava chyby 500 na VPS pomocí ISPConfig

Pro Prestashop 1.7 je třeba upravit soubor app/config/parameters.php:

[...] 'database_host' => '127.0.0.1', [...]

V případě webu WordPress budete muset upravit soubor wp-config.php:

[...] define('DB_HOST', '127.0.0.1'); [...]

Pro web Joomla je třeba upravit soubor configuration.php:

[...] public $host = '127.0.0.1'; [...]

Video postup pro WordPress


Ohodnotit tento článek :

Tento článek byl pro vás užitečný ?

Article utileAno

Article non utileNe

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Podobné články

2mn čtení

Jak vytvořím účet FTP v ISPConfig?

0mn čtení

Připojení SFTP

1mn čtení

Jak aktivuji SSL na svém webu pomocí ISPConfig 3?

0mn čtení

Jak změním heslo FTP z aplikace IspConfig?


Položte týmu LWS a jeho komunitě otázku