Klient poprosił mnie o zwiększenie wersji PHP do najnowszej wersj PHP 7.2. Przy stronach firmowych najczęściej nie wykonuję takich operacji z automatu tylko staram się na początek sprawdzić czy jest to możliwe instalując stronę z kopii Akeeba Backup na swoim komputerze korzystając z JAMPa. Podczas przywracania strony www pojawił się jednak błąd Specified key was too long; max key length is 767 bytes i cała operacja nie udała się.
Okazuje się że nie jest to jakiś jednostkowy problem i można znaleźć jego rozwiązanie w internecie - jednak nie w języku polskim dlatego zamieszczam rozwiązanie dla strony www Lublin na Joomla 3.8 przywracanej za pomocą Akeeba Kickstart
1. Komunikat który zobaczyłem podczas przywracania strony www za pomocą Akeeba Kickstart - strona przywracana na localhost
Database error processing line 31
Specified key was too long; max key length is 767 bytes
2. Rozwiązanie problemu jakie znalazłem w internecie
Stara baza danych używa zwykłego starego UTF8 zamiast nowoczesnego kodowania utf8. Jedno z rozszerzeń, z których korzystasz, utknęło w wersji opublikowanej przed Joomla! 3.5.0 (czyli około dwóch lat) lub programista nie otrzymał notatki o utf8. W rezultacie struktura bazy danych jest taka, że indeksy są oparte na kolumnach, które są zbyt duże, aby mogły zostać zaindeksowane w kodowaniu utf8 *. W międzyczasie przywracasz swoją witrynę, korzystając z opcji, które nakazują ANGIE przekonwertować wszystkie tabele bazy danych na utf8, powodując ten błąd MySQL.
Podczas przywracania w końcu dojdziesz do strony przywracania bazy danych. Musisz odznaczyć "Zezwalaj na automatyczne wykrywanie utf8", "Wymuszaj sortowanie UTF-8 w bazie danych" i "Wymuszaj sortowanie UTF-8 w tabelach".
3. W Akeeba Kickstart wymaga to oznaczenia poniższych opcji podczas przywracania strony www Lublin na Joomla
Force UTF-8 collation on database
Force UTF-8 collation on tables
4. Dalsze przywracanie strony www Puławy odbywa się już bez problemu
4. OK udało się :)
Force UTF-8 collation on database
Force UTF-8 collation on tables