Přihlásit se

obr clanek t

Už jste se určitě setkali s problémem, že nejdou některá objemnější rozšíření nainstalovat. Začněte instalovat, dvě minuty se nic neděje, pouze se zobrazuje informace, že prohlížeč čeká na odpověď webu. Informace zmizí, ale žádné kladné či záporné hlášení se neobjeví a rozšíření se nenainstaluje.

Mně se to stalo při upgrade na verzi 1.7.3, v předchozí verzi 1.5.x jsem neměl na nejmenovaném hostingu nikdy problémy s instalacemi rozšíření.

Pokud si v globálním nastavení v záložce „Systém“ povolíte „Ladění chyb systému“ a provedete znovu instalaci, a pokud se Vám po delší době objeví chybové hlášení začínající:

500 - An error has occurred.
JDatabaseMySQL::query: 2006 - MySQL server has gone away ………

Tak to značí, že dojde k odpojení MySQL serveru během provádění php skriptů. A tím pádem nedojde k instalaci Vámi požadovaného rozšíření.  V tomto případě Vám moc nepomůže ani instalace z TMP adresáře. V Joomla ver.1.7.x můžete použít vestavěnou funkci „Pátrání“, která Vám ale nepomůže při instalaci speciálních rozšířeních, které se instalují pomocí instalátorů v komponentech.

Řešení

Doba, po kterou čeká MySQL než provede odpojení je dána parametrem WAIT_TIMEOUT. Standardně má MySQL server nastaven tento parametr na hodnotu 28800 (číslo udává počet sekund), ale hosting tuto hodnotu snižuje na 10-60 sekund. Nastavení tohoto času si můžete zkontrolovat v phpMyAdminu spuštěním sql skriptu:

SHOW VARIABLES LIKE 'wait_timeout';

Můžete požádat podporu o navýšení, ale mám pocit, že málo kde Vám vyhoví. Na hostingu nemáte přístup ke globálnímu nastavení tohoto parametru, ale máte možnost si nastavit tento parametr pro sezení (session).  Ale toto nastavení vyžaduje zásah do jádra Joomla.

Do souboru mysql.php, který najdete v adresáři \libraries\joomla\database\database přidáte jeden řádek (vyznačen tučně):

    // Finalize initialisation
    parent::__construct($options);
     mysql_query("SET session wait_timeout = 250;", $this->connection);
     // Set sql_mode to non_strict mode
    mysql_query("SET @@SESSION.sql_mode = '';", $this->connection);

Nastavený čas 250sekund by měl vyhovět pro všechny instalace rozšíření, dle potřeby můžete čas navýšit, ale vše s mírou.

Uvedená úprava byla provedena a vyzkoušena v Joomla verze 1.7.3