500 Internal Server Error WordPressissä – vianmääritys vaihe vaiheelta
Näkyykö WordPress-sivustollasi virhesivu, jossa lukee 500 Internal Server Error? Kyseessä on yleinen palvelinvirhe, joka voi tuntua hankalalta, koska ilmoitus ei yleensä kerro tarkasti, mikä sivustolla on vikana.
500-virhe tarkoittaa, että palvelin vastaanotti pyynnön, mutta ei pystynyt käsittelemään sitä normaalisti. Syynä voi olla esimerkiksi virheellinen lisäosa, teema, palvelinasetus, PHP-versio, liian pieni muistiraja tai rikkoutunut .htaccess-tiedosto.
Useimmiten ongelman voi selvittää ilman syvällistä teknistä osaamista, kun vianmääritys tehdään rauhassa oikeassa järjestyksessä.
Ota aina varmuuskopio ennen kuin muutat tiedostoja, palvelinasetuksia, teemaa tai lisäosia.
1. Tarkista, mitä muuttui juuri ennen virhettä
Ennen teknisempiä toimenpiteitä kannattaa miettiä, alkoiko virhe jonkin tietyn muutoksen jälkeen.
500-virheen voi aiheuttaa esimerkiksi:
- WordPressin, teeman tai lisäosan päivitys
- uuden lisäosan asentaminen
- PHP-version vaihtaminen
- palvelimen tai webhotellin asetusten muuttuminen
- uuden koodinpätkän lisääminen teemaan tai lisäosaan
.htaccess-tiedoston muokkaaminen- sivuston palauttaminen varmuuskopiosta
- webhotellin tekemä palvelinpäivitys
Jos virhe alkoi heti tietyn muutoksen jälkeen, nopein ratkaisu voi olla muutoksen peruuttaminen tai palauttaminen aiempaan toimivaan tilanteeseen.
2. Tarkista virhelokit
Virheloki on yleensä nopein tapa löytää 500-virheen todellinen syy. Lokit voivat kertoa esimerkiksi, mikä lisäosa, teema, PHP-tiedosto tai palvelinasetus aiheutti ongelman.
Virheilmoituksia voi löytyä esimerkiksi näistä paikoista:
- WordPressin
wp-content/debug.log-tiedostosta - webhotellin hallintapaneelin virhelokeista
- cPanelin tai Pleskin Error Log -osiosta
- palvelimen Apache- tai Nginx-lokeista
- webhotellin tekniseltä tuelta
Jos lokissa näkyy esimerkiksi lisäosan nimi, teeman tiedosto tai PHP-virhe, älä tee suuria muutoksia ennen kuin olet tarkistanut liittyykö ongelma juuri siihen.
3. Ota WordPressin vianmääritys käyttöön
Jos et löydä palvelimen virhelokeja, voit ottaa WordPressin oman vianmäärityksen käyttöön.
Avaa WordPress-asennuksen juurihakemistosta löytyvä wp-config.php-tiedosto. Etsi siitä rivi:
define( 'WP_DEBUG', false );
Muuta se tai lisää seuraavat rivit ennen kohtaa:
/* That's all, stop editing! Happy publishing. */
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Tämän jälkeen WordPress yrittää tallentaa virheilmoitukset tiedostoon:
wp-content/debug.log
Virheitä ei näytetä suoraan sivuston kävijöille, mikä on turvallisempaa tuotantosivustolla.
Kun olet löytänyt ongelman, palauta asetukset esimerkiksi tähän muotoon:
define( 'WP_DEBUG', false );
Älä jätä vianmääritystä pysyvästi päälle tuotantosivustolle, koska lokiin voi tallentua teknisiä tietoja, joita ei ole tarkoitettu julkisesti näkyviin.
4. Poista lisäosat väliaikaisesti käytöstä
Lisäosa on yksi tavallisimmista 500-virheen aiheuttajista. Ongelma voi syntyä esimerkiksi lisäosan omasta virheestä, WordPress- tai PHP-yhteensopivuudesta tai kahden lisäosan välisestä ristiriidasta.
Jos WordPressin hallintapaneeli toimii, voit poistaa lisäosat käytöstä normaalisti hallinnasta.
Jos et pääse hallintapaneeliin, voit tehdä sen tiedostonhallinnan tai FTP-yhteyden kautta.
Kaikkien lisäosien poistaminen käytöstä
- Avaa hakemisto:
wp-content/plugins
- Nimeä
plugins-hakemisto väliaikaisesti esimerkiksi muotoon:
plugins.disabled
- Avaa sivustosi uudelleen selaimessa.
Jos virhe poistuu, ongelma liittyy todennäköisesti johonkin lisäosaan.
- Nimeä hakemisto takaisin muotoon:
plugins
- Aktivoi lisäosat yksi kerrallaan WordPressin hallinnasta.
Tarkista sivusto jokaisen aktivoinnin jälkeen. Kun 500-virhe ilmestyy uudelleen, olet todennäköisesti löytänyt ongelman aiheuttavan lisäosan.
Yksittäisen lisäosan poistaminen käytöstä
Jos epäilet tiettyä lisäosaa, avaa:
wp-content/plugins
Nimeä epäillyn lisäosan kansio esimerkiksi:
lisäosan-nimi.disabled
Jos sivusto alkaa toimia, lisäosa on todennäköinen virheen aiheuttaja.
Tarkista silloin, onko lisäosaan saatavilla päivitystä, onko se yhteensopiva käyttämäsi WordPress- ja PHP-version kanssa tai voiko sen korvata toisella lisäosalla.
5. Tarkista aktiivinen teema
Myös teema voi aiheuttaa 500-virheen. Tämä on tavallista erityisesti silloin, kun teemaa on päivitetty, siihen on lisätty omaa PHP-koodia tai käytössä on vanha teema, joka ei enää tue nykyistä PHP-versiota.
Jos hallintapaneeli ei toimi, voit kokeilla vaihtaa teeman tiedostonhallinnan tai FTP-yhteyden avulla.
- Avaa hakemisto:
wp-content/themes
- Nimeä aktiivisen teeman kansio esimerkiksi muotoon:
oma-teema.disabled
- WordPress yrittää ottaa käyttöön jonkin muun asennetun teeman.
Tätä varten sivustolle kannattaa jättää ainakin yksi ajantasainen WordPressin oletusteema, kuten Twenty Twenty-Five tai uudempi oletusteema.
Jos sivusto alkaa toimia oletusteemalla, ongelma liittyy todennäköisesti alkuperäiseen teemaan, sen lapsiteemaan tai teemaan tehtyihin omiin muokkauksiin.
6. Tarkista PHP-versio
Vanhentunut tai yhteensopimaton PHP-versio voi aiheuttaa 500-virheen. Tämä on yleistä erityisesti silloin, kun webhotelli päivittää PHP-version tai kun sivustolla käytetään vanhaa teemaa tai lisäosaa.
WordPress-sivustolla kannattaa käyttää webhotellin tarjoamaa tuettua PHP-versiota. Ennen PHP-version vaihtamista varmista, että:
- WordPress on ajan tasalla
- WooCommerce on ajan tasalla, jos käytät verkkokauppaa
- teema tukee valittua PHP-versiota
- tärkeät lisäosat tukevat valittua PHP-versiota
- sivustosta on otettu varmuuskopio
PHP-version voi yleensä vaihtaa webhotellin hallintapaneelista. Jos et ole varma oikeasta versiosta, kysy webhotellin tuelta, mitä versiota he suosittelevat juuri sinun WordPress-asennuksellesi.
Jos 500-virhe alkoi heti PHP-version vaihdon jälkeen, kokeile palauttaa aiempi toimiva versio ja päivitä sen jälkeen vanhentuneet teemat tai lisäosat.
7. Tarkista PHP-muistiraja
Joillakin sivustoilla 500-virheen taustalla voi olla liian pieni PHP-muistiraja. Tämä voi näkyä erityisesti silloin, kun sivustolla on paljon lisäosia, WooCommerce, sivunrakentaja, suuri tuonti- tai vientitoiminto tai raskas varmuuskopiointi.
Virhelokissa voi näkyä esimerkiksi tämän kaltainen ilmoitus:
Allowed memory size exhausted
Tämä tarkoittaa, että PHP-prosessi on käyttänyt sille varatun muistin loppuun.
Muistirajan muuttaminen wp-config.php-tiedostossa
Voit kokeilla lisätä wp-config.php-tiedostoon seuraavan rivin ennen kohtaa:
/* That's all, stop editing! Happy publishing. */
define( 'WP_MEMORY_LIMIT', '256M' );
Joissakin ympäristöissä tämä asetus ei kuitenkaan voi ylittää webhotellin palvelintasolla määrittämää rajaa.
Siksi muistirajan turvallisin muutospaikka on yleensä webhotellin hallintapaneeli tai webhotellin teknisen tuen kautta.
Älä lisää .htaccess-tiedostoon php_value memory_limit -asetusta, ellei webhotelli nimenomaisesti ohjeista tekemään niin. Joissakin PHP-FPM- ja Nginx-ympäristöissä se voi aiheuttaa uuden 500-virheen.
8. Tarkista .htaccess-tiedosto
.htaccess on Apache- ja LiteSpeed-palvelimilla käytettävä asetustiedosto. WordPress käyttää sitä muun muassa pysyvien linkkien eli permalinkkien hallintaan.
Virheellinen, rikkoutunut tai väärin muokattu .htaccess-tiedosto voi aiheuttaa 500-virheen.
Jos sivustosi käyttää Nginx-palvelinta,
.htaccess-tiedosto ei yleensä vaikuta sivuston toimintaan. Nginx-asetukset tehdään palvelintasolla.
Näin testaat .htaccess-tiedoston
- Avaa WordPress-asennuksen juurihakemisto. Se on yleensä sama kansio, jossa ovat esimerkiksi
wp-config.php,wp-adminjawp-content. - Ota
.htaccess-tiedostosta varmuuskopio. - Nimeä tiedosto väliaikaisesti esimerkiksi:
.htaccess.old
- Avaa sivusto uudelleen selaimessa.
Jos sivusto alkaa toimia, vanha .htaccess-tiedosto oli todennäköisesti virheellinen.
Jos pääset WordPressin hallintaan, luo uusi tiedosto avaamalla:
Asetukset → Pysyvät linkit
Paina sen jälkeen Tallenna muutokset muuttamatta mitään asetuksia.
Jos hallintapaneeli ei toimi, voit luoda uuden .htaccess-tiedoston ja lisätä siihen tavalliset WordPressin perussäännöt:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Jos WordPress on asennettu alihakemistoon tai käytössä on multisite-asennus, perussäännöt voivat olla erilaiset. Tällöin kannattaa käyttää WordPressin hallinnasta muodostuvia sääntöjä tai pyytää apua webhotellilta.
9. Tarkista tiedosto- ja kansio-oikeudet
Väärät käyttöoikeudet voivat estää palvelinta lukemasta tai kirjoittamasta sivuston tarvitsemia tiedostoja. Tämä voi joskus johtaa 500-virheeseen.
Monilla webhotelleilla tavallinen lähtökohta on:
- kansiot:
755 - tiedostot:
644
Tarkat oikeudet voivat kuitenkin vaihdella palvelinympäristön mukaan. Joillakin palvelimilla tiedostojen omistajuus, PHP-prosessin käyttäjä ja palvelimen suojausasetukset vaikuttavat enemmän kuin yksittäinen CHMOD-arvo.
Älä aseta tiedostoille tai kansioille oikeuksia 777, ellei webhotellin tuki ole nimenomaisesti neuvonut tekemään niin.
Tiedosto-oikeuksia voi tarkistaa FTP-ohjelmalla tai webhotellin tiedostonhallinnassa.
10. Tarkista välimuisti ja tietoturvapalvelut
Joskus 500-virhe voi liittyä välimuistilisäosaan, palvelintason välimuistiin, CDN-palveluun, palomuuriin tai tietoturvalisäosaan.
Tarkista erityisesti, onko sivustolla käytössä esimerkiksi:
- välimuistilisäosa
- CDN-palvelu
- Web Application Firewall eli WAF
- tietoturvalisäosa
- palvelimen oma välimuisti
- Cloudflare tai vastaava välityspalvelu
Kokeile tarvittaessa tyhjentää välimuistit. Jos käytössä on CDN tai palomuuri, tarkista myös sen tapahtumalokit ja mahdolliset estot.
Älä kuitenkaan poista tietoturvaa pysyvästi käytöstä. Tee mahdolliset testit vain tilapäisesti ja ota suojaus takaisin käyttöön heti testauksen jälkeen.
11. Pyydä apua webhotellin tuelta
Jos olet käynyt perusvaiheet läpi, mutta 500-virhe jatkuu, webhotellin tuki voi nähdä palvelinlokeista tarkemman virheen.
Anna tukipyynnössä mahdollisimman selkeät tiedot:
- sivuston osoite
- milloin virhe alkoi
- näkyykö virhe kaikilla sivuilla vai vain tietyllä sivulla
- mitä päivityksiä tai muutoksia tehtiin juuri ennen virhettä
- mitä olet jo kokeillut
- mahdollinen virheilmoitus
debug.log– tai palvelinlokista - käyttämäsi WordPress-, WooCommerce- ja PHP-versio
Esimerkkiviesti webhotellin tuelle:
Sivustollani näkyy 500 Internal Server Error. Virhe alkoi [päivämäärä tai tehdyn muutoksen jälkeen]. Olen kokeillut lisäosien poistamista käytöstä, aktiivisen teeman vaihtamista ja
.htaccess-tiedoston uudelleenluontia. Voisitteko tarkistaa palvelimen virhelokeista, mikä tarkka virhe aiheuttaa ongelman?
12. Varmuuskopiot ovat viimeinen turvaverkko
Säännölliset varmuuskopiot helpottavat vakavista virhetilanteista palautumista. Jos sivusto rikkoutuu päivityksen, virheellisen lisäosan, palvelinmuutoksen tai haittaohjelman vuoksi, toimiva varmuuskopio voi palauttaa sivuston nopeasti käyttöön.
Varmuuskopion tulisi sisältää:
- WordPress-tiedostot
- tietokanta
- ladatut kuvat ja muut mediatiedostot
- teemat ja lisäosat
- tarvittaessa sähköpostiasetukset ja muut palvelukohtaiset asetukset
Säilytä varmuuskopioita myös muualla kuin samalla palvelimella, jolla sivusto sijaitsee.
Yhteenveto
WordPressin 500 Internal Server Error on yleinen mutta usein korjattavissa oleva ongelma. Tehokkain tapa ratkaista se on aloittaa virhelokeista ja selvittää, mikä palvelimella todella epäonnistuu.
Tarkista tämän jälkeen lisäosat, teema, PHP-versio, muistiraja, .htaccess-tiedosto, tiedosto-oikeudet ja mahdolliset välimuisti- tai tietoturvapalvelut.
Älä tee montaa suurta muutosta samanaikaisesti. Kun etenet yksi vaihe kerrallaan, tiedät myös paremmin, mikä ongelman lopulta aiheutti.
