PHP-FPM Memory Limit Hatası ve Çözümü: Linux'ta Nasıl Kurtulursunuz?

PHP-FPM Memory Limit Hatası ve Çözümü: Linux'ta Nasıl Kurtulursunuz?

PHP-FPM bellek limit hatasının nedenlerini ve çözüm yöntemlerini adım adım anlattım. Linux üzerinde PHP-FPM yapılandırmasını nasıl düzeltebileceğinizi öğrenebilirsiniz.

BFS

PHP-FPM (FastCGI Process Manager), web sunucusu üzerinde PHP ile çalışan sitelerin daha hızlı ve verimli çalışmasını sağlar. Ancak, bazı durumlarda, PHP-FPM bir *memory limit* hatası ile karşılaşabilir. Bu hata, web sitenizin yavaşlamasına ya da tamamen çökmesine neden olabilir. Ama korkmayın! Bu yazıda, PHP-FPM Memory Limit hatasını nasıl çözebileceğinizi adım adım anlatacağım.

PHP-FPM Memory Limit Hatası Nedir?

Düşünün ki bir sunucuda birçok PHP işlemi aynı anda çalışıyor ve her biri, belirli bir bellek miktarını kullanıyor. İşte bu bellek, PHP-FPM'in her işlemine ayrılan limit ile kontrol edilir. Eğer bir işlem, kendisine ayrılan bellek sınırını aşarsa, PHP-FPM bu işlemi sonlandırır ve genellikle şu hatayı verir:

```
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

İlk olarak, PHP'nin bellek limitini artırmayı deneyebilirsiniz. Bunun için, PHP'nin yapılandırma dosyasını değiştirmeniz gerekecek.

# `php.ini` Dosyasını Düzenleyin

PHP'nin yapılandırma dosyası genellikle `/etc/php/7.x/fpm/php.ini` veya `/etc/php/7.x/cli/php.ini` gibi bir konumda bulunur. Bu dosyayı açmak için terminali kullanın.

```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

Bir diğer önemli adım ise PHP-FPM pool yapılandırma dosyasını düzenlemektir. PHP-FPM, her bir PHP işlemi için havuzlar oluşturur. Bu havuzlar, her bir işlem için bellek ve kaynak kullanımı sınırları belirler.

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

Eğer hala sorun yaşıyorsanız, sunucunuzun genel bellek durumunu kontrol etmek önemlidir. Sunucu belleği yetersizse, PHP-FPM bellek limitini arttırmanız sadece geçici bir çözüm olabilir. Bunun için, `free` komutunu kullanarak sunucunuzun bellek durumunu kontrol edebilirsiniz.

```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

PHP-FPM bellek hatası, bazen bir yazılım hatasından da kaynaklanabilir. Hata günlüklerini kontrol etmek, problemi daha derinlemesine incelemenizi sağlar. PHP-FPM hata günlüklerini şu şekilde bulabilirsiniz:

```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

PHP-FPM'in bellek tüketimi yüksekse, sunucunuzun kaynaklarını izlemek, hangi işlemin ne kadar bellek kullandığını görmek de faydalı olabilir. Bu işlemi `top` veya `htop` komutlarıyla yapabilirsiniz:

```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ç

PHP-FPM memory limit hataları, genellikle bellek sınırlarının artırılmasıyla çözülse de, sunucu kaynaklarını yönetmek ve optimize etmek de önemlidir. PHP yapılandırma dosyalarını ve PHP-FPM havuz ayarlarını dikkatlice inceleyerek, performansınızı artırabilir ve sistemin daha verimli çalışmasını sağlayabilirsiniz.

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.

İlgili Yazılar

Benzer konularda diğer yazılarımız

DirectAdmin Nasıl Kurulur ve Yapılandırılır?

DirectAdmin Nedir ve Neden Kullanılır?Merhaba arkadaşlar! Bugün, birçok web yöneticisinin en çok tercih ettiği kontrol paneli olan DirectAdmin’i nasıl kuracağımızı ve yapılandıracağımızı keşfedeceğiz. İlk başta, DirectAdmin nedir, biraz ondan bahsedelim.DirectAdmin,...

Cronjob 'Not Running' Hatası ve Çözümü: Sorunları Çözmenin Adımları

Bir sabah işinize başlamadan önce, otomatik olarak çalışması gereken bir cronjob’ın neden çalışmadığını düşündünüz mü? Ne yazık ki, bu tür sorunlarla karşılaşmak oldukça yaygın, ancak çözümü de bir o kadar basit olabilir. Eğer siz de cronjob 'Not Running'...

Linux'ta Nagios ile İzleme: Sistem Performansınızı Nasıl Mükemmel Hale Getirirsiniz?

Merhaba Sistem Tutkunları! Sistemlerinizin nabzını tutmak, performansını artırmak ve sorunları daha ortaya çıkmadan yakalamak, günümüz dijital dünyasında olmazsa olmaz. Peki, bu zorlu görevde yanınızda kim var? Tabii ki Nagios! Linux ortamında güçlü,...