HTTP Error 500 Internal Server Error hatası wordpress sitelerde sıkça rastlanan hatalardan biridir. Temel olarak 5xx hataları sunucu kaynaklı yaşanan hatalar olmakla birlikte, yazılımın sunucudaki servisler ile uyumlu   olmamasından kaynaklanabilir. Bu yazımızda wordpress sitelerde rastlanan 500 Internal Server Error hatasının çözümünü inceleyeceğiz.

Öncelikle her ihtimale karşı web sitenizin yedeğini almayı unutmayın. Eğer websiteniz cPanel kontrol panelinde veya bizden aldığınız WordPress Hosting paketinde ise konu ile ilgili hazırladığımız doküman ile yedek alma adımlarını uygulayabilirsiniz.

WordPress debug modunda inceleme

WordPress sitenizi girdiğinizde “Web sitenizde kritik bir hata oluştu.” yazıyorsa arka planda site 500 Internal Server Error hatası alıyordur. Bu uyarının anlamı, wordpress tarafında bir şeyler yanlış ayarlanmış demektir.

Hatanın nerede olduğunu anlamak için WordPress’i debug moduna alırız. Bu sayede hatanın nerede olduğu hakkında bir bilgi sahibi olabiliriz. WordPress Debug moduna almak için wp-config.php dosyası açılır.

Eğer kontrol paneli olarak cPanel kullanıyorsanız Dosya Yöneticisi açılır ve sitenizin bulunduğu klasör tıklanır. Ana domain ise public_html klasörünü açmanız uygundur.

Düzenle penceresi Edit butonuna tıklayarak geçilir ve kod editörü açılır. $table_prefix satırından sonra bulunan define( 'WP_DEBUG', false); satırındaki false yerine true yazılır ve sağ üst köşeden Değişiklikleri Kaydet butonuna tıklanır. Eğer bu satır yoksa define( 'WP_DEBUG', true); satırı eklenir.

Websitesine tekrar girdiğimizde hata mesajı görünecektir. Örneğin, resimdeki hataya göre temaya ait index.php dosyasının 24. satırında bir hata olduğu söyleniyor.

Belirtilen dosyayı kontrol ettiğimizde 24.karakterde uyarıyı görebiliriz. Bir üst satırda ise olmaması gereken bir karakter bulunuyor. Silerek dosyayı kaydettiğimizde sorun çözülmesi gerekir.

Eğer sitede herhangi bir hata mesajı yazmıyorsa wp-config.php dosyasında define( 'WP_DEBUG', true ); satırının altına define( 'WP_DEBUG_LOG', true ); satırı eklenir ve Değişiklikleri Kaydet butonuna tıklanır.

Web sitesi tekrar yenilenir. Ardından hata mesajı wordpress site dosyalarında wp-content klasörü altında debug.log adında dosyaya yazmaya başlayacaktır.

Eğer wordpress siteniz Hosting.com.tr’den aldığınız Linux Hosting veya WordPress Hosting paketlerinde barınıyorsa WordPress Debug moduna almanın alternatif bir yöntemi mevcut.

cPanel > WordPress Manager by Softaculous sayfası açılır.

Siteye ait satırdaki aşağıya doğru ok tıklanır ve Debug Mode seçeneği Enabled yapılır. Bu şekilde de WordPress debug modu aktif olacaktır.

Eklenti ve tema kontrolü

WordPress Debug modunda incelediğimizde herhangi bir mesaj göremediysek, eklentileri ve temayı devre dışı bırakarak sorunun hangi eklentide veya tamada mı olduğunu anlayabiliriz. Genellikle 500 hatalarında admin panel açılmayabilir. Bu durumda FTP üzerinden veya cPAnel’de Dosya Yöneticisi üzerinden eklentiye ve temaya ait klasör adlarını değiştirerek devre dışı bırakabiliriz.

Resimdeki gibi devre dışı bıraktıktan sonra hatanın sebep olduğu eklenti ve tema tespit edilir. 500 hatası ne zaman kalkarsa hatanın sebebini bulmuş oluruz. Bu durumda artık WordPress Admin panele giriş yapabiliriz. Admin panel üzerinden kalıcı olarak kaldırabiliriz.

