PHP-FPM Memory Limit Hatası Nedir?
PHP-FPM (PHP FastCGI Process Manager), PHP'nin daha hızlı çalışmasını sağlayan bir PHP işleme yöneticisidir. Ancak, PHP-FPM'in çalışması için belirli bir bellek sınırı vardır. Bu sınır aşıldığında, "memory limit exceeded" hatası ile karşılaşırsınız. Bu durumda, PHP betikleriniz beklenmedik şekilde sonlanabilir veya performans sorunları yaşanabilir.
Memory Limit Hatasını Anlamak
Bu hatayı aldığınızda, genellikle sunucunuzun log dosyalarında şu tür bir hata mesajı görürsünüz:
[27-Feb-2025 14:52:19] WARNING: [pool www] server reached max_children setting (5), consider raising it
Bu mesaj, PHP-FPM'in işlem sınırına ulaştığını ve daha fazla işlem başlatamadığını gösterir. Peki, bu hatayı nasıl çözebilirsiniz?
PHP-FPM Memory Limitini Artırmak İçin Adımlar
1. PHP-FPM Konfigürasyon Dosyasını Düzenleyin
İlk adım, PHP-FPM'in yapılandırma dosyasını bulmak ve düzenlemektir. Çoğu durumda, PHP-FPM'in yapılandırma dosyası `/etc/php/7.x/fpm/php.ini` veya `/etc/php/7.x/fpm/pool.d/www.conf` dizinlerinde yer alır.
Aşağıdaki komutu kullanarak `www.conf` dosyasına erişebilirsiniz:
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
Bu dosyada, bellek limiti ve işlem sınırlarını belirleyen birkaç önemli satır bulunmaktadır.
2. Memory Limitini Artırın
`memory_limit` direktifini bulup, mevcut değeri artırmanız gerekebilir. Örneğin:
memory_limit = 512M
Bu, PHP'nin 512MB'a kadar bellek kullanmasına izin verir. Eğer daha büyük bir siteyle çalışıyorsanız, 1024M (1GB) gibi daha yüksek bir değer de kullanabilirsiniz. Değişikliği yaptıktan sonra, bu dosyayı kaydedin.
3. PHP-FPM Servisini Yeniden Başlatın
Yapılandırma dosyasındaki değişikliklerin geçerli olması için PHP-FPM servisini yeniden başlatmanız gerekir. Aşağıdaki komutla PHP-FPM servisini yeniden başlatabilirsiniz:
sudo systemctl restart php7.x-fpm
4. Web Sunucusunu Yeniden Başlatın
PHP-FPM'i yeniden başlatmanın ardından, web sunucunuzu da yeniden başlatmanız gerekebilir. Apache veya Nginx kullanıyorsanız, aşağıdaki komutlarla sunucuyu yeniden başlatabilirsiniz:
sudo systemctl restart apache2
Veya Nginx için:
sudo systemctl restart nginx
PHP-FPM Hata Günlüklerini Kontrol Edin
Eğer yukarıdaki adımlardan sonra hala sorun devam ediyorsa, hata günlüklerini kontrol etmek iyi bir fikir olacaktır. Hata günlükleri genellikle `/var/log/php7.x-fpm.log` veya `/var/log/apache2/error.log` dosyalarına kaydedilir. Bu log dosyalarında, neyin yanlış gittiğini anlayabileceğiniz daha fazla bilgi bulabilirsiniz.
Sonuç: PHP-FPM Memory Limit Hatası Çözümü
PHP-FPM memory limit hatası, web sitenizin çalışmasını engelleyen ve performans sorunlarına yol açabilen yaygın bir problemdir. Ancak, doğru yapılandırmalarla bu sorunu çözmek oldukça basittir. PHP-FPM'in yapılandırma dosyasını düzenleyerek, bellek limitini artırabilir ve sunucunuzun daha stabil çalışmasını sağlayabilirsiniz.
Bu yazıyı takip ederek, PHP-FPM memory limit hatasını hızlıca çözebilirsiniz. Artık siteniz çok daha hızlı ve verimli bir şekilde çalışacak!