PHP-FPM ve mod_php Arasındaki Farklar Nelerdir? Hangi Process Manager Kullanılmalı?
Web Geliştirme

PHP-FPM ve mod_php Arasındaki Farklar Nelerdir? Hangi Process Manager Kullanılmalı?

PHP-FPM nedir, mod_php'den farkı ne? Pool ayarları, bellek kullanımı ve hangi process manager'ın hangi senaryoda uygun olduğunu öğrenin.

Cenk ŞEKERCİ

Cenk ŞEKERCİ

Operasyon Yöneticisi

19 Ekim 2026
4 dk okuma

Aynı PHP kodu bir sunucuda saniyeler içinde yanıt verirken, başka bir yapılandırmada trafik arttığında belleği tüketip siteyi yavaşlatabilir. Aradaki farkın büyük kısmı PHP'nin web sunucusuna nasıl bağlandığıyla ilgilidir. Bu rehberde PHP-FPM'in ne olduğunu, mod_php ile farklarını ve hangi process manager ayarının hangi senaryoda mantıklı olduğunu bulacaksınız.

Php fpm nedir

PHP-FPM (FastCGI Process Manager), PHP isteklerini web sunucusundan ayrı çalışan bir işlem havuzu üzerinden yürüten FastCGI uygulamasıdır. Web sunucusu statik dosyaları kendisi sunar, PHP isteklerini ise bir soket ya da TCP bağlantısıyla PHP-FPM'e iletir.

PHP'nin kendi dağıtımına dahil olan bu yapı, her site veya uygulama için ayrı "pool" tanımlamanıza izin verir. Her pool kendi kullanıcısı, kendi işlem sayısı ve kendi limitleriyle çalışabilir. Paylaşımlı ortamlarda izolasyon, tek sunucuda birden fazla proje barındırırken ise kaynak kontrolü sağlar.

PHP-FPM ve mod_php farkı

mod_php, PHP yorumlayıcısını doğrudan Apache işlemlerinin içine gömer. Bu yaklaşım basittir ama her Apache işlemi, statik bir görsel isteği için bile PHP'yi belleğinde taşır. PHP-FPM'de ise PHP işlemleri ayrıdır ve yalnızca gerektiğinde devreye girer.

Özellikmod_phpPHP-FPM
Çalışma modeliApache işleminin içindeAyrı işlem havuzu
Bellek kullanımıStatik isteklerde de PHP yüklüYalnızca PHP istekleri için
Kullanıcı izolasyonuZayıf (genelde web sunucusu kullanıcısı)Pool başına ayrı kullanıcı
Web sunucusu desteğiYalnızca ApacheNginx, Apache, diğerleri
Ayar esnekliğiSınırlıPool bazında ayrıntılı
Kurulum kolaylığıÇok basitBiraz daha fazla yapılandırma

Bilgi: mod_php, Apache'nin prefork modeliyle çalışır. Yoğun trafikte bu model bellek tüketimini hızla artırır. Modern kurulumlarda PHP-FPM tercih edilmesinin ana nedeni budur.

Nginx + PHP-FPM bağlantısı

Nginx, PHP'yi kendi içinde çalıştıramaz; bu yüzden PHP-FPM ile birlikte kullanılır. Nginx, fastcgi_pass yönergesiyle isteği PHP-FPM'e iletir. Aynı makinede çalışan servisler için Unix soketi genellikle biraz daha az yük getirir. Ayrı sunucular arasında ise TCP bağlantısı gerekir.

PHP-FPM vs FastCGI

Bu iki ifade karşılaştırılırken sıkça karıştırılır. FastCGI bir protokoldür; PHP-FPM ise bu protokolü konuşan, işlem yönetimi sunan bir uygulamadır. Yani PHP-FPM, FastCGI'nin PHP için gelişmiş bir uygulamasıdır. Eski, yönetimi zayıf FastCGI kurulumlarına göre dinamik işlem ölçekleme, yavaş istek günlüğü ve zarif yeniden yükleme gibi imkanlar sunar.

