“ini_get_all() disabled for security reasons” Hatası ve Çözümü

"ini_get_all() disabled for security reasons" Hatası ve Çözümü

Yeni bir sorun ve sorunun basit çözümü ile karşınızdayım. Hata mesajının tamamını başlıkta paylaşamadım ancak aramalarda yakalamanız için yeterli olacağını düşündüm.. Sorunun ne olduğuna gelirsek; başta WordPress olmak üzere bazı scriptlerde ini_get_all() komutu, sunucunun güvenlik ayarlarından ötürü bu tarz bir hata mesajı üretmesine sebep veriyor ve hata mesajları ftp alanında log dosyasında alt alta birikiyor. Dosya boyutu 500 mb mı desem? 1 gb mı desem? Siz de gözlemlemişsinizdir zaten.. 

error.log dosyasını siliyorsunuz, tekrar birikmeye başlıyor.. Hata mesajı ise tam olarak aynen şöyle;

Hata: PHP Warning: ini_get_all() has been disabled for security reasons in /home5/user/public_html/wp-includes/load.php on line 1031

Peki Ne Yapmalı? 

Öncelikle şunu belirteyim, bu durumun error.log şişirmekten başka büyük bir sorun çıkardığını düşünmüyorum, öyle bir şeyde gözlemlemedim. En kötü ihtimalle log dosyası çok şiştiğinden sunucunuz da biraz yavaşlama olabilir veya ftp alanınız dolarsa buradan ufak bir sorun çıkabilir. Ancak büyük bir sorun yok gibi. Bu sebeple sorunu çözebiliyorsanız çözün, çözemiyorsanız log dosyasını devamlı takip edip, belirli aralıklarla silin. O kendisi yeniden temiz bir log oluşturur.

Sorunu Nasıl Çözeriz? 

Sorunun basit bir çözümü var. Host panelinize girmek, php seçim menüsünden php sürümünü 5.5 yada 5.6 olarak değiştirmek.

Çok garip ama gerçekten işe yarıyor.

Sorunu php sürümü 5.3 olan ve sürüm 5.6 olan iki farklı sitede gözlemledim ve çözüm olarak php sürümlerini 5.5 olarak ayarladım. Birkaç saat takip ettiğimde error.log dosyalarının artık birikmediğini gördüm.

Tabi bu sorundan hariç başka bir sorununuz yoksa.. Eğer farklı bir kodlama hatası yada sorun varsa yine error.log birikecektir. Fakat mevcut sorunun kayıtları eklenmediği için error.log daha ufak boyutlu olacaktır.

Sorunun uygulamalı çözümü için; Cpanel’inize giriş yapın, ana sayfada Yazılım (Software) başlığı altından MultiPHP Yöneticisi (Php Selector) seçeneğine tıklayın.

"ini_get_all() disabled for security reasons" Hatası ve Çözümü

Cpanel harici Plesk yada DirectAdmin panel kullanıyorsanız, o panellerde Php sürüm değiştirme seçeneğine tıklayın. Şuan o panelleri hatırlamıyorum.

Php sürüm değiştirme ekranında önce web sitesi adresinin soluna tik koyup, sonrasında sağ üstte yer alan açılır menüden Php sürümü olarak php55 seçin. Ardından uygula butonuna tıklayın.

"ini_get_all() disabled for security reasons" Hatası ve Çözümü

Şimdi ftp alanınızda ana dizine gidip mevcut error.log dosyasını silerek yeniden log oluşacak mı? Oluşmayacak mı? Kontrol edebilirsiniz.

Notlar: 

  • Host panelinizden php sürüm değiştirme imkanı tanınmamışsa sorunu host sağlayıcınıza bildirin. Bazı hosting firmaları güvenlik sebebi ile hiç bir şey yapamayacaklarını söyleseler de bazıları olumlu geri dönüş yapabiliyorlar.
  • Php sürümünü değiştirmeden önce sitenizden full yedek alın. Php sürümünü değiştirdikten sonrada sitenizin tüm bütünlüğünü takibe alın. İçerik ekleme, içerik silme, sayfalama, arama, iletişim formları, ek forumlar vd. scriptler.. Herhangi bir olumsuz durum gözlemlerseniz php sürümünü eski haline çevirin yada diğer sürümleri deneyin. Deneme yaptığım hostlardan birinde WordPress scripti sorun çıkarmazken, Vbulletin scripti arıza çıkarmaya başlamıştı. Php sürümünü eski haline getirerek log’lara izin vermek zorunda kaldım.
  • Php sürümü 5.5 dedim ancak sizde sorunun çözümü php 5.4’de olabilir, php 5.6’da olabilir. Deneyerek görmeniz gerekiyor.

Konuyla alakalı sorularınız, eklemek istedikleriniz olursa, yorum formundan yazabilirsiniz.