PHP "Fatal error: Allowed memory size exhausted" Hatası ve Çözümü: Adım Adım Rehber

PHP'deki "Fatal error: Allowed memory size exhausted" hatasının ne olduğunu ve nasıl çözüleceğini anlatan bir rehber. Bellek limitini artırma ve optimize etme yöntemleri hakkında detaylı bilgi.

BFS

PHP geliştiricileri, projelerinde sık sık karşılaştıkları hatalardan birisi de "Fatal error: Allowed memory size exhausted" hatasıdır. Bu hata, kodunuz çalışırken bellek sınırının aşıldığını ve PHP'nin daha fazla veri işleyemediğini belirten bir mesajdır. Peki, bu hatayı nasıl çözebilirsiniz? İşte size bu hatayı anlamanıza ve çözmenize yardımcı olacak adım adım bir rehber.

Hata ile Tanışma



Bir sabah, web sitenizle ilgili birkaç düzenleme yaparken, "Fatal error: Allowed memory size of xxx bytes exhausted" hatasıyla karşılaştınız. Hemen panik yapmayın! Bu mesaj, PHP'nin çalışırken kullandığı bellek miktarının, belirlediğiniz limitten fazla olduğunu gösteriyor. Yani PHP, bilgisayarınızın RAM'ini aşan bir işlem yapmaya çalışıyor.

Bu hata genellikle büyük veri işleme işlemleri, karmaşık döngüler veya büyük dosya yüklemeleri sırasında meydana gelir. Ayrıca, eklentiler veya temalar da fazla bellek tüketebilir. Ancak, bu sorunla karşılaştığınızda telaş yapmanıza gerek yok; çünkü birkaç basit adımla çözebilirsiniz.

1. PHP Bellek Limitini Artırmak



PHP'nin bellek kullanım sınırını artırarak hatayı çözebilirsiniz. Bunu yapmak için aşağıdaki adımları takip edebilirsiniz:

php.ini dosyasını bulun ve açın. Bu dosya, PHP'nin yapılandırma ayarlarını içerir. Eğer hosting sağlayıcınızın yönetim paneline erişiminiz varsa, genellikle "PHP ayarları" bölümünde bu dosyayı bulabilirsiniz.

Dosyanın içinde, "memory_limit" satırını bulun. Bu satır şu şekilde görünebilir:

memory_limit = 128M


Eğer bellek sınırını artırmak istiyorsanız, bu değeri istediğiniz kadar artırabilirsiniz. Örneğin, 256MB'lık bir limit için şu şekilde düzenleyebilirsiniz:

memory_limit = 256M


Dosyayı kaydedin ve değişikliklerin etkili olabilmesi için PHP'yi yeniden başlatın. Eğer hosting sağlayıcınızda bu ayarı değiştiremiyorsanız, ilerleyen adımlarda başka yöntemleri keşfedeceğiz.

2. .htaccess Dosyasını Kullanarak Bellek Limitini Artırma



Bazı durumlarda, php.ini dosyasına erişim sağlayamayabilirsiniz. Böyle bir durumda, .htaccess dosyasını kullanarak bellek limitini artırabilirsiniz. .htaccess dosyasını web sitenizin kök dizininde bulabilirsiniz. Eğer bu dosya yoksa, bir metin dosyası oluşturup adını ".htaccess" olarak kaydedebilirsiniz.

Aşağıdaki satırı .htaccess dosyasına ekleyin:

php_value memory_limit 256M


Bu işlem, PHP'nin bellek limitini 256MB olarak ayarlayacaktır. Dosyayı kaydedin ve web sitenizi tekrar kontrol edin. Bu adım da PHP'yi yeniden başlatmayı gerektirmez.

3. PHP Dosyalarınızda Bellek Tüketimini Azaltma



