WordPress Bellek Limiti Nasıl Artırılır? Memory Limit Hatası ve Çözüm Yöntemleri

  • Konuyu Başlatan Konuyu Başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi

Admin

Webmaster
Admin
Kurumsal+
Puan 18
Çözümler 0
Katılım
3 Kas 2025
Mesajlar
99
Tepkime puanı
0

WordPress Bellek Limiti Nasıl Artırılır? Memory Limit Hatası ve Çözüm Yöntemleri​

WordPress’te sayfa düzenlerken, yedek alırken veya ürünleri içe aktarırken işlemin yarıda kesilmesi bazen bellek sınırından kaynaklanır. Hata kayıtlarında şu ifadeyi görüyorsanız, çalışan PHP işlemi kendisine tanınan bellek limitine ulaşmış demektir:
Fatal error: Allowed memory size of 134217728 bytes exhausted
Bu örnekte sınır yaklaşık 128 MB’tır. Ancak hata, hosting hesabınızda toplam 128 MB RAM bulunduğu anlamına gelmez. Buradaki değer, ilgili PHP işleminin kullanabileceği bellek miktarını gösterir.
Çözüm için önce hangi sınırın devreye girdiğini belirlemek gerekir. WordPress ayarları, PHP yapılandırması ve hosting hesabının kaynak limitleri birbiriyle ilişkili olsa da aynı şeyi ifade etmez.

WordPress ve PHP Bellek Ayarları Nasıl Çalışır?​

PHP’nin memory_limit ayarı, bir betiğin ayırabileceği belleği sınırlar. WordPress ise belirli işlemler için bu değeri yükseltmeyi denemek amacıyla iki sabit kullanır:
AyarGörevi
memory_limitPHP işleminin etkin bellek sınırını belirler.
WP_MEMORY_LIMITWordPress’in başlangıçta kullanmak istediği bellek değerini tanımlar.
WP_MAX_MEMORY_LIMITYönetim, görsel işleme ve bazı arka plan işlemlerinde daha yüksek bellek talep edilmesini sağlar.

Burada sık yapılan bir yorum hatası var: PHP’de başlangıçta 128M yazması, WordPress’in bunu hiçbir koşulda yükseltemeyeceği anlamına gelmez.
Sunucu çalışma sırasında ayar değiştirmeye izin veriyorsa WordPress, ini_set() aracılığıyla değeri artırabilir. Yönetici tarafından kilitlenmiş bir ayar varsa bu girişim sonuç vermeyebilir.
Ayrıca WP_MEMORY_LIMIT değerini mevcut PHP limitinden düşük yazmanız, WordPress’in daha yüksek olan etkin limiti otomatik olarak düşüreceği anlamına gelmez. Çekirdeğin başlangıç işlemi, gerektiğinde limiti yükseltmeye çalışır.

WP_MEMORY_LIMIT ve WP_MAX_MEMORY_LIMIT Arasındaki Fark​

WP_MEMORY_LIMIT, WordPress’in genel başlangıç bellek ayarıdır. WP_MAX_MEMORY_LIMIT ise daha fazla bellek gerektiren işlemler için kullanılır.
Örneğin normal sayfalar sorunsuz açılırken büyük bir görseli yüklemek veya yönetim panelinde kapsamlı bir işlem yapmak hata verebilir. Bu durumda yüksek bellek gerektiren işlemde kullanılan sınırı incelemek gerekir. WordPress’in bellek yükseltme mekanizması yönetim, görsel işleme ve cron gibi farklı bağlamları destekler.
Varsayılanlar da her kurulumda aynı etkin sonucu üretmez. Ayar değiştirilebilen ortamlarda WordPress’in başlangıç sabiti tek site için 40M, Multisite için 64M olabilir. Yüksek bellek sabitinin temel varsayılanı 256M olsa da mevcut PHP ayarı ve önceden tanımlanan sabitler sonucu etkiler. Bu nedenle kendi sitenizdeki değerleri kontrol etmek, yalnızca varsayılanlara bakmaktan daha yararlıdır.

