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 exhaustedBu ö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’ninmemory_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:| Ayar | Görevi |
|---|---|
memory_limit | PHP işleminin etkin bellek sınırını belirler. |
WP_MEMORY_LIMIT | WordPress’in başlangıçta kullanmak istediği bellek değerini tanımlar. |
WP_MAX_MEMORY_LIMIT | Yö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ı?
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 dosyawp-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' );
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çipmemory_limit değerini düzenleyin ve kaydedin.Örneğin:
memory_limit = 256MBirden 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 etkinphp.ini dosyasında şu ayarı düzenleyebilirsiniz:memory_limit = 256MAncak 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 = 256MBu 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 256MPHP’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
256Molabilir. - 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.
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ım | Değerlendirilebilecek başlangıç aralığı |
|---|---|
| Hafif blog veya tanıtım sitesi | 128–256 MB |
| Birkaç kapsamlı eklenti kullanan site | 256 MB |
| WooCommerce veya sayfa oluşturucu kullanılan site | 256–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:- Site Sağlığı ekranındaki bellek değerlerini kontrol edin.
- Hata veren işlemi tekrar çalıştırın.
- Yeni hata kayıtlarını inceleyin.
- Hosting panelindeki RAM ve kaynak kullanımını karşılaştırın.
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çinupload_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.