Hangi process manager kullanılmalı?

PHP-FPM üç işlem yönetim modu sunar. Seçim, trafiğin düzenine ve bellek kapasitesine göre yapılmalıdır.

ModÇalışma şekliUygun senaryo
staticSabit sayıda işlem sürekli açık kalırYüksek ve düzenli trafik, bol bellek
dynamicİşlem sayısı belirlenen aralıkta artar/azalırÇoğu web sitesi için dengeli seçim
ondemandİşlem yalnızca istek gelince başlarDüşük trafikli siteler, çok sayıda küçük pool

Dynamic modda pm.max_children, pm.start_servers, pm.min_spare_servers ve pm.max_spare_servers değerleri birlikte düşünülmelidir. En kritik ayar pm.max_children değeridir.

İpucu: pm.max_children değerini tahminle belirlemeyin. Çalışan bir PHP-FPM işleminin ortalama bellek tüketimini ölçün, PHP'ye ayırabileceğiniz toplam belleği bu değere bölün. Örneğin PHP'ye 2 GB ayırdıysanız ve işlem başına ortalama 60 MB kullanılıyorsa, makul üst sınır yaklaşık 30 civarındadır.

Uyarı: pm.max_children gereğinden yüksek ayarlanırsa trafik zirvesinde sunucu belleği dolar ve sistem takas alanına (swap) düşer. Bu durum, limiti düşük tutmaktan çok daha yıkıcıdır.

Fpdm nedir

"FPDM" ifadesi çoğunlukla PHP-FPM'in yanlış yazılmış halidir. Arama motorunda bu şekilde yazan kullanıcıların büyük kısmı aslında PHP-FPM'i araştırmaktadır. FPDM adında yaygın, standart bir PHP bileşeni bulunmaz.

Yazım benzerliği nedeniyle iki farklı terimle karıştırılabilir. Birincisi, PDF üretmek için kullanılan FPDF kütüphanesidir. İkincisi ise projenize özel bir kısaltmadır. Hangisini aradığınızdan emin olmak için bağlama bakın.

Aradığınız şeyMuhtemel doğru terimNe işe yarar
Sunucu performansı, işlem yönetimiPHP-FPMPHP isteklerini işlem havuzuyla çalıştırır
PDF dosyası oluşturmaFPDFPHP ile PDF üreten kütüphane
Başka bir kısaltmaProjeye özel olabilirBelgeye veya kod tabanına bakın

PHP'nin açılımı nedir?

PHP, "PHP: Hypertext Preprocessor" ifadesinin kısaltmasıdır. Bu özyinelemeli bir açılımdır; çünkü kısaltmanın içinde yine PHP geçer. İlk sürümlerde "Personal Home Page" anlamına geliyordu, sonraki dönemde bugünkü adı benimsendi.

What is fpm php

What is FPM PHP sorusunun yanıtı: PHP-FPM, PHP'yi FastCGI üzerinden çalıştıran, işlem havuzlarını yöneten ve performansı yüksek sitelere uygun bir sunucu tarafı bileşendir. İngilizce aramalarda genellikle kurulum ve yapılandırma kaynakları aranır.

How to install PHP-fpm

Kurulum yöntemi işletim sistemine göre değişir. Debian tabanlı sistemlerde paket yöneticisi en pratik yoldur. Önce paket listesini güncelleyin, ardından sürüme uygun paketi kurun:

  1. sudo apt update komutuyla paket listesini yenileyin.
  2. sudo apt install php-fpm komutuyla kurulumu yapın. Belirli bir sürüm için php8.3-fpm gibi sürümlü paket adı kullanılabilir.
  3. sudo systemctl enable --now php8.3-fpm ile servisi başlatın (sürüm numarasını sisteminizdekiyle değiştirin).
  4. Nginx yapılandırmasında fastcgi_pass satırını soket yoluna yönlendirin.
  5. sudo nginx -t ile sözdizimini denetleyip Nginx'i yeniden yükleyin.

