Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🔧 Błąd «PHP missing MySQL extension» w WordPress: jak naprawić w 10 minut

🔧 Błąd «PHP missing MySQL extension» w WordPress: jak naprawić w 10 minut

Ви wchodzą Państwo, aby sprawdzić witrynę na WordPress, a zamiast panelu administracyjnego widnieje biały ekran z błędem: „Your PHP installation appears to be missing the MySQL extension which is required by WordPress". Ponowne ładowanie nie pomaga, dostawca hostingu milczy, witryna wisi jak martwy ciężar.

Taki błąd to nie wyrok na serwer ani powód do paniki. Najczęściej pojawia się po aktualizacji PHP, przeniesieniu witryny na inny VPS lub zmianie systemu operacyjnego. WordPress traci pomost między PHP a MySQL i można go odbudować w 10 minut.

Poniżej znajduje się instrukcja krok po kroku: od diagnostyki do końcowego przeładowania konfiguracji. Wszystkie polecenia są aktualne dla PHP 8.0-8.4, serwerów na Ubuntu, dystrybucjach kompatybilnych z RedHat oraz hostingach z cPanel.

💡 Szybki przegląd:

  • Proszę sprawdzić bieżącą wersję PHP i aktywne rozszerzenia przez Site Health WordPress
  • Proszę zainstalować brakujące moduły: sudo apt install php-mysql dla Ubuntu lub sudo dnf install php-mysqlnd dla RHEL
  • Proszę sprawdzić dyrektywę extension_dir w php.ini, podczas migracji serwera ścieżka często się rozjeżdża
  • Proszę włączyć mysqli i pdo_mysql przez panel hostingu (cPanel, Plesk) dwoma kliknięciami
  • Proszę upewnić się, że wersje WordPress i PHP są kompatybilne: obie powinny być aktualne

1. Proszę sprawdzić wersję PHP i aktywne rozszerzenia

Najszybszym sposobem diagnostyki jest wbudowane w WordPress narzędzie Site Health. Proszę wejść do panelu administracyjnego: Narzędzia, Site Health, zakładka Info. Proszę rozwinąć sekcję Server, podana jest tu wersja PHP. Jeśli jest niższa niż 7.4, czas na aktualizację: zgodnie z wymaganiami WordPress, minimalna wersja PHP dla WP 6.x to 7.4, a zalecana to 8.0+.

Teraz proszę rozwinąć sekcję Database. Jeśli wiersze mysqli i pdo_mysql są puste lub ich brak, przyczyna błędu została znaleziona. WordPress próbuje użyć rozszerzenia, którego nie ma w kompilacji PHP.

Przy okazji proszę sprawdzić sekcję Filesystem: problemy z uprawnieniami mogą pośrednio wpływać na ładowanie modułów PHP.

Jeśli panel administracyjny jest niedostępny (zupełnie biały ekran), proszę utworzyć plik info.php w katalogu głównym witryny z kodem <?php phpinfo(); i otworzyć go w przeglądarce. Pierwszy wiersz pokaże dokładną wersję PHP, a wyszukanie mysqli wskaże obecność rozszerzenia.

2. Proszę zainstalować rozszerzenia mysqli i PDO MySQL przez konsolę

Łączą się Państwo z serwerem przez SSH i sprawdzają, co jest zainstalowane:

1php -v
2php -m | grep -E 'mysqli|pdo_mysql'

Jeśli mysqli i pdo_mysql są nieobecne w wyniku, instalujemy. Polecenia różnią się w zależności od dystrybucji.

Ubuntu / Debian:

1sudo apt update
2sudo apt install php-mysql

Pakiet php-mysql pociąga za sobą mysqli, pdo_mysql i sterownik mysqlnd, czyli wszystko, czego potrzebuje WordPress. W przypadku kilku wersji PHP proszę wskazać konkretną: php8.2-mysql, php8.3-mysql. Szczegóły instalacji opisano w podręczniku PHP dotyczącym mysqli.

RHEL / CentOS / AlmaLinux:

1sudo dnf update
2sudo dnf install php-mysqlnd

Po instalacji proszę zrestartować serwer WWW:

1sudo systemctl restart apache2
2sudo systemctl restart php8.3-fpm
3sudo systemctl restart nginx

W większości przypadków błąd znika natychmiast po ponownym uruchomieniu.

