Neler yeni
Blue
Red
Green
Orange
Voilet
Slate
Dark

Cyberpanel 503 Service Unavailable Hatası

Endless

Kategori Moderatörü
Yönetici
.
Katılım
11 Eyl 2021
Mesajlar
96
Tepkime puanı
4
Puanları
8
Konum
Tekirdağ

HTTP 503 hata kodu nedir?​

HTTP 503 hata kodu, genel bir hatadır ve hizmet yok anlamında kullanılır. Problemin bir çok sebebi olabilir. Bundan dolayı ilk etapta problemin sebebini bulup, daha sonra çözüm yolunu aramamız gerekir.

Cyberpanel üzerinde barındırdığınız bir web sitesinde HTTP 503 hata kodu alıyorsanız, durum web sunucusu ile ilgili yani Openlitespeed ile ilintilidir. Bu yazımızda HTTP 503 Service Unavailable Hatasını inceleyeceğiz.

Openlitespeed üzerinde 503 hatası aşağıda görseldeki şekildedir.

503-1024x490.png

Öncelikle hatanın tespitini yapmamız için Openlitespeed loglarına bakmamız gerekiyor. Cyberpanel üzerinde Openlitespeed logları /usr/local/lsws/logs klasöründe bulunur. Burada bulunan iki dosyayı okumamız gerekecek.

tail -f /usr/local/lsws/logs/error.log
tail -f /usr/local/lsws/logs/stderr.log
Loglarda hatayı bulup buna göre çözüm üretmemiz gerekiyor. Fakat biz olası nedenleri yazıp, buna göre çözüm üretelim.

PHP Hatası ile HTTP 503​

PHP üzerinde herhangi bir problem nedeni ile 503 hatası alıyor olabilirsiniz. PHP üzerinde yapılacak işlemler;

Memory (RAM) limitini arttırmak;

PHP üzerinde memory limit değişkeni bulunmaktadır. Bu limit, her PHP betiği için ayrılan ram miktarıdır. Eğer kullandığınız PHP betikleriniz veya uygulamanız bu ram miktarını aşıyorsa HTTP 503 hatası alabilirsiniz. Değeri Cyberpanel üzerinden veya SSH üzerinden arttırabilirsiniz.

Cyberpanel memory_limit arttırmak;

Cyberpanel üzerinden memory limit değerini arttırmak için, Cyberpanel admin şifresi ile Cyberpanel konsoluna giriş yapın.

cyberpanel-1024x406.png

Sol tarafta bulunan menüden, önce “PHP” ardından “Edit PHP Configs” bölümüne tıklayalım. Açılan sayfada “Advanced” sekmesine girelim.

cpphp-1024x578.png

Select PHP kısmından, 503 hatası veren web hosting hizmetinde, kullandığınız PHP versiyonunu seçin. Web sitesi üzerinde kullanılan PHP versiyonunu bilmiyorsanız basit phpinfo betiği atarak veya SSH üzerinden aşağıdaki şekilde öğrenebilirsiniz.

cat /usr/local/lsws/conf/vhosts/domain.com/vhost.conf | grep php
cyberpanel_php_learning.png

Memory limit varsayılan olarak 128MB olarak ayarlanmıştır.

memory_limit-1024x387.png

Memory limit ayarını bulup, sunucunuzun ram miktarına göre arttırım gerçekleştirin ve “Değişiklikleri Kaydet” diyerek, yaptığınız değişikliği kaydedin. Ardından SSH üzerinden “lscpd” servisini restart edin;

systemctl restart lscpd
SSH üzerinden memory_limit arttırmak;

Cyberpanel kurulu sunucunuz üzerinde php.ini dosyaları /usr/local/lsws/ dizininde, versiyona göre tutulur. PHP 7.0 kullanıyorsanız aşağıdaki yoldan php.ini dosyasına ulaşabilirsiniz.

/usr/local/lsws/lsphp70/etc/php.ini
PHP.ini dosyasını, favori editörünüz ile açın;

nano /usr/local/lsws/lsphp70/etc/php.ini
CTRL+w ile memory_limit değerini arayın.

memory_limit_ssh.png

Yine kullandığınız ram miktarına göre değişiklik yapıp, CTRL+x ile dosyayı kaydedip kapatıp, lscpd servisini yukarıdaki şekilde restart edin.

PHP max_execution_time

PHP “max_execution_time” değeri de memory limit değeri ile benzerlik gösterir. Bir php betiğinin maksimum çalışma süresini gösterir. Yukarıda memory limit arttırmada da anlatıldığı şekilde “max_execution_time” değerini de arttırabilirsiniz.

max_execution_time.png

/tmp dizinininde yer kalmaması​

Bazı web uygulamaları, geçici dosyaları (temporary file) saklamak için /tmp dizinini kullanır. Eğer /tmp dizininde yer kalmazsa, oturum (session) oluşturamadığı için HTTP 503 hatası döndürebilir. O yüzden /tmp dizinizin doluluk oranını kontrol etmekte fayda var.

df -h
tmp_df.png

Eğer doluluk oranı %100 seviyesinde ise, /tmp dizinizi boşaltmanız gerekecektir.

PHP OPCode Caching devre dışı bırakma​

Cyberpanel kurulumunda OpCode cache varsayılan olarak aktif şekilde gelir. Bazı durumda OpCode lsphp süreçleri ile çakışabilir. Opcode devre dışı bırakmak probleme çözüm olabilir. Hata veren web sitesinin PHP versiyonunu yukarıdaki şekilde öğrenin ve SSH üzerinden aşağıdaki işlemleri uygulayın;

cd /usr/local/lsws/lsphp72/etc/php.d
mv 10-opcache.ini 10-opcache.ini.yedek
systemctl restart lsws

Too many open files error hatası​

Bu hatayı log çıktılarında error_log dosyasında veya stderr.log dosyasında görebilirsiniz. Cyberpanel varsayılan olarak “fs.nr_open” değerini bir milyon olarak verse de bu ayar sıkıntı çıkartabiliyor.

Önemli : Ne yaptığınızı bilmiyorsanız, bu ayarları yapılandırmayınız.

SSH üzerinden root ile sunucunuza giriş yapın.

systemctl edit --full lsws.service
ve ekleyin;

LimitNOFILE=5000000
Ardından daemon servisini ve openlitespeed’i restart edin;

systemctl daemon-reload && systemctl restart lsws
Açık dosya sayısını kontrol etme;

Openlitespeed nobody kullanıcısı üzerinden çalışmaktadır. nobody kullacısının açık olan dosya sayısını öğrenmek için;

/usr/sbin/lsof -u nobody | wc -l
root kullanıcısının toplam dosya sayısını kontol etme;

/usr/sbin/lsof -u root| wc -l
Eğer dosya sayıları yüksekse, /etc/sysctl.conf ve /etc/security/limits.conf dosyalarında, kullanılan sayılara göre düzenleme yapmak gerekmektedir.

Failed to open the real time report hatası​

Openlitespeed gerçek zamanlı raporlama bilgilerini /tmp/lshttpd/ dizinine yazar. Eğer bir şekilde dizinin sahipliği değiştiyse bu hatayı log çıktılarınızda görebilirsiniz. Dizinin sahiplik bilgileri kullanıcı ve grubu “nobody” olmalıdır. Değilse aşağıdaki şekilde değiştirebilirsiniz;

chown -R nobody:nobody /tmp/lshttpd
 
Üst Alt