1. Önce Hatayı ve Mevcut Değeri Kontrol Edin​

Değişiklik yapmadan önce hosting panelinin hata kayıtlarını inceleyin. Sorunun gerçekten bellek tükenmesi olduğundan emin olun.
Şu bilgiler teşhisi kolaylaştırır:
  • Hata hangi işlem sırasında oluşuyor?
  • Mesajda belirtilen bellek sınırı kaç?
  • Sorun sürekli mi, yalnızca büyük işlemlerde mi görülüyor?
  • Yakın zamanda tema veya eklenti değişikliği yapıldı mı?
WordPress paneline erişebiliyorsanız Araçlar → Site Sağlığı → Bilgi → Sunucu bölümüne bakın. PHP bellek sınırını burada görebilirsiniz. Bazı kurulumlarda yönetim ekranları için kullanılan daha yüksek değer ayrıca gösterilir.
Düzenleyeceğiniz yapılandırma dosyasının bir kopyasını da alın. Böylece bir yazım hatası oluşursa önceki sürüme dönebilirsiniz.

2. wp-config.php Üzerinden Bellek Limitini Artırma​

WordPress ayarlarını değiştirmek için kullanılan dosya wp-config.php’dir. Genellikle WordPress’in kurulu olduğu dizinde bulunur.
Hosting panelinin Dosya Yöneticisi veya SFTP bağlantısı üzerinden dosyayı açın. Aşağıdaki tanımlar zaten varsa mevcut değerleri düzenleyin; aynı sabiti ikinci kez eklemeyin.
Örnek yapılandırma:
Kod:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
Bu değerler örnektir. Her siteye doğrudan 512 MB vermek gerekmez.
Tanımları, dosyada genellikle şu yorumun bulunduğu bölümden önce ekleyebilirsiniz:
/* That's all, stop editing! Happy publishing. */
Asıl önemli nokta, ayarların WordPress’i yükleyen şu satırdan önce tanımlanmasıdır:
require_once ABSPATH . 'wp-settings.php';
Yorum satırı çalıştırılan bir komut değildir; yapılandırma ile yükleme bölümünü ayıran bir işarettir.
Belleği megabayt olarak belirtmek için 256M biçimini kullanın. Birimsiz değerler bayt olarak yorumlanabildiğinden, 256 ile 256M aynı anlama gelmez. PHP bellek ayarlarında kısaltılmış birim gösterimini destekler.
Dosyayı kaydettikten sonra hata veren işlemi yeniden deneyin. Limit değişmiyorsa hosting tarafındaki PHP ayarlarına geçin.

3. Hosting Panelinden memory_limit Değerini Değiştirme​

Paylaşımlı hosting kullanıyorsanız, sağlayıcının sunduğu PHP ayar ekranı genellikle en pratik seçenektir.

cPanel’de​

MultiPHP INI Editor bölümünü açın. Ardından ilgili alan adını seçip memory_limit değerini düzenleyin ve kaydedin.
Örneğin:
memory_limit = 256M
Birden fazla siteniz varsa doğru alan adını seçtiğinizden emin olun. Hesabın tamamını kapsayan ayarla tek bir domain için yapılan ayarın kapsamı farklıdır. Bu arayüzün kullanılabilirliği hosting sağlayıcısına bağlıdır.
Bazı sunucularda Select PHP Version / PHP Selector üzerinden seçenekler sunulur. Hangi ekranın etkili olduğu, domainin kullandığı PHP yapılandırmasına bağlı olabilir.

Plesk ve Diğer Panellerde​

İlgili domainin PHP ayarlarını açın ve bellek sınırını düzenleyin. Menü adı sağlayıcıya ve panel kurulumuna göre değişebilir.
Seçenek görünmüyorsa veya kaydettiğiniz değer uygulanmıyorsa, destek ekibinden ilgili domainin etkin PHP ayarlarını kontrol etmesini isteyin.

4. php.ini veya .user.ini Kullanma​