3. Proszę sprawdzić dyrektywę extension_dir w php.ini

Pakiety są zainstalowane, ale WordPress nadal zgłasza problem? Zdarza się to podczas przenoszenia witryny: konfiguracja PHP „przyjechała" na nowy serwer ze starymi ścieżkami.

Proszę otworzyć info.php w przeglądarce i znaleźć parametr Loaded Configuration File, to ścieżka do aktywnego pliku php.ini.

Ścieżka do załadowanego pliku konfiguracyjnego PHP w danych wyjściowych phpinfo

Teraz proszę znaleźć extension_dir, katalog, z którego PHP ładuje moduły. Jeśli wartość jest pusta lub wskazuje na nieistniejący folder, mysqli.so nie zostanie załadowany i WordPress nie zobaczy MySQL.

Wartość dyrektywy extension_dir w danych wyjściowych phpinfo

Proszę otworzyć php.ini (ścieżkę już Państwo znają) i znaleźć wiersz extension_dir. Należy ustawić go na aktualną wartość. Na Ubuntu 22.04/24.04 z PHP 8.3 jest to zazwyczaj:

1extension_dir = "/usr/lib/php/20230831"

Na serwerach z cPanel ścieżka jest inna, proszę sprawdzić dokładną wartość w info.php.

Sekcja wsparcia MySQL w danych wyjściowych phpinfo z wersją biblioteki klienta

Po poprawkach proszę zapisać php.ini, zrestartować serwer WWW i koniecznie usunąć info.php, publiczny phpinfo() ujawnia wersje modułów i ścieżki bezwzględne serwera.

4. Proszę włączyć rozszerzenia przez panel sterowania hostingiem

Pracują Państwo przez panel, a nie konsolę? Większość paneli hostingowych umożliwia zarządzanie rozszerzeniami za pomocą myszy:

  • cPanel: Select PHP Version, zaznaczyć mysqli i pdo_mysql, zapisać. W tym samym miejscu proszę przełączyć wersję PHP na nowoczesną.
  • Plesk: Domains, Państwa domena, PHP Settings, znaleźć mysqli i pdo_mysql na liście rozszerzeń.
  • DirectAdmin: Extra Features, Select PHP Version, zaznaczyć potrzebne rozszerzenia.
  • **SiteGround, Cloudways, **Kinsta i inne hostingi zarządzane: sekcja PHP Extensions w panelu witryny.

Po włączeniu rozszerzeń panel sam zrestartuje PHP, witryna zacznie działać w ciągu minuty.

5. Proszę upewnić się, że wersje WordPress i PHP są kompatybilne

WordPress 6.x (aktualna wersja na rok 2026) wymaga co najmniej PHP 7.4 i zaleca 8.0+. Jeśli korzystają Państwo z PHP 7.0 lub 7.1, nawet zainstalowane rozszerzenia nie pomogą: rdzeń WP oczekuje modułów dla nowoczesnej wersji PHP.

Proszę sprawdzić kompatybilność: panel administracyjny, Narzędzia, Site Health, Info, Server. Jeśli PHP jest poniżej 7.4, należy zaktualizować:

  • Hosting współdzielony: panel sterowania (cPanel/Plesk), proszę przełączyć PHP na 8.2 lub 8.3.
  • VPS: proszę zaktualizować przez menedżera pakietów:
1sudo apt update
2sudo apt install php8.3 php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring

Po aktualizacji PHP proszę zaktualizować również WordPress: Dashboard, Updates, Update Now. Stare wersje WP odwołują się do rozszerzenia mysql, które zostało usunięte z PHP jeszcze w 2015 roku, stąd błąd.

Przy okazji, o podobnym problemie: jeśli WordPress zgłasza brak pamięci podczas przenosin, mamy analizę, jak zwiększyć limit pamięci PHP w WordPress.

Co jeszcze może pójść nie tak

Jeśli 5 sposobów zostało wypróbowanych, a błąd nadal występuje, dwa przypadki brzegowe.

Przestarzałe wpisy w php.ini. Po aktualizacji PHP z 5.x do 8.x w php.ini mogą pozostać wiersze extension=mysql.so. W PHP 8 taki plik nie istnieje: moduł został usunięty z jądra. Proszę otworzyć php.ini i zakomentować lub usunąć mysql.so, mysql.dll oraz libmysql. Lista usuniętych rozszerzeń znajduje się w przewodniku migracji PHP.