PHP-FPM Debian

Debian'da PHP-FPM yapılandırma dosyaları genellikle /etc/php/<sürüm>/fpm/ altında bulunur. Pool tanımları pool.d klasöründedir ve varsayılan pool www.conf dosyasıdır. Debian'ın kararlı sürümünde gelen PHP sürümü, güncel PHP sürümünden geride olabilir. Daha yeni bir sürüm gerekiyorsa, güvenilir üçüncü taraf depoları kullanmadan önce güvenlik ve bakım koşullarını değerlendirin.

PHP-fpm latest version

PHP-FPM ayrı bir ürün olarak sürümlenmez; PHP ile birlikte gelir ve sürüm numarası PHP sürümüyle aynıdır. En güncel sürümü ve hangi dalların güvenlik desteği aldığını php.net üzerindeki "Supported Versions" sayfasından kontrol edin. Desteği sona ermiş bir PHP dalında PHP-FPM kullanmak, güvenlik açıkları nedeniyle önerilmez.

Php-fpm download ve PHP-FPM source code

PHP-FPM'i ayrıca indirmeniz gerekmez. Paket yöneticisiyle kurabilir ya da kaynak koddan derleyebilirsiniz. Kaynak kod, PHP'nin resmi dağıtımıyla birlikte gelir ve derleme sırasında --enable-fpm seçeneği kullanılır. Kaynak kod sapi/fpm dizininde yer alır. Derleme yalnızca özel modül veya sürüm ihtiyacınız varsa mantıklıdır; çoğu kullanıcı için paket kurulumu daha güvenli ve bakımı kolaydır.

PHP-FPM Windows

PHP-FPM, Windows'ta resmi olarak desteklenmez; Windows için PHP derlemelerinde FPM bulunmaz. Windows üzerinde geliştirme yapıyorsanız IIS ile FastCGI ya da php-cgi.exe kullanılır. Üretim ortamı için Linux tabanlı bir sunucu çok daha yaygın ve sorunsuz bir tercihtir. Windows'ta Linux ortamı gerekiyorsa WSL üzerinden PHP-FPM çalıştırmak da mümkündür.

Fpm nedir

FPM, "FastCGI Process Manager" ifadesinin kısaltmasıdır ve PHP bağlamında PHP işlemlerini yöneten servisi ifade eder. Çalışan işlemleri başlatır, izler, sonlandırır ve gerektiğinde yenilerini oluşturur.

Bir yönetici gibi düşünebilirsiniz: Gelen istek sayısına göre işçi (worker) sayısını ayarlar, takılan veya aşırı bellek tüketen işlemleri sonlandırır. Ayrıca yapılandırmayı kesinti olmadan yeniden yükleyebilir.

Pratik fayda sağlayan özellikler

  • Pool bazlı izolasyon: Her site ayrı kullanıcı ve limitlerle çalışabilir.
  • Yavaş istek günlüğü: request_slowlog_timeout ile uzun süren betikleri tespit edebilirsiniz.
  • Durum sayfası: pm.status_path ile aktif ve boşta işlem sayılarını izleyebilirsiniz.
  • Kesintisiz yeniden yükleme: Yapılandırma değişiklikleri sitenizi durdurmadan uygulanabilir.
  • İşlem yeniden başlatma: pm.max_requests ile bellek sızıntısı olan betiklerin etkisi sınırlanır.

Hangi durumda mod_php yeterli olur?

Her proje PHP-FPM gerektirmez. Aşağıdaki tablo, senaryoya göre mantıklı tercihi gösterir.

SenaryoÖnerilen yapı
Küçük, tek siteli test ortamımod_php yeterli olabilir
Orta ve yüksek trafikli WordPress veya Laravel sitesiPHP-FPM
Nginx kullanan her kurulumPHP-FPM (zorunlu)
Çok kullanıcılı hosting ortamıPHP-FPM (pool izolasyonu için)
Eski bir uygulamayı geçici ayağa kaldırmamod_php, kısa vadeli