PHP Memory limit artırma

Eklenti ve tema kontrolünde sorun çözülmezse PHP memory limiti artırılarak kontrol edilir. Bu durumu bazen debug modunda incelerken de görebiliriz. Fatal error: Allowed memory size of 134217728 bytes exhausted şeklinde hata mesajı yazıyorsa PHP memory limiti artırılır.

Hosting.com.tr’de Linux Hosting veya WordPress Hosting paketi kullanıyorsanız cPanel kontrol paneli üzerinden düzenleyebilirsiniz. cPanel > Select PHP Version sayfası açılır.

Options sekmesi açılır.

memory_limit satırındaki listeden değişiklik yapılır.

PHP Selector erişimi bulunmuyorsa .htaccess dosyasından da düzenleyebilirsiniz. .htaccess dosyasının son satırına aşağıdaki satır eklenir.

php_value memory_limit 128M

Alternatif olarak wp-config.php dosyasına ekleyeceğiniz satır ile php memory limitini artırabilirsiniz. Debug bölümünün altına /* That’s all, stop editing! Happy publishing. */ satırının üstüne aşağıdaki satırı uygun şekilde eklemeniz yeterlidir.

define( ‘WP_MEMORY_LIMIT’, ‘256M’ );

PHP sürümü değiştirme

WordPress’deki tema ve eklentiler aktif olan PHP sürümü ile uyumsuz olabilir ve bu yüzden 500 Internal Server hatası alabilirsiniz. Debug modunda incelerken bu yönde hata mesajı görebilirsiniz. PHP Depracated mesajları genellikle PHP version ile ilgilidir. cPanel’de PHP Selector bulunuyorsa listeden PHP versiyonu seçip Set as current butonuna tıklamanız yeterlidir.

.htaccess dosyası kontrolü

.htaccess dosyası apache, nginx, litespeed server gibi linux tabanlı sunucularda sitenizin web servisle uyumlu çalışmasına ve web servisi yönetmeye yardımcı olur. Bu alan manuel olarak düzenlenebildiği gibi eklentiler de bu dosyaya müdahale edebilmektedir. Bu aşamada yanlış bir satırın eklenmesi, karakter hataları gibi sebeplerden dolayı wordpress site, 500 Internal Server Error hatası verebilir.

Bu durumda mevcut .htaccess dosyası adı değiştirilerek yedeklenir.

.htaccess adında yeni bir dosya oluşturulur.

WordPress için uygun varsayılan kodlar eklenir.

Aşağıdaki satırları kopyalayıp ekleyebilirsiniz.

# BEGIN WordPressRewriteEngine On RewriteBase / RewriteRule ^index.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]# END WordPress

Yedekten dönme

Elinizde daha önce aldığınız uygun bir yedek dosyası varsa yedekten dönüş yaparak kontrol edebilirsiniz. Eğer yedek yoksa hosting sağlayıcınızda alınmış bir yedek varsa dönüş sağlayabilirsiniz. Firmamızdan aldığınız bir hosting paketiniz varsa düzenli olarak alınan yedeklerden sizin için uygun olan tarihe dönüş yapabilirsiniz.

Sunucu servislerinin kontrolü

WordPress sitenizin barındığı sunucunun yönetimi size aitse web servislerinin çalışıp çalışmadığını kontrol edebilirsiniz. Linux tabanlı sunucularda web servisinize uygun servis kontrolü yapabilirsiniz.

Genel olarak aşağıdaki komut geçerlidir, çalıştırabilirsiniz.

service httpd status

Web servis apache ise aşağıdaki komutu çalıştırabilirsiniz.

service apache status

Web servis nginx ise aşağıdaki komutu çalıştırabilirsiniz.

service nginx status

Web servis Litespeed ise aşağıdaki komutu çalıştırabilirsiniz.

service lsws status

Eğer web servis aktif değilse veya hataya düştüyse 500 Internal Server Error hatası almanız normaldir. Bu durumda servisi aktif etmek için gerekli kontrollerin yapılması gerekir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir