Bu hatanın nedeni genellikle bellek kullanım sınırlarının aşılmasıdır. Sunucunuzda PHP-FPM ile çalışan bir uygulama, bellek limitini aştığında, uygulamanız beklenmedik şekilde çökebilir veya çok yavaş çalışabilir. Bu yazıda, PHP-FPM memory limit hatasının ne olduğunu, nasıl tespit edebileceğinizi ve çözmek için hangi adımları izlemeniz gerektiğini adım adım inceleyeceğiz.
PHP-FPM Memory Limit Hatası Nedir?
Bir web sunucusunda PHP çalıştırmak için kullanılan PHP-FPM, uygulamanızın daha hızlı yanıt vermesini sağlamak için PHP süreçlerini yönetir. Her bir PHP-FPM işlemi, sunucuda belirli bir miktar bellek (RAM) kullanır. Eğer bu bellek miktarı belirlenen limitin üzerine çıkarsa, PHP-FPM hatalarla karşılaşabilir ve bu da uygulamanızın performansını olumsuz etkiler.
PHP-FPM memory limit hatası genellikle şu durumlarla kendini gösterir:
- PHP-FPM işleminde bellek kullanımı sınırı aşıldığında “Allowed memory size of X bytes exhausted” hatası alırsınız.
- Web sayfalarınızda beyaz ekranlar (500 hata) veya yavaş performans gibi belirtilerle karşılaşırsınız.
PHP-FPM Memory Limit Hatası Neden Olur?
PHP-FPM memory limit hatasının sebepleri şunlar olabilir:
- Kodun aşırı bellek kullanması: Özellikle büyük dosyalarla işlem yapıyorsanız, çok fazla bellek kullanabilirsiniz. Örneğin, büyük resim dosyaları veya veritabanı sorguları.
- Yüksek trafik: Web sitenize gelen yüksek trafik, PHP-FPM süreçlerinin aşırı bellek tüketmesine neden olabilir.
- Yanlış PHP-FPM yapılandırması: PHP-FPM konfigürasyon dosyasındaki bellek limitleri hatalı olabilir.
PHP-FPM Memory Limit Hatasını Çözme Yolları
Evet, şimdi hata ile karşılaştığınızda ne yapmanız gerektiğini öğrenelim. İşte adım adım çözüm önerileri:
1. PHP-FPM Memory Limitini Arttırın
PHP-FPM memory limitini arttırarak sorunu çözebilirsiniz. Bunun için PHP'nin yapılandırma dosyasına müdahale etmeniz gerekiyor.
Adımlar:
1. PHP Konfigürasyon Dosyasını Bulun: Genellikle `/etc/php/7.x/fpm/php.ini` veya `/etc/php.ini` konumlarında bulunur. PHP sürümünüze göre değişiklik gösterebilir.
2. php.ini Dosyasını Düzenleyin:
Dosyayı açarak aşağıdaki satırları bulun ve değerleri ihtiyacınıza göre arttırın:
memory_limit = 256M
Not: Varsayılan bellek limiti genellikle 128M veya 256M olabilir. Eğer çok büyük işlemler yapıyorsanız, bu değeri artırarak problemi çözebilirsiniz.
3. PHP-FPM’i Yeniden Başlatın:
Yapılandırmayı kaydettikten sonra PHP-FPM’i yeniden başlatmanız gerekir. Bunun için şu komutu kullanabilirsiniz:
sudo systemctl restart php7.x-fpm
Bu adım, yapılan değişikliklerin aktif olmasını sağlayacaktır.
2. PHP-FPM Pool Konfigürasyonunu Güncelleyin
PHP-FPM’in her “pool”u, belirli bir uygulama veya web sitesi için kaynakları yönetir. Eğer birden fazla web sitesi barındırıyorsanız, her site için bellek limitlerini uygun şekilde yapılandırmanız gerekir.
Adımlar:
1. FPM Pool Konfigürasyon Dosyasını Açın:
Genellikle `/etc/php/7.x/fpm/pool.d/www.conf` dosyasını bulacaksınız.
2. Memory Limits:
Bu dosyada aşağıdaki satırı bulabilir ve değeri arttırabilirsiniz:
pm.max_children = 50
`pm.max_children` değeri, PHP-FPM’in aynı anda çalıştırabileceği maksimum işlem sayısını belirtir. Bu sayıyı arttırarak daha fazla bellek kullanımına izin verebilirsiniz.
3. PHP-FPM’i Yeniden Başlatın:
Konfigürasyon dosyasındaki değişikliklerin etkili olabilmesi için tekrar PHP-FPM’i yeniden başlatın:
sudo systemctl restart php7.x-fpm
3. PHP ve Web Sunucusu Loglarını Kontrol Edin
Eğer hala hatayı çözemediyse, PHP-FPM loglarına göz atın. Genellikle `/var/log/php7.x-fpm.log` veya `/var/log/nginx/error.log` gibi dosyalarda hatanın kaydını bulabilirsiniz.
Bu loglar, hatanın tam olarak hangi işlem sırasında meydana geldiğini anlamanıza yardımcı olabilir.
Sonuç
PHP-FPM memory limit hatası, sunucu yönetiminde karşılaşılan en yaygın sorunlardan biridir, ancak doğru yapılandırma ile kolayca çözülebilir. Yukarıdaki adımları takip ederek bu hatayı çözebilir ve web sitenizin performansını iyileştirebilirsiniz. Eğer hala sorun devam ediyorsa, sunucu donanımınızı veya PHP-FPM’in daha verimli çalışabilmesi için optimizasyonları gözden geçirebilirsiniz.
Hata çözümü, sorunu anlamak ve doğru yapılandırmakla başlar. PHP-FPM’i doğru bir şekilde yapılandırarak, uygulamanızın performansını arttırabilir ve kullanıcı deneyimini iyileştirebilirsiniz!