Eğer bellek limitini artırmak işe yaramıyorsa, kodunuzun bellek kullanımını optimize etmeniz gerekebilir. İşte bellek tüketimini azaltmak için bazı ipuçları:


  • Veritabanı sorgularını optimize edin: Gereksiz verileri sorgulamaktan kaçının. İhtiyacınız olmayan alanları sorgulara dahil etmeyin.

  • PHP'deki döngüleri optimize edin: Döngülerde gereksiz işlemler yapmamaya özen gösterin. Mümkünse döngüleri sınırlayın.

  • Dosya yüklemelerini optimize edin: Yüklediğiniz dosyaların boyutlarını küçültün. Büyük dosyalar bellek kullanımını artırabilir.



Not: Eğer bir üçüncü taraf eklentisi veya tema kullanıyorsanız, bu yazılımın da bellek kullanımını artırmış olabileceğini unutmayın. Eklentileri devre dışı bırakıp tek tek yeniden etkinleştirerek hangisinin soruna neden olduğunu belirleyebilirsiniz.

4. WordPress ve Diğer CMS Sistemlerinde Bellek Artırma



WordPress gibi popüler içerik yönetim sistemleri (CMS) kullanıyorsanız, bellek limitini artırmak için wp-config.php dosyasını düzenleyebilirsiniz. Aşağıdaki satırı bu dosyaya ekleyin:

define('WP_MEMORY_LIMIT', '256M');


Bu işlem de WordPress'in PHP bellek limitini artıracaktır.

5. Sunucu Kaynaklarını Artırma



Eğer yukarıdaki adımlar sorununuzu çözmezse, bellek limitini artırmak için sunucu kaynaklarını artırmayı düşünebilirsiniz. Sunucu kaynaklarınız sınırlıysa, barındırma sağlayıcınızla iletişime geçerek daha yüksek bellek kapasitesine sahip bir plan seçebilirsiniz.

Not: Bu çözüm daha maliyetli olabilir, ancak yoğun trafik alan web siteleri için gerekli olabilir.

Sonuç: PHP Bellek Hatasını Çözme



PHP'de karşılaştığınız "Fatal error: Allowed memory size exhausted" hatası, bellek sınırını aşan bir işlem yaptığınızda ortaya çıkar. Bu sorunu çözmek için php.ini, .htaccess dosyası ya da WordPress gibi CMS ayarlarını kullanarak bellek limitini artırabilirsiniz. Ayrıca, kodunuzu optimize ederek bellek tüketimini azaltabilirsiniz.

Bu yazıda öğrendiklerinizi uygulayarak, PHP projelerinizde karşılaştığınız bellek hatalarını kolayca çözebilirsiniz. Unutmayın, küçük ayarlamalarla büyük farklar yaratabilirsiniz!

İlgili Yazılar

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

ASP.NET Core ile Mobil Uygulama Geliştirme: Cross-Platform Web ve Mobil Uygulama Birleştirme

Günümüzde mobil uygulamalar hayatımızın ayrılmaz bir parçası haline geldi. Akıllı telefonlarımızda geçirdiğimiz zamanın büyük bir kısmını mobil uygulamalar sayesinde geçiriyoruz. Peki, bir mobil uygulama geliştirirken karşılaştığımız zorlukları nasıl...

ASP.NET Core 500 Internal Server Error: Sebepleri ve Çözümleri

Bir web geliştiricisi olarak, karşılaştığınız en zorlayıcı hatalardan biri şüphesiz "500 Internal Server Error"dır. Bu hata, web uygulamanızda her şeyin yolunda gittiğini düşündüğünüz bir anda karşınıza çıkabilir ve tüm projeyi durdurabilir. Ancak merak...

OAuth2 Authentication Error: Nedenleri ve Çözümleri

OAuth2 Authentication Error: Gerçekten Neyin Peşindeyiz?Her geliştirici, kimlik doğrulama hatalarıyla bir noktada karşılaşmıştır. Ama bazen işler kontrolden çıkabiliyor. Eğer bir gün OAuth2 ile çalışırken bir kimlik doğrulama hatası aldığınızda, yalnız...