Merhaba.

Birkaç gündür sunucumdaki *.php uzantılı dosyalara erişmek istediğimde aşağıdaki hatayı alıyordum.

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@siteadresi.org and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Linux işletim sistemi konusunda çok fazla bilgi sahibi olmamam sebebiyle bu problemi çözmek sistem bazlı değil, sisteme müdahale ederek gerçekleşti. Bu hatayı alan arkadaşlar için ekstra bir çözüm yolu olabileceğini düşünerek sizlerle paylaşıyorum.




Merhaba Arkadaşlar;

öncelikle belirtmeliyim ki bu konuyu açmamdaki sebep aynı sorunlarla benimde karşılaşmış olmamdır.
yaptığım araştırmaları derleyip size sunuyorum, umarım faydalı olur.

Sunucularını suphp olarak derleyen arkadaşlar anlam veremedikleri bazı hatalarla karşılaşabilirler,

Bunların bazıları:
- sitelerin http 500 internal server error vermeleri
- dizin ve sahiplik izinlerinde sıkıntılar
- panel üzerinden otomatik güncelleme yapılan sistemlerde karşılaşılan hatalar (Buna en güzel örnek wordpress olucaktır.)

somut bi örnek vermek gerekirse
wordpress scriptini panelden güncellemeye çalışıldığında, dosya kopyalanamadı.: /public_html/wp-admin/css/theme-editor.dev.css hatası ya da Dizin oluşturulamadı. /public_html hatası almaları olacaktır.

suphp ile ilgili ufak bir açıklama yapmak gerekirse,
suphp belirlenen grup ve user yetkisi dışında dosyalara erişim iznini kapatan,
güvenilir ancak sistem kaynaklarını dso ya nazaran daha fazla tüketen
ve dosyalarda max 644 dizinlerde ise max 755 izni verilmesini isteyen bir apache handler dır.

sitelerde http 500 internal server hatasıyla karşılaştığımızda bunun en belirgin sebebi dosya ve klasör izinlerindeki sıkıntı olacaktır.

bu hataların hepsine genel bir çözüm getirmesi amacıyla sizler için bir suphpduzen adında bir bash scripti hazırladım.
malumunuz bunu kullanma yetkisi sunucu sahibi arkadaşlarındır.

daha fazla uzatmadan işlem aşamalarına geçelim.

kodlardan önce vermem gereken ufak bir bilgi daha var arkadaşlar,
benim denemelerimde aldığım sonuca göre suphp ile en uygun ftp server’ı proftp dir,
o yüzden sunucularını suphp ile derleyen arkadaşlara tavsiyem proftp olucaktır.
illa pureftp kullanıcam diyen arkadaşlar eğer aşağıdaki işlemler sonucunda sorunlarınız hala düzelmediyse (Özellikle wordpress’te) proftp yi seçip tekrar denemelerini öneriyorum.

ilk olarak sunucumuza ssh üzerinden root olarak giriş yapıyoruz.

cd /root

komutu il root dizinimize geçiş yapıyoruz ve bu dizinle bir sh dosyası oluşturuyoruz.

nano suphpduzen.sh

karşımıza gelen boş ekrana aşağıdakileri yazıyoruz.

#!/bin/bash
for user in `ls /var/cpanel/users`; do
chown -R ${user} /home/${user}/public_html/
chgrp -R ${user} /home/${user}/public_html/
chmod 750 /home/${user}/public_html
find /home/${user}/public_html -type f -print0 | xargs -0 chmod 644
find /home/${user}/public_html -type d -print0 | xargs -0 chmod 755
done


daha sonra ctrl+x ve y tuş kombinasyonlarıyla dosyamızı kaydediyoruz.
yukarıdaki kodları basitçe açıklamak gerekirse,
öncelikle kullanıcıya ait dosyaları düzenleme yetkisini o kullanıcıya atıyoruz,
aynı şekilde grup olarak yine kendi dosyalarını o kullanıcı grubuna tanımlıyoruz.
daha sonra public_html dizinleri altındaki dosya izinlerini 644 dizin izinlerini ise 755 olarak tanımlıyoruz.

böylelikle sistemimizdeki siteler suphp nin istediği yapıya geçmiş olucaktır.

şimdi devam edelim.

chmod u+x /root/suphpduzen.sh

komutuyla dosyaya kullanma izni veriyoruz.

son olarak dosyamızı çalıştırmak kaldı sadece

/root/suphpduzen.sh

komutuyla bash scriptimizi çalıştırmış olduk.

bu dosyayı ara ara çalıştırıp gerekli düzenlemelerin yapılmasını sağlayabilirsiniz.


Alıntı sayfası/

Umarım sorunu çözemeyenlerin işine yarar.