Skip to content

Kaikki WordPressistä, web-kehityksestä — ja paljon muuta

🔧 PHP missing MySQL extension -virhe WordPressissä: kuinka korjata se 10 minuutissa

🔧 PHP missing MySQL extension -virhe WordPressissä: kuinka korjata se 10 minuutissa

Käyt WordPress-sivustosi hallintapaneelissa, mutta näetkin valkoisen ruudun ja virheilmoituksen: "Your PHP installation appears to be missing the MySQL extension which is required by WordPress". Uudelleenkäynnistys ei auta, palveluntarjoaja pysyy hiljaa, sivusto makaa kuolleena painona.

Tämä virhe ei ole palvelimesi kuolemantuomio eikä syy paniikkiin. Useimmiten se ilmenee PHP-päivityksen, sivuston siirron toiselle VPS:lle tai käyttöjärjestelmän vaihdon jälkeen. WordPress kadottaa sillan PHP:n ja MySQL:n väliltä, ja voit palauttaa sen 10 minuutissa.

Alla on vaiheittainen opas: diagnostiikasta lopulliseen konfiguraation uudelleenlataukseen. Kaikki komennot ovat ajantasaisia PHP 8.0-8.4:lle, palvelimille, joissa on Ubuntu, RedHat-yhteensopivat jakelut, ja hosting-palveluille, joissa on cPanel.

💡 Pikakatsaus:

  • Tarkista nykyinen PHP-versio ja aktiiviset laajennukset WordPressin Site Health -työkalulla
  • Asenna puuttuvat moduulit: sudo apt install php-mysql Ubuntulle tai sudo dnf install php-mysqlnd RHEL:lle
  • Tarkista extension_dir-direktiivi php.ini-tiedostosta, palvelinsiirron yhteydessä polku usein korruptoituu
  • Ota mysqli ja pdo_mysql käyttöön hosting-hallintapaneelista (cPanel, Plesk) kahdella klikkauksella
  • Varmista, että WordPress versions ja PHP ovat yhteensopivat: molempien tulisi olla ajantasaisia

1. Tarkista PHP-versio ja aktiiviset laajennukset

Nopein diagnostiikkamenetelmä on WordPressin sisäänrakennettu Site Health -työkalu. Mene hallintapaneeliin: Työkalut, Site Health, Info-välilehti. Laajenna Server-osio, täältä löydät PHP-version. Jos se on alle 7.4, on aika päivittää: WordPress requirements-vaatimusten mukaan WP 6.x:n minimi-PHP-versio on 7.4 ja suositeltu on 8.0+.

Laajenna nyt Database-osio. Jos mysqli- ja pdo_mysql-rivit ovat tyhjiä tai puuttuvat, olet löytänyt virheen syyn. WordPress yrittää käyttää laajennusta, jota ei ole PHP-koontiversiossa.

Kun olet siellä, tarkista Filesystem-osio: käyttöoikeusongelmat voivat epäsuorasti vaikuttaa PHP-moduulien lataamiseen.

Jos hallintapaneeliin ei pääse (täysin valkoinen ruutu), luo tiedosto info.php sivuston juureen koodilla <?php phpinfo(); ja avaa se selaimessasi. Ensimmäinen rivi näyttää tarkan PHP-version, ja hakemalla mysqli näet, onko laajennus olemassa.

2. Asenna mysqli- ja PDO MySQL -laajennukset konsolin kautta

Yhdistä palvelimelle SSH:lla ja tarkista, mitä on asennettu:

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

Jos mysqli ja pdo_mysql puuttuvat tulosteesta, asenna ne. Komennot vaihtelevat jakelun mukaan.

Ubuntu / Debian:

1sudo apt update
2sudo apt install php-mysql

php-mysql-paketti vetää mukanaan mysqli-, pdo_mysql- ja mysqlnd-ajurin, kaiken mitä WordPress tarvitsee. Jos sinulla on useita PHP-versioita, määritä tietty versio: php8.2-mysql, php8.3-mysql. Asennuksen yksityiskohdat on kuvattu PHP mysqli manual -oppaassa.

RHEL / CentOS / AlmaLinux:

1sudo dnf update
2sudo dnf install php-mysqlnd

Asennuksen jälkeen käynnistä verkkopalvelin uudelleen:

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

Useimmissa tapauksissa virhe häviää heti uudelleenkäynnistyksen jälkeen.

3. Tarkista extension_dir-määritys php.ini-tiedostosta