PHP ne kadar sürede öğrenilir?

Temel sözdizimi, değişkenler, döngüler ve formlar için düzenli çalışmayla 1-2 ay yeterli olabilir. Veritabanı, nesne yönelimli programlama ve bir framework ile gerçek proje geliştirebilecek seviyeye gelmek ise genelde 6-12 ay sürer. Süre; günlük çalışma temposuna ve programlama geçmişine göre değişir.

PHP ders notları nelerdir?

Sağlam bir PHP ders notu şu başlıkları içermelidir: değişkenler ve veri tipleri, kontrol yapıları, fonksiyonlar, diziler, formlar, oturum ve çerezler, dosya işlemleri, PDO ile veritabanı, nesne yönelimli programlama ve güvenlik. En güncel ve güvenilir kaynak, php.net üzerindeki resmi dokümantasyondur.

Sık Sorulan Sorular

PHP-FPM kurulumunu nasıl test ederim?

php-fpm8.3 -t gibi bir komutla yapılandırma sözdizimini denetleyebilirsiniz. Ardından systemctl status ile servisin çalıştığını doğrulayın. Tarayıcıda phpinfo() çıktısında "Server API" satırının "FPM/FastCGI" göstermesi gerekir.

PHP-FPM çok bellek tüketiyorsa ne yapmalıyım?

Önce pm.max_children değerini işlem başına ölçülen bellek kullanımına göre yeniden hesaplayın. Ardından pm.max_requests değerini ayarlayarak işlemlerin belirli aralıklarla yenilenmesini sağlayın. Düşük trafikli sitelerde ondemand modu da belleği rahatlatır.

Apache ile PHP-FPM kullanılabilir mi?

Evet. Apache, mod_proxy_fcgi modülüyle PHP-FPM'e istek iletebilir ve bu durumda event MPM ile birlikte kullanılabilir. Bu yapı, mod_php ile prefork modeline göre genellikle daha verimli bellek kullanımı sağlar.

PHP-FPM ayarlarını değiştirdikten sonra ne yapmalıyım?

Değişikliklerin geçerli olması için servisi yeniden yüklemeniz gerekir. systemctl reload php8.3-fpm komutu mevcut istekleri kesmeden yeni yapılandırmayı uygular. Sürüm numarasını sisteminize göre değiştirin.

Sonuç ve Netlen ile Yapılandırma

PHP-FPM, modern PHP barındırmada performans, izolasyon ve ayar esnekliği açısından mod_php'ye göre daha güçlü bir temel sunar. Process manager seçimini trafik düzeninize ve bellek kapasitenize göre yapmanız, kararlı bir ortamın anahtarıdır.

Kendi sunucunuzda PHP-FPM yapılandırmak istemiyorsanız, Netlen İnternet Hizmetleri sunucu, web hosting ve alan adı hizmetleriyle projenize uygun altyapıyı seçmenize yardımcı olur. Teknik destek ekibine ulaşarak ihtiyacınıza uygun seçenekleri değerlendirebilirsiniz.

Netlen'i Google'da Takip Edin

En güncel rehberlerimize, duyurularımıza ve teknik içeriklerimize Google üzerinden öncelikli ulaşmak için Netlen'i tercih ettiğiniz kaynaklar arasına ekleyin.

GoogleGoogle'da Tercih edilenkaynak olarak ekleyin
php-fpmmod_phpprocess manager

Bu yazıyı paylaşın

Cenk ŞEKERCİ

Yazar Hakkında

Cenk ŞEKERCİ

Operasyon Yöneticisi

Bulut teknolojileri, ağ altyapıları ve veri merkezi operasyonları üzerine çalışıyorum. Öğrendiğim yeni teknolojileri ve sahada karşılaştığım gerçek deneyimleri anlaşılır şekilde paylaşmayı seviyorum.

Yorumlar

Bu yazı hakkında okuyucu yorumları