Son günlerde WordPress ve WordPress eklentilerine gelen güncellemeler sonucunda kişisel blog sayfamın hata kayıtları günlüğünde çok fazla bu hatayı görmemden ötürü araştırma yaptım ve araştırmam sonucunda bulduğum çözümü uyguladım ve sorunum ortadan kalktı.
FTP kök dizininde eğer sitenizde bir teknik sorun var ise bunun kayıtlarının tutulduğu bir error_log dosyası mevcuttur. Bu dosya içerisinde sitenizde çalışan eklentiler, bileşenler bir hata ile karşılaştıklarında hatanın ne olduğunu ve nereden kaynaklandığını kayıt ederler. Bu sayede oluşan bu teknik hataları çözebilirsiniz. Benim karşılaştığım hata ise php out of memory hatası idi.
[09-May-2019 19:23:10 UTC] PHP Fatal error: Out of memory (allocated 10485760) (tried to allocate 32768 bytes) in /home/anadizin/public_html/wp-includes/post.php on line 6475
Bu hatayı yorumlayacak olursak hata bana şunu diyor; post.php dosyasında bulunan 6475. satırda ki kodu çalıştırmaya çalıştığımda bana 10485760 boyutunda bir istek yapıyor ancak php ayarlarınızda ancak 32768 byte’lık isteğe cevap verebiliyor ve bundan dolayı istek out of memory oluyor. 104 byte’lık bir istek geliyor ancak sunucuda sadece 32 byte’lık bir isteği karşılayabiliyor.
Gerekli süre: 30 dakika.
Adım Adım PHP out Of Memory Hatası Nasıl Çözülür?
PHP’de sıklıkla karşılaşılan out of memory hatası neyden kaynaklanıyor sorusuna cevap vereceğim.
İki farklı ve bir bonus yöntem ile php out of memory hatasının nasıl çözüleceğini adım adım anlatacağım.
WordPress kullanıcıların için php memory limitini nasıl artıracaklarını basit bir yol ile anlatmaya çalışacağım.
Bu hatanın nedeni sunucun PHP işlemleri için sınırlandırmış olduğu hafıza limitinden kaynaklanmasıdır. Çok fazla php isteklerinin önüne geçilmesi için bir memory_limit özelliği vardır php’de. Bu memory limiti php ayarlarının bulunduğu php.ini dosyasında mevcuttur.
Bu hafıza limiti ne oluyor? derseniz eğer şöyle açıklayayım. PHP işleyicisine gelen isteklerin boyutunu belirliyor. Gelen bu istekler geçici olarak php önbelleğine alınıyor ve daha sonra sırayla işleniyor işte bu geçici olarak belleğe alınacak istek boyutunu memory_limit fonksiyonu ile ayarlayabiliyorsunuz.
64M’dan başlayıp 512M’a kadar ayarlanabiliyor. Genel olarak hosting sağlayıcıları bu ayarı 128M’da tutmaktadır. Bu genelikle yeterli geliyor ancak benim karşılaştığım gibi bazı durumlarda bu limit yeterli gelmiyor ve artırılması gerekiyor ki bu tarz out of memory hatası almayalım.
Bu hatayı çözmenin 2 yolu mevcut. Bunlardan ilki php.ini dosyasında ki memory_limit satırının düzenlemesi ve Apache/Nginx’in yeniden derlenerek sunucunun yeniden başlatılmasıdır. İkinci çözüm ise paylaşımlı bir hosting kullanıyorsanız eğer cPanel’in Select PHP Version eklentisini kullanarak düzenleme yapmaktır.
Bir sanal sunucu, vps/vds kullanıyorsanız eğer sunucunuzun kontrolü sizde olduğu için araya ekstra bir panel sokmadan bu düzenlemeleri kendiniz yapabilirsiniz. Sunucuzun php ayarlarının bulunduğu php.ini dosyasını bir kod editörü yardımı ile açın ve memory_limit adlı satırı bulun ve orada ki değeri yükseltin.
memory_limit = 512M
En yüksek değer olarak 512M değerini verebilirsiniz. Bu kısımda verebileceğiniz değerler;
Sizde ki değer ne ise onu yükselterek php out of memory hatasını giderebilirsiniz. Gerekli düzeltmeleri yaptıktan sonra php.ini dosyasını kaydettikten sonra Apache ya nginx’i tekrar derleyerek sunucunuzu yeniden başlatın.
Bu oldukça basit ve herhangi bir kod bilgisi gerektirmeden yapabileceğiniz bir işlemdir. Eğer, hosting sağlayıcınız bu özelliği kullanmanıza izin vermişse bu işlemi gerçekleştirebilirsiniz. cPanel’de oturum açarak aşağıda ki görselde yer alan Select PHP Version alanına tıklayalım.
Select PHP Version özelliğine tıkladıktan sonra açılan pencerede aşağıda ki görselde kırmızı çerçeve ile gösterdiğim Switch to PHP Options bağlantısına tıklayın.
Bu bağlantıya tıkladıktan sonra karşınıza çeşitli php ayarlarının listelendiğini göreceksiniz. Bu listeden memory_limit adlı ayar satırını bulmanız gerekiyor. Bu ayar satırını bulduktan sonra hemen karşısında mevcut ayarlarınıza ait boyut limitinin olduğunu göreceksiniz, mevcut boyutun üzerine tıklayın ve açılır panelden mevcut boyuttan daha yüksek bir boyutu seçip kaydedin.
memory_limit ayarının karşısında boyuta tıkladıktan sonra açılır bir menü çıkacak oradan istediğiniz boyutu seçin ve hemen sağında çıkan “Uygula” butonuna tıklayın. Daha sonra bu ayar php.ini dosyasını eklenecek fakat geçerli olması için en altta yer alan “Kaydet” butonuna tıklamanız gerekiyor.
Gerekli ayarlamaları yaptıktan sonra artık php out of memory hatasını çözmüş olacaksınız.
WordPress’de PHP’nin memory_limit sayısını artırmak oldukça kolay bir işlemdir. WordPress’in kurulu olduğu dizinde bulunan wp-config.php dosyasını bir kod editörü yardımı ile açın ve aşağıda ki satırı uygun bir yere ekleyin (tavsiyem dosyanın en son satırına eklemenizdir.)
define('WP_MEMORY_LIMIT', '126M');
Hatırlatma! Sunucu sağlayıcınız bu hafıza limitini düşük tutuyor olabilir bu yüzden yükseltme yapmadan önce hosting sağlayıcınızın sağladığı limitleri kontrol ediniz veya sorunuz. Kendinize ait bir sanal sunucunuz (vps/vds) var ise sunucu kapasitesine göre bu limiti arttırın ya da azaltın.
Yararlanılan Kaynaklar:
Yazı Bağlantısını Kopyala & Paylaş
Bir Cevap Yaz