Sunucu yapılandırmasına erişiminiz varsa etkin php.ini dosyasında şu ayarı düzenleyebilirsiniz:
memory_limit = 256M
Ancak sitenin klasörüne rastgele bir php.ini dosyası eklemek, PHP’nin onu okuyacağı anlamına gelmez. Kullanılan dosya ve ayarın kapsamı, sunucunun çalışma biçimine bağlıdır. Sunucu seviyesindeki değişikliklerde ilgili PHP servisinin yeniden yüklenmesi de gerekebilir.
CGI/FastCGI ortamlarında, PHP-FPM dahil uygun yapılandırmalarda, dizin bazında .user.ini kullanılabilir:
memory_limit = 256M
Bu dosya her ortamda işlenmez. Ayrıca değişiklik hemen görünmeyebilir: PHP’nin kullanıcı INI dosyalarını yeniden okuma aralığı varsayılan olarak 300 saniyedir. Sağlayıcı bu davranışı değiştirmiş veya kapatmış olabilir.
Aynı ayarı farklı dosyalarda sürekli değiştirmek yerine, sunucunuzun desteklediği yöntemi belirlemek daha kolay takip edilir bir yapı sağlar.

5. .htaccess Yöntemi Hangi Durumlarda Kullanılır?​

Bazı sunucu yapılandırmalarında .htaccess üzerinden şu ayar kullanılabilir:
php_value memory_limit 256M
PHP’nin Apache modülü olarak çalıştığı uygun ortamlarda bu yöntem desteklenir. Ancak sunucunun Apache kullanması tek başına yeterli değildir; PHP’nin nasıl çalıştırıldığı ve sunucunun izinleri de önemlidir.
PHP-FPM kullanılan bir ortamda bu satır geçersiz olabilir ve 500 Internal Server Error oluşturabilir. Böyle bir durumda eklediğiniz satırı kaldırın ve panelin desteklediği yönteme dönün.
LiteSpeed veya LSAPI kullanılan ortamlarda destek farklılaşabilir. Sağlayıcının oluşturduğu PHP ayar bloklarını kontrolsüz biçimde değiştirmemek gerekir. Nginx ise .htaccess dosyasını okumaz.

Hosting Hesabının RAM Sınırı Ayrı Bir Konudur​

PHP bellek limiti ile hosting paketinin toplam RAM sınırını birbirine karıştırmamak gerekir.
Örneğin:
  • Bir PHP isteğinin bellek limiti 256M olabilir.
  • Hosting hesabının toplam fiziksel bellek sınırı 1 GB olabilir.
  • Aynı anda çalışan birden fazla işlem bu ortak kaynağı tüketebilir.
CloudLinux kullanılan ortamlarda PMEM sınırı, ilgili LVE içindeki süreçlerin toplam fiziksel bellek kullanımını sınırlar. Sınır aşıldığında süreçler sonlandırılabilir ve ziyaretçilere 500 veya 503 hataları yansıyabilir. Bu mekanizma, PHP’nin memory_limit kontrolünden farklıdır.
Bu yüzden panelde 512M görmeniz, hesabın bütün işlemleri rahatça çalıştırabileceği anlamına gelmez. Aynı şekilde limitin değişmemesi de tek başına CloudLinux sorunu olduğunu göstermez.
PHP 8.5 ve üzerindeki ortamlarda ayrıca max_memory_limit ayarı bulunabilir. Sunucu yöneticisi bu değerle memory_limit için bir üst sınır belirleyebilir.

Ne Kadar Bellek Vermek Gerekir?​

Tek bir doğru değer yoktur. Gereksinim, kullanılan yazılım ve yapılan işlemle belirlenir.
KullanımDeğerlendirilebilecek başlangıç aralığı
Hafif blog veya tanıtım sitesi128–256 MB
Birkaç kapsamlı eklenti kullanan site256 MB
WooCommerce veya sayfa oluşturucu kullanılan site256–512 MB
Büyük içe aktarma, yedekleme veya görsel işlemeİşlemin ölçülen ihtiyacına göre

