Case studies

Migracja strony na PHP 8.2 i MySQL 8.0 — Szkoła Specjalna z Tarnowa

Migracja strony szkoły specjalnej z PHP 7.4 na PHP 8.2 i MySQL 8.0. Aktualizacja CodeIgniter 3, konwersja bazy danych, łatki kompatybilności — AURANET.

Zapytaj o wycenę Przeczytaj, jak to zrobiliśmy

Migracja strony na PHP 8.2 i MySQL 8.0 — Szkoła Specjalna z Tarnowa

Szkoła specjalna z Tarnowa prowadząca trzy placówki edukacyjne — szkołę podstawową specjalną, szkołę przysposabiającą do pracy oraz branżową szkołę I stopnia. Strona internetowa szkoły oparta na autorskim systemie CMS zbudowanym na frameworku CodeIgniter 3.

Wyzwanie

Dostawca hostingu poinformował klienta o konieczności aktualizacji PHP do wersji 8.0+ oraz MySQL do wersji 8.0. Utrzymywanie starszych wersji (PHP 7.4 i MySQL 5.7) wiązało się z naliczaniem dodatkowych opłat. Problem polegał na tym, że strona korzystała z kodu napisanego pod PHP 5.x/7.x, który nie był kompatybilny z PHP 8.x — po prostym przełączeniu wersji strona przestałaby działać.

Dodatkowym utrudnieniem była mieszanka kodowań znaków w bazie danych — część tabel używała utf8, a część latin2 — co wymagało ostrożnej konwersji, aby nie utracić polskich znaków.

Zakres prac

Diagnostyka

Przeprowadziliśmy automatyczną analizę kodu źródłowego, która ujawniła:

  • 12 kategorii niekompatybilności z PHP 8.x (przekazywanie wartości null do funkcji stringowych, powtórne definiowanie stałych, brak deklaracji właściwości obiektów, przestarzałe mechanizmy autoloadingu)
  • 73 tabele w bazie danych wymagające konwersji kodowania
  • 44 modele danych z wywołaniami konstruktora niekompatybilnymi z nową wersją frameworka

Aktualizacja frameworka

Podmieniliśmy silnik CodeIgniter z wersji 3.1.5 na 3.1.13 (ostatnia wersja z oficjalnym wsparciem PHP 8.x). Nowa wersja frameworka zmieniła sygnatury kilku klas bazowych, co wymagało dostosowania rozszerzeń napisanych na potrzeby CMS.

Łatki kompatybilności

Naprawiliśmy 10 plików źródłowych aplikacji:

  • Kontrolery — zabezpieczenie przed przekazywaniem wartości null do funkcji PHP, ochrona przed powtórnym definiowaniem stałych, weryfikacja odpowiedzi API reCAPTCHA
  • Helpery — naprawa literówek blokujących sesje, zabezpieczenie ~15 funkcji przetwarzających tekst
  • Konfiguracja — dostosowanie połączenia z bazą danych do MySQL 8.0, zabezpieczenie dynamicznego routingu
  • Edytor treści — wymiana przestarzałego mechanizmu __autoload() na spl_autoload_register() w KCFinder

Migracja bazy danych

Zamiast modyfikować produkcyjną bazę, utworzyliśmy nową bazę MySQL 8.0, zaimportowaliśmy dane i przeprowadziliśmy konwersję kodowania 73 tabel na utf8mb4_unicode_ci. Stara baza została zachowana jako kopia bezpieczeństwa.

Wynik

Strona działa stabilnie na PHP 8.2 i MySQL 8.0. Panel administracyjny CMS, edycja treści, upload plików i wszystkie formularze działają bez zmian dla użytkownika końcowego. Polskie znaki diakrytyczne wyświetlają się prawidłowo po konwersji kodowania.

Klient nie musi ponosić dodatkowych opłat za utrzymanie starszych wersji oprogramowania na serwerze.

Nieaktualne PHP i baza bez wsparcia producenta to jedna z częstszych przyczyn włamań. Jeśli strona już padła, naprawiamy zhakowane instalacje WordPressa — usuwamy złośliwy kod, zamykamy lukę i przywracamy widoczność w Google.

Technologie

CodeIgniter 3.1.13, PHP 8.2, MySQL 8.0, CKEditor + KCFinder, home.pl


Realizacja: AURANET Jan Schenk — luty 2026

Podobny problem u Ciebie?

Napisz, z czym się mierzysz. Odpowiemy, jak wyglądałoby to u Ciebie i ile kosztuje. Odpowiadamy w 24 godziny.

Zapytaj o wycenę