⚠️ WordPress-sivustosi näyttää 500-virheilmoituksen?
"500 Internal Server Error"
tai suomeksi:
"Sisäinen palvelinvirhe"
Muita variaatioita: "HTTP Error 500", "500 Server Error", "Error 500"
Mitä 500 Internal Server Error tarkoittaa?
500-virhe on yleinen HTTP-statuskoodi, joka tarkoittaa että palvelimella tapahtui odottamaton virhe, mutta palvelin ei pysty kertomaan tarkempaa syytä. Tämä on "catch-all" -virhe monille erilaisille palvelinongelmille.
Toisin kuin 404-virhe (sivu ei löydy), joka on käyttäjän aiheuttama, 500-virhe on aina palvelimen ongelma. Tämä tekee sen korjaamisesta haastavampaa, sillä syy voi olla monissa eri paikoissa.
Yleisimmät syyt 500-virheeseen WordPressissa
1. Vioittunut .htaccess-tiedosto
Yleisin syy! .htaccess-tiedostossa on virheellisiä sääntöjä tai syntaksivirheitä.
- Väärät rewrite-säännöt
- Syntaksivirheet .htaccess-tiedostossa
- Lisäosan lisäämät virheelliset säännöt
- Ristiriitaiset direktiivit
2. PHP-muistin loppuminen
WordPress tai jokin lisäosa tarvitsee enemmän muistia kuin PHP:lle on varattu.
- PHP memory_limit liian pieni
- Raskaat lisäosat tai teemat
- Suuri määrä samanaikaisia käyttäjiä
- Muistivuodot koodissa
3. PHP-koodivirheet
Teemassa tai lisäosassa on kriittinen PHP-virhe.
- Syntaksivirheet (syntax errors)
- Fatal errors PHP-koodissa
- Yhteensopimattomat PHP-versiot
- Puuttuvat PHP-laajennukset
4. Tiedosto- ja kansio-oikeusongelmat
WordPress-tiedostoilla tai -kansioilla on väärät käyttöoikeudet.
- Liian tiukat tiedosto-oikeudet (esim. 400)
- Liian löysät oikeudet (turvallisuusriski)
- Väärä omistaja (owner)
- Apache/Nginx ei pääse lukemaan tiedostoja
5. Yhteensopimaton lisäosa tai teema
Jokin lisäosa tai teema aiheuttaa palvelinvirheen.
- Päivitetty lisäosa ei ole yhteensopiva
- Teema ei tue nykyistä WordPress-versiota
- Lisäosakonfliktit
- Vanhentuneet lisäosat
6. Palvelimen resurssiongelmat
Palvelimen resurssit (CPU, RAM, I/O) ovat loppuneet.
- Palvelin ylikuormittunut
- Levy täynnä
- Liian monta prosessia
- DDoS-hyökkäys
Korjausohjeet 500-virheeseen
Ratkaisu 1: Tarkista ja korjaa .htaccess
Yleisin ja helpoin korjaus:
- Yhdistä palvelimelle FTP:llä tai tiedostohallinnalla
- Etsi
.htaccess-tiedosto juurikansiosta
- Nimeä se väliaikaisesti:
.htaccess-old
- Testaa sivusto selaimessa
- Jos sivusto toimii, .htaccess oli ongelma
- Kirjaudu WordPressiin ja mene: Asetukset → Pysyvät linkit
- Klikkaa "Tallenna muutokset" luodaksesi uuden .htaccess:n
Ratkaisu 2: Kasvata PHP-muistia
Kasvata WordPressin käytettävissä olevaa muistia:
- Avaa
wp-config.php-tiedosto
- Lisää ennen riviä
/* That's all, stop editing! */:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
- Tallenna tiedosto
- Testaa sivusto
- Jos ei auta, kasvata arvoja (esim. 512M / 1024M)
Huom: Palvelimen php.ini-tiedoston memory_limit-asetuksen täytyy olla vähintään sama tai suurempi.
Ratkaisu 3: Poista lisäosat käytöstä
Testaa onko jokin lisäosa syyllinen:
- Yhdistä palvelimelle FTP:llä
- Siirry kansioon:
/wp-content/plugins/
- Nimeä
plugins-kansio: plugins-disabled
- Testaa sivusto
- Jos toimii, lisäosa on syyllinen
- Nimeä kansio takaisin
plugins-nimiseksi
- Nimeä yksi plugin-kansio kerrallaan:
plugin-name-disabled
- Testaa jokaisen nimeämisen jälkeen
Ratkaisu 4: Vaihda teema
Jos lisäosat eivät ole syyllisiä, kokeile teeman vaihtoa:
- Kirjaudu tietokantaan (phpMyAdmin)
- Avaa
wp_options-taulu
- Etsi rivit joissa
option_name on template ja stylesheet
- Muuta molemmat arvoksi:
twentytwentyfour
- Testaa sivusto
Vaihtoehtoinen tapa FTP:llä:
- Siirry kansioon:
/wp-content/themes/
- Nimeä nykyinen teemasi kansio:
theme-name-old
- WordPress käyttää automaattisesti oletusteemaa
Ratkaisu 5: Tarkista tiedosto-oikeudet
Varmista, että WordPress-tiedostoilla on oikeat oikeudet:
- Tiedostot: 644 (tai 640)
- Kansiot: 755 (tai 750)
- wp-config.php: 600 (tai 640)
FTP-ohjelmassa (FileZilla ym.):
- Valitse WordPress-juurikansio
- Oikea klikkaus → File permissions / Oikeudet
- Aseta kansioille: 755
- Aseta tiedostoille: 644
- Valitse "Recurse into subdirectories"
Ratkaisu 6: Aktivoi WordPress Debug-tila
Nähdäksesi tarkan virheilmoituksen:
- Avaa
wp-config.php
- Muuta tai lisää:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
- Tallenna ja lataa sivu uudelleen
- Tarkista virheloki:
/wp-content/debug.log
- Virheloki kertoo tarkan syyn
Ratkaisu 7: Tarkista palvelimen error-lokit
Palvelimen virhelokit kertovat tarkan syyn:
- Apache:
/var/log/apache2/error.log tai /var/log/httpd/error_log
- Nginx:
/var/log/nginx/error.log
- PHP:
/var/log/php-fpm/error.log tai /var/log/php/error.log
cPanel/Plesk-käyttäjät löytävät lokit hallintapaneelista.
Edistynyt: Muita tarkistuksia
- Tarkista levytila:
df -h (SSH)
- PHP-versio: Varmista että PHP-versio on tuettu (suositus: 8.0+)
- PHP-laajennukset: Tarkista että kaikki tarvittavat laajennukset on asennettu
- Max execution time: Kasvata tarvittaessa php.ini:ssä
- Mod_security: Voi estää pyyntöjä, tarkista lokeista
Erityistapaukset
500-virhe vain wp-admin-sivulla
Jos etusivu toimii mutta hallintapaneeli näyttää 500-virheen:
- PHP-muisti loppuu admin-paneelissa (kasvata memory_limit)
- Admin-paneelia muokkaava lisäosa on rikki
- Poista admin-lisäosat käytöstä
500-virhe vain tietyillä sivuilla
Jos virhe ilmenee vain tietyillä sivuilla:
- Sivulla on raskas shortcode tai lisäosan toiminto
- Muistiongelma juuri kyseisellä sivulla
- Tarkista sivun sisältö ja poista/korvaa ongelmallinen osa
502 Bad Gateway / 504 Gateway Timeout
Liittyviä virheitä, mutta hieman erilaiset:
- 502: Gateway-ongelma, usein PHP-FPM kaatui
- 504: Pyyntö kesti liian kauan (timeout)
- Kasvata PHP max_execution_time ja memory_limit
- Tarkista PHP-FPM:n tila ja restart tarvittaessa
Ennaltaehkäisy
- Ota varmuuskopio ennen päivityksiä
- Testaa päivitykset staging-ympäristössä ensin
- Pidä WordPress, teemat ja lisäosat ajan tasalla
- Valvo palvelimen resursseja (muisti, levy, CPU)
- Käytä luotettavia lisäosia ja teemoja
- Aktivoi error logging pysyvästi
- Valitse ylläpitosopimus ammattilaiselta
Muita WordPress-virheitä?
Tietokantavirhe
Error establishing a database connection
Lue ratkaisu →