Bu aralıklar garanti veya zorunlu sistem gereksinimi değildir. Kullandığınız eklentinin belgeleri ve gerçek tüketim belirleyici olmalıdır.
Bellek limitini yükseltmek, o miktarın her isteğe peşinen ayrılması anlamına gelmez. İşlemin ulaşabileceği sınırı artırır. Bununla birlikte, eş zamanlı çalışan işlemlerin daha fazla bellek tüketmesine izin vermek toplam kaynak baskısını yükseltebilir.

Limit Yükseldiği Hâlde Hata Devam Ediyorsa​

Önce hata mesajındaki sınırın değişip değişmediğine bakın.
Hâlâ eski değer görünüyorsa: Yanlış domain ayarı değiştirilmiş, dosya okunmamış veya sunucu ayarı kilitlenmiş olabilir.
Yeni değer görünüyor ama işlem yine tükeniyorsa: Bellek ihtiyacı daha yüksek olabilir. Büyük bir dosyayı tek seferde işleyen içe aktarma aracı, kapsamlı rapor veya eklenti sorunu araştırılmalıdır.
PHP bellek hatası olmadan 503 oluşuyorsa: Hosting hesabının toplam kaynak kullanımı ve sunucu kayıtları incelenmelidir.
Kalıcı çözüm için test ortamında eklentileri kontrol etmek, büyük işlemleri küçük parçalara bölmek ve gereksiz eş zamanlı işleri azaltmak yararlı olabilir. Hata kaydında bir eklentinin dosyasının görünmesi ise tek başına o eklentinin bütün tüketimden sorumlu olduğunu kanıtlamaz.

Değişikliği Nasıl Doğrularsınız?​

Ayarı kaydettikten sonra:
  1. Site Sağlığı ekranındaki bellek değerlerini kontrol edin.
  2. Hata veren işlemi tekrar çalıştırın.
  3. Yeni hata kayıtlarını inceleyin.
  4. Hosting panelindeki RAM ve kaynak kullanımını karşılaştırın.
Komut satırında çalışan PHP ile web sitesini çalıştıran PHP farklı yapılandırmalar kullanabilir. SSH üzerinden gördüğünüz değer, tarayıcıdaki isteğin değerini tek başına doğrulamaz.
Gerekirse erişimi kısıtlanmış geçici bir phpinfo() sayfası kullanılabilir. Kontrol tamamlandıktan sonra dosyayı kaldırın; bu çıktı ayrıntılı sunucu bilgileri içerir.

Sıkça Sorulan Sorular​

Bellek limitini artırmak siteyi hızlandırır mı?​

Bellek yetersizliği yüzünden başarısız olan işlemleri düzeltebilir. Ancak yeterli belleği bulunan bir sitede limiti artırmak tek başına hız kazandırmaz.

memory_limit artırılınca dosya yükleme sınırı da artar mı?​

Doğrudan artmaz. Dosya yükleme boyutu için upload_max_filesize ve post_max_size gibi ayrı ayarlar bulunur. Bellek ihtiyacı, yüklenen dosyanın işlenmesi sırasında ayrıca ortaya çıkabilir.

Sınırsız bellek için -1 kullanılabilir mi?​

PHP, memory_limit = -1 ile kendi bellek kontrolünün kaldırılmasını destekler. Ancak hosting veya işletim sistemi sınırları devam eder. Canlı bir web sitesinde ölçülü bir sınır kullanmak daha uygundur.

Önbellek bellek hatasını çözer mi?​

Sayfa önbelleği, önbellekten sunulabilen isteklerde PHP çalıştırma ihtiyacını azaltabilir. Yönetim panelindeki içe aktarma veya görsel işleme gibi bir işlemin bellek ihtiyacını ise otomatik olarak ortadan kaldırmaz.

Sürekli bellek hatası alıyorsam hosting değiştirmeli miyim?​

Önce etkin ayarı ve tüketimin nedenini belirleyin. Sorun yazılımın çalışma biçiminden kaynaklanıyorsa daha büyük paket aynı hatayı yalnızca geciktirebilir. Gerçek ihtiyaç mevcut kaynakları aşıyorsa paket yükseltmek veya daha fazla kaynak sunan bir ortama geçmek değerlendirilir.
 

Benzer Konular

3 konu
Geri
Üst