PHP-FPM Memory Limit Hatası Nedir?
```
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 12345 bytes) in /path/to/your/script.php
```
Bu hata, PHP'nin daha fazla bellek kullanmaya çalıştığını ancak sunucunun buna izin vermediğini gösterir. Peki, bu sorunu nasıl çözebilirsiniz?
1. PHP Bellek Limitini Artırma
# `php.ini` Dosyasını Düzenleyin
```bash
sudo nano /etc/php/7.x/fpm/php.ini
```
Dosya açıldığında, `memory_limit` parametresini arayın. Bu satır, PHP'nin kullanabileceği maksimum bellek miktarını belirler. Varsayılan olarak bu değer genellikle `128M` (megabayt) olarak ayarlanır. Bunu daha yüksek bir değere çıkarabilirsiniz. Örneğin:
```ini
memory_limit = 256M
```
Bu değeri `512M` ya da ihtiyaçlarınıza göre daha da artırabilirsiniz. Dosyayı kaydedip kapattıktan sonra PHP-FPM'i yeniden başlatın.
```bash
sudo systemctl restart php7.x-fpm
```
2. PHP-FPM Pool Ayarlarını Düzenleyin
Havuz yapılandırma dosyasına gitmek için şu adımları izleyin:
```bash
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
```
Bu dosyada `pm.max_children` ve `pm.max_requests` gibi değerler bulunur. Bu değerler, PHP-FPM'in ne kadar işlem açacağını ve ne kadar kaynak kullanacağını belirler. Bu parametreleri değiştirerek bellek kullanımını optimize edebilirsiniz.
```ini
pm.max_children = 50
pm.max_requests = 500
```
Yapılandırma dosyasını kaydedip çıkın ve ardından PHP-FPM servisini yeniden başlatın.
```bash
sudo systemctl restart php7.x-fpm
```
3. Sistem Bellek Limitini Kontrol Etme
```bash
free -h
```
Eğer sunucunuzda bellek yetersizse, ek bellek eklemek ya da gereksiz servisleri kapatmak faydalı olabilir.
4. Hata Günlüklerini Kontrol Edin
```bash
sudo tail -f /var/log/php7.x-fpm.log
```
Hata günlüklerinde herhangi bir belirgin sorun olup olmadığını kontrol edin. Eğer bir kod hatası, yanlış yapılandırma veya başka bir sorun varsa, burada detayları bulabilirsiniz.
5. Sunucu Kaynaklarını İzleyin
```bash
htop
```
Bu komut, çalışan işlemleri ve onların bellek kullanımını size gösterir. Eğer PHP-FPM işlemleri çok fazla bellek kullanıyorsa, kod optimizasyonu yapmayı düşünebilirsiniz.
Sonuç
Her zaman dikkat etmeniz gereken şey, sisteminizin kaynaklarını dengeli kullanmak ve aşırı yüklenmenin önüne geçmektir. Bu adımları takip ederek PHP-FPM bellek limit hatalarından kurtulabilir ve web sitenizin daha hızlı çalışmasını sağlayabilirsiniz.