Çözümler Web Tasarım Mobil Uygulama Dijital Reklam Animasyon Düğün Davetiyesi Blog Sunum ERP Demo İletişim Giriş Yap
← Blog'a Dön
Teknoloji 29 Sep 2026 · 5 dk okuma

Paylaşımlı Hostingde PHP Limit: Yükleme Neden Kesilir?

AB
Ahmet Bengü
BENGU — Yazılım & Dijital Çözümler

Kullanıcı bir Excel dosyası veya birkaç fotoğraf seçer, “Yükle”ye basar ve ekran bir süre döndükten sonra ya boş bir sayfa gelir ya da form hiçbir şey olmamış gibi geri döner. Uygulama tarafında “80 MB’a kadar yükleyebilirsiniz” yazıyor olabilir; ama sunucu 8 MB’ta kapıyı kapatıyorsa yükleme sessizce düşer. Paylaşımlı hostingde çalışan PHP uygulamalarında bu, en sık karşılaşılan ve en çok zaman kaybettiren sorunlardan biridir.

Bu yazıda yüklemenin hangi limitlere takıldığını, bu limitlerin birbirine nasıl bağlı olduğunu, paylaşımlı hostingde neleri değiştirebileceğinizi ve kullanıcıya anlamlı bir hata mesajı göstermenin yollarını adım adım anlatıyoruz.

Yükleme neden “sessizce” başarısız olur?

PHP, bir form gönderildiğinde gelen veriyi uygulama koduna vermeden önce kendi limitleriyle kontrol eder. Gelen istek bu limitleri aşarsa PHP veriyi okumaz; uygulamanız boş bir $_POST ve boş bir $_FILES ile karşılaşır. Kod “form gönderilmemiş” sanır ve sayfayı yeniden gösterir. Kullanıcı açısından sonuç: hiçbir uyarı yok, dosya yok.

Bu davranışın bir yan etkisi daha vardır: CSRF koruması kullanan uygulamalarda token da $_POST içinde geldiği için, limit aşıldığında token da kaybolur ve sistem “oturum süresi doldu” veya “geçersiz istek” hatası verir. Sorunun gerçek nedeni dosya boyutu olduğu hâlde kullanıcı güvenlik hatası görür.

Yüklemeyi etkileyen PHP limitleri

Tek bir ayar yoktur; birkaç limit zincir gibi çalışır ve en küçüğü belirleyicidir.

AyarNe sınırlar?Tipik paylaşımlı hosting değeri
upload_max_filesizeTek bir dosyanın en büyük boyutu2–64 MB
post_max_sizeFormun toplam boyutu (tüm dosyalar + alanlar)8–128 MB
max_file_uploadsTek istekte yüklenebilecek dosya sayısı20
memory_limitBetiğin kullanabileceği bellek128–512 MB
max_execution_timeBetiğin çalışma süresi30–300 sn
max_input_timeİstek verisinin okunma süresi60 sn

Değerler hosting firmasına ve pakete göre değişir; kendi sunucunuzdaki gerçek değeri görmek için aşağıdaki kontrol yöntemlerini kullanın.

Limitler arasındaki doğru sıralama

Ayarların birbirini desteklemesi gerekir. Genel kural şöyledir:

memory_limit > post_max_size > upload_max_filesize
  • post_max_size, upload_max_filesize’tan büyük olmalı. Kullanıcı aynı formda 5 fotoğraf yüklüyorsa toplam boyut tek dosya limitinin katlarına çıkar.
  • memory_limit daha da yüksek olmalı. Özellikle yüklenen görsel yeniden boyutlandırılıyor veya Excel dosyası okunuyorsa, dosya bellekte açıldığında disk boyutunun birkaç katı yer kaplayabilir.
  • Süre limitleri bağlantı hızına göre düşünülmeli. Sahadaki yavaş bir mobil bağlantıda 40 MB’lık dosya dakikalar sürebilir.

Sunucudaki gerçek değerleri nasıl görürsünüz?

Hosting panelinde yazan değer ile uygulamanın gördüğü değer her zaman aynı değildir; klasöre özel ayar dosyaları veya farklı PHP sürümleri devreye girebilir. En güvenilir yöntem, uygulamanın kendi içinden okumaktır:

  • Yönetici paneline küçük bir bilgi alanı: ini_get('upload_max_filesize') ve ini_get('post_max_size') değerlerini yalnızca yöneticinin göreceği bir sayfada göstermek.
  • Geçici phpinfo() sayfası: Kontrol için kullanılabilir, ancak sunucu hakkında çok bilgi verdiği için işiniz bitince mutlaka silinmelidir.
  • Hosting panelindeki PHP seçici: cPanel’de “Select PHP Version” veya “MultiPHP INI Editor” bölümleri genellikle mevcut değerleri gösterir.

Paylaşımlı hostingde limitler nasıl değiştirilir?

Paylaşımlı hostingde ana PHP yapılandırmasına erişiminiz yoktur, ancak çoğu firma bazı değerleri değiştirmenize izin verir. Hangi yöntemin çalıştığı sunucu yapısına bağlıdır:

  1. Panel üzerinden: cPanel’deki PHP seçici veya INI düzenleyici en güvenli yoldur; değişiklik doğru dosyaya yazılır.
  2. .user.ini dosyası: PHP-FPM veya LiteSpeed ile çalışan sunucularda site kök dizinine konan bu dosyadaki değerler okunur. Değişikliğin etkinleşmesi birkaç dakika sürebilir.
  3. .htaccess içinde php_value: Yalnızca PHP’nin Apache modülü olarak çalıştığı sunucularda geçerlidir; diğerlerinde 500 hatasına yol açabilir. Denemeden önce yedek alın.
  4. Destek talebi: Paket limitinin üstüne çıkmak gerekiyorsa hosting firmasından talep etmek gerekir.

upload_max_filesize ve post_max_size değerleri çalışma anında ini_set() ile değiştirilemez; çünkü istek verisi betik başlamadan önce okunur. Bu yüzden kod içinde ayarlamaya çalışmak işe yaramaz.

Sadece PHP değil: web sunucusu ve güvenlik katmanları

PHP limitlerini yükselttiğiniz hâlde yükleme hâlâ kesiliyorsa, istek PHP’ye ulaşmadan başka bir katmanda durdurulmuş olabilir:

  • Web sunucusu gövde limiti: Nginx’te client_max_body_size, LiteSpeed ve Apache’de benzer istek gövdesi limitleri vardır. Bu durumda genellikle “413 Request Entity Too Large” hatası görülür.
  • Güvenlik duvarı (ModSecurity/WAF): Büyük veya belirli içerikteki istekleri engelleyebilir; hata çoğu zaman 403 olarak döner.
  • CDN veya proxy: Önünüzde bir CDN varsa, onun da yükleme boyutu ve zaman aşımı limitleri vardır.

Kullanıcıya anlamlı hata göstermek

Limitleri ne kadar yükseltirseniz yükseltin, bir gün biri daha büyük bir dosya seçecektir. Önemli olan sessiz başarısızlığı önlemektir:

  • Tarayıcı tarafında ön kontrol: Dosya seçildiği anda boyutu JavaScript ile kontrol edip “Bu dosya 25 MB, en fazla 16 MB yükleyebilirsiniz” demek, kullanıcıyı beklemekten kurtarır.
  • Boş POST tespiti: İstek POST olduğu hâlde $_POST ve $_FILES boşsa ve CONTENT_LENGTH doluysa, bu neredeyse kesin olarak post_max_size aşımıdır. Bu durumda CSRF hatası yerine “Dosya çok büyük” mesajı gösterilmelidir.
  • $_FILES['...']['error'] kodunu okumak: UPLOAD_ERR_INI_SIZE, UPLOAD_ERR_PARTIAL gibi kodlar sorunun nedenini açıkça söyler; bunları kullanıcı diline çevirmek gerekir.
  • Limiti ekranda yazmak: Yükleme alanının altında sunucunun gerçek limitini göstermek, kullanıcı beklentisini baştan doğru kurar.

Büyük dosyalar için alternatif yaklaşımlar

Bazı işler için limit yükseltmek doğru çözüm değildir:

  • Görselleri istemcide küçültmek: Telefondan çekilen 12 MB’lık fotoğraf, tarayıcıda yeniden boyutlandırılarak birkaç yüz KB’a indirilebilir. Hem yükleme hızlanır hem de disk dolmaz.
  • Parçalı yükleme: Dosyayı küçük parçalar hâlinde gönderip sunucuda birleştirmek, limitlere takılmadan büyük dosya taşımanın yoludur.
  • Excel yerine CSV: Büyük veri aktarımlarında CSV hem daha küçüktür hem de satır satır okunabildiği için bellek kullanımı düşer.
  • Arka planda işleme: Yüklenen dosyayı hemen kaydedip ağır işlemi (dönüştürme, okuma) zamanlanmış bir görevle yapmak süre limitine takılmayı önler.

Kontrol listesi

  1. Uygulamanın vaat ettiği boyut ile sunucunun gerçek upload_max_filesize değeri aynı mı?
  2. post_max_size, aynı formda yüklenebilecek toplam boyuttan büyük mü?
  3. memory_limit, dosya işleme sırasında yetecek kadar yüksek mi?
  4. Yavaş bağlantılar için süre limitleri yeterli mi?
  5. Web sunucusu, WAF veya CDN tarafında ayrı bir limit var mı?
  6. Limit aşıldığında kullanıcı anlaşılır bir mesaj görüyor mu?

Sonuç

Paylaşımlı hostingde yükleme sorunlarının büyük kısmı, uygulamanın vaat ettiği değer ile sunucunun izin verdiği değerin eşleşmemesinden kaynaklanır. Limitleri doğru sırayla ayarlamak, gerçek değerleri uygulamanın içinden kontrol etmek ve limit aşıldığında kullanıcıya açık bir mesaj göstermek, hem destek taleplerini azaltır hem de sahada çalışan ekiplerin güvenini korur.

BENGU, Sakarya merkezli ERP, web tasarım ve dijital çözüm ortağıdır. Sahanıza uygun bir kurgu konuşmak isterseniz iletişim formundan yazabilirsiniz.

Projeniz mi var? Ücretsiz danışın.

Web tasarım, ERP, mobil uygulama veya dijital reklam — size en uygun çözümü birlikte bulalım.

İletişime Geç

İlgili Makaleler

Teknoloji

Endüstriyel IoT ve Uç Bilişim: Sensörden ERP'ye Kesintisiz Veri Mimarisi

03 Oct 2026
Teknoloji

ERP Girişi: 403 ve Rol Karışıklığı

28 Sep 2026
Teknoloji

ERP Yedeği: Haftalık Alıp Hiç Açmamak

11 Sep 2026