Kilka wersji PHP na serwerze. Na VPS często współistnieją PHP 7.4 i PHP 8.3. Polecenie php -m pokazuje moduły wersji CLI, natomiast witryna może używać innej, tej skonfigurowanej w Apache/FPM. Proszę sprawdzić info.php: pierwszy wiersz to dokładna wersja PHP dla WWW. Dla niej należy instalować pakiety.

Film od zespołu Hostinger pokazuje instalację rozszerzeń przez cPanel i konsolę, 4 minuty, i obraz jest w pełni zrozumiały.

⁉️🤔 Często zadawane pytania

Dlaczego błąd mówi o rozszerzeniu MySQL, skoro potrzebne jest mysqli?

Komunikat błędu nie zmienił się od czasów PHP 5.x. Wówczas rozszerzenie nazywało się mysql i WordPress sprawdzał właśnie je. W PHP 8.x rozszerzenie mysql zostało całkowicie usunięte, WordPress używa mysqli lub PDO_MySQL. Tekst błędu pozostał stary ze względów historycznych. Proszę zainstalować pakiet php-mysql: zawiera on mysqli, pdo_mysql i mysqlnd, czyli wszystko, czego WordPress potrzebuje.

Czy można naprawić błąd bez dostępu do serwera?

Tak, jeśli strona jest na hostingu współdzielonym. Proszę wejść do panelu sterowania (cPanel, Plesk, DirectAdmin), znaleźć „Select PHP Version" lub „PHP Settings", zaznaczyć checkboxami mysqli i pdo_mysql. Panel sam zrestartuje PHP, dostęp do konsoli nie jest potrzebny. Na hostingach takich jak Hostinger czy Bluehost te rozszerzenia są domyślnie włączone; jeśli błąd pojawił się po zmianie taryfy, support aktywuje moduły w ciągu kilku minut.

Co zrobić, jeśli po wszystkich poprawkach strona nie działa?

Proszę sprawdzić trzy rzeczy. Po pierwsze: otworzyć info.php i upewnić się, że mysqli wyświetla się z wersją Client API. Jeśli nie ma sekcji, moduł nie został załadowany, proszę jeszcze raz sprawdzić extension_dir. Po drugie: całkowicie zrestartować serwer WWW, sudo systemctl restart apache2 (lub nginx plus php-fpm). Po trzecie: zweryfikować DB_HOST, DB_NAME, DB_USER i DB_PASSWORD w wp-config.php, czasem błąd maskuje nieprawidłowe dane dostępowe do bazy danych.

Czy trzeba przechodzić na MariaDB, jeśli błąd się powtarza?

Nie, wymiana serwera baz danych nie rozwiąże problemu. Błąd jest związany wyłącznie z rozszerzeniami PHP. MariaDB jest odgałęzieniem MySQL i WordPress współpracuje z nią przez te same mysqli lub PDO. Większość hostingów domyślnie przeszła już na MariaDB, strony na WordPressie doskonale z nią funkcjonują.

Czy koniecznie trzeba instalować akurat PHP 8.3?

Nie, odpowiednia będzie każda wersja PHP 8.x (8.0-8.4). Najważniejsze, żeby nie niższa niż 7.4. Rekomendujemy 8.2 lub 8.3: są to stabilne gałęzie z aktywnym wsparciem bezpieczeństwa na rok 2026, zgodnie z oficjalnym harmonogramem PHP. PHP 8.0 i 8.1 mają już status wyłącznie poprawek bezpieczeństwa, a PHP 7.4 nie otrzymuje łatek od listopada 2022.

Czy należy panikować przy tym błędzie

Błąd „brak rozszerzenia MySQL" wygląda przerażająco, ale w istocie jest to sygnał: serwer nie jest do końca skonfigurowany. PHP bez modułu do pracy z bazą danych jest jak samochód bez kluczyka w stacyjce. Opisane metody pokrywają zdecydowaną większość przypadków, administrator systemu nie jest do nich potrzebny.

Po naprawie proszę zadbać o higienę: usunąć info.php, zaktualizować WordPress i wtyczki do najnowszych wersji, skonfigurować automatyczne kopie zapasowe przez UpdraftPlus lub panel hostingu. Wtedy następna migracja czy aktualizacja PHP przebiegnie bez niespodzianek.