Paketit on asennettu, mutta WordPress valittaa yhä? Tätä tapahtuu sivuston siirrossa: PHP:n asetukset "muuttivat mukana" vanhoilla poluilla uudelle palvelimelle.

Avaa info.php selaimessa ja etsi Loaded Configuration File -parametri, tämä on polku aktiiviseen php.ini-tiedostoon.

Polku ladattuun PHP-määritystiedostoon phpinfo-tulosteessa

Etsi nyt extension_dir, hakemisto, josta PHP lataa moduulit. Jos arvo on tyhjä tai osoittaa kansioon, jota ei ole olemassa, mysqli.so ei lataudu eikä WordPress näe MySQL:ää.

extension_dir-direktiivin arvo phpinfo-tulosteessa

Avaa php.ini (polku on jo tiedossa) ja etsi extension_dir-rivi. Päivitä se nykyiseen arvoon. Ubuntu 22.04/24.04 ja PHP 8.3 -yhdistelmällä se on yleensä:

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

Palvelimilla, joissa on cPanel, polku on eri, tarkista tarkka arvo info.php-tiedostosta.

MySQL-tukiosio phpinfo-tulosteessa ja asiakaskirjaston versio

Kun olet tehnyt muutokset, tallenna php.ini, käynnistä verkkopalvelin uudelleen ja muista poistaa info.php, julkinen phpinfo() paljastaa moduuliversiot ja palvelimen absoluuttiset polut.

4. Ota laajennukset käyttöön hosting-hallintapaneelin kautta

Työskenteletkö paneelin kautta konsolin sijaan? Useimmat hosting-paneelit hallitsevat laajennuksia hiirellä:

  • cPanel: Select PHP Version, valintaruudut kohtien mysqli ja pdo_mysql kohdalla, tallenna. Vaihda samalla PHP-versio moderniin.
  • Plesk: Domains, oma verkkotunnuksesi, PHP Settings, etsi mysqli ja pdo_mysql laajennuslistasta.
  • DirectAdmin: Extra Features, Select PHP Version, valitse tarvittavat laajennukset.
  • **SiteGround, Cloudways, **Kinsta ja muut hallinnoidut hostingit: PHP Extensions -osio sivuston hallintapaneelissa.

Kun laajennukset on otettu käyttöön, paneeli käynnistää PHP:n automaattisesti uudelleen, ja sivusto toimii minuutin sisällä.

5. Varmista, että WordPress- ja PHP-versiot ovat yhteensopivat

WordPress 6.x (nykyinen versio vuonna 2026) vaatii vähintään PHP 7.4:n ja suosittelee versiota 8.0+. Jos käytössäsi on PHP 7.0 tai 7.1, edes asennetut laajennukset eivät auta: WP-ydin odottaa modernin PHP-version moduuleja.

Tarkista yhteensopivuus: hallintapaneeli, Työkalut, Sivuston kunto, Tiedot, Palvelin. Jos PHP on alle 7.4, päivitä:

  • Jaettu hosting: hallintapaneeli (cPanel/Plesk), vaihda PHP versioon 8.2 tai 8.3.
  • VPS: päivitä paketinhallinnan kautta:
1sudo apt update
2sudo apt install php8.3 php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring

PHP:n päivityksen jälkeen päivitä myös WordPress: Kojelauta, Päivitykset, Päivitä nyt. Vanhat WP-versiot viittaavat mysql-laajennukseen, joka poistettiin PHP:stä jo vuonna 2015, mistä virhe johtuu.

Muuten, liittyen toiseen ongelmaan: jos WordPress valittaa muistin puutteesta siirron aikana, meillä on erillinen artikkeli siitä, miten PHP:n muistirajaa nostetaan WordPressissä.

Mikä muu voi mennä pieleen

Jos olet kokeillut kaikkia viittä tapaa ja virhe jatkuu, tässä on kaksi erikoistapausta.

Vanhentuneet rivit php.ini-tiedostossa. Kun PHP on päivitetty 5.x:stä 8.x:ään, php.ini-tiedostossa saattaa olla jäänteitä extension=mysql.so -riveistä. PHP 8:ssa tätä tiedostoa ei ole: moduuli poistettiin ytimestä. Avaa php.ini ja kommentoi pois tai poista mysql.so, mysql.dll ja libmysql. Lista poistetuista laajennuksista on PHP:n migraatio-oppaassa.

Useita PHP-versioita palvelimella. VPS:llä PHP 7.4 ja PHP 8.3 ovat usein rinnakkain. Komento php -m näyttää komentoriviversion moduulit, mutta sivusto saattaa käyttää eri versiota, sitä joka on määritetty Apachessa/FPM:ssä. Tarkista info.php: ensimmäinen rivi näyttää tarkan PHP-version webille. Asenna paketit sitä varten.

Hostingerin tiimin video näyttää laajennuksen asennuksen cPanelin ja konsolin kautta, 4 minuuttia ja kuva on täysin selvä.

⁉️🤔 Usein kysytyt kysymykset

Miksi virhe mainitsee MySQL-laajennuksen, kun tarvitaan mysqli?

Virheilmoitus ei ole muuttunut PHP 5.x -aikakauden jälkeen. Silloin laajennuksen nimi oli mysql, ja WordPress tarkisti nimenomaan sitä. PHP 8.x:ssä mysql-laajennus poistettiin kokonaan, WordPress käyttää mysqli- tai PDO_MySQL-laajennusta. Virheteksti säilyi samana historiallisista syistä. Asenna php-mysql-paketti: se sisältää mysqli- ja pdo_mysql-laajennukset sekä mysqlnd-ajurin, eli kaiken mitä WordPress tarvitsee.

Voiko virheen korjata ilman palvelinyhteyttä?

Kyllä, jos sivusto on jaetulla hostingilla. Kirjaudu hallintapaneeliin (cPanel, Plesk, DirectAdmin), etsi "Select PHP Version" tai "PHP Settings" ja ota mysqli ja pdo_mysql käyttöön valintaruuduilla. Paneeli käynnistää PHP:n automaattisesti uudelleen, konsoliyhteyttä ei tarvita. Hostingerin tai Bluehostin kaltaisilla hostingeilla nämä laajennukset ovat oletuksena päällä; jos virhe ilmestyi paketin vaihdon jälkeen, tuki aktivoi moduulit parissa minuutissa.

Mitä tehdä, jos sivusto ei toimi kaikkien korjausten jälkeen?

Tarkista kolme asiaa. Ensimmäinen: avaa info.php ja varmista, että mysqli näkyy ja siinä on Client API -versio. Jos osiota ei ole, moduuli ei latautunut, tarkista extension_dir. Toinen: käynnistä koko verkkopalvelin uudelleen, sudo systemctl restart apache2 (tai nginx ja php-fpm). Kolmas: tarkista DB_HOST, DB_NAME, DB_USER ja DB_PASSWORD tiedostosta wp-config.php, joskus virhe peittää alleen väärät tietokantatunnukset.

Pitääkö vaihtaa MariaDB:hen, jos virhe toistuu?

Ei, tietokantapalvelimen vaihtaminen ei ratkaise ongelmaa. Virhe liittyy yksinomaan PHP-laajennuksiin. MariaDB on MySQL-haara, ja WordPress toimii sen kanssa samojen mysqli- tai PDO-laajennusten kautta. Useimmat hosting-palveluntarjoajat ovat jo siirtyneet oletuksena MariaDB:hen, ja WordPress-sivustot toimivat sen kanssa moitteettomasti.

Onko pakko asentaa juuri PHP 8.3?

Ei, mikä tahansa PHP 8.x -versio (8.0-8.4) toimii. Pääasia on, ettei versio ole alle 7.4. Suosittelemme versiota 8.2 tai 8.3: ne ovat vakaita haaroja, joilla on aktiivinen tietoturvatuki vuonna 2026 virallisen PHP-aikataulun mukaan. PHP 8.0 ja 8.1 ovat jo pelkän tietoturvakorjauksen piirissä, ja PHP 7.4 ei ole saanut päivityksiä marraskuun 2022 jälkeen.

Pitääkö tästä virheestä huolestua

"Missing MySQL extension" -virhe näyttää pelottavalta, mutta pohjimmiltaan se on merkki siitä, ettei palvelinta ole täysin määritetty. PHP ilman tietokantatyöskentelyn moduulia on kuin auto ilman virtalukon avaimia. Kuvatut menetelmät kattavat valtaosan tapauksista, eikä järjestelmänvalvojaa tarvita.

Korjauksen jälkeen tee hieman ylläpitotöitä: poista info.php, päivitä WordPress ja lisäosat uusimpiin versioihin, määritä automaattiset varmuuskopiot UpdraftPlus-lisäosalla tai hallintapaneelin kautta. Silloin seuraava migraatio tai PHP-päivitys sujuu ilman yllätyksiä.