Ubuntu’da PHP-FPM Nginx İle Nasıl Kurulur (Apache Olmadan)

Son doğrulama: Eylül 2026 · Ubuntu 24.04 test sunucusunda denendi

Hızlı çözüm

Ubuntu PHP-FPM Nginx kurulumu üç paketle tamamlanır: apt-get install nginx php-fpm ile Nginx ve PHP-FPM’i kurun, ardından Nginx site yapılandırmanıza .php uzantılı istekleri PHP-FPM soketine yönlendiren bir location bloğu ekleyin. Apache bu kurulumda hiç yer almaz; Nginx, PHP dosyalarını FastCGI Process Manager üzerinden PHP’ye teslim eder.

  1. Paketleri kurun: apt-get install nginx php-fpm
  2. Nginx site dosyasına PHP-FPM soket yönlendirmesini ekleyin
  3. Yapılandırmayı sınayın: nginx -t
  4. Nginx’i yeniden yükleyin: systemctl reload nginx
Panel Yok (SSH / terminal)
Sistem Ubuntu 22.04/24.04 (VPS/VDS)
Yetki root ya da sudo
Narhost ürünü VPS Sunucu, VDS Sunucu

Başlamadan önce

  • Sunucunuza root ya da sudo yetkili bir kullanıcıyla SSH ile bağlanabiliyor olmalısınız; ilk kez bağlanıyorsanız önce VPS/VDS ilk kurulum rehberini tamamlayın.
  • Sunucuda Apache kurulu ve 80 portunu dinliyorsa önce onu durdurun ya da kaldırın; iki web sunucusu aynı portu paylaşamaz.
  • Uygulamanızın PHP sürüm ihtiyacını (ör. WordPress için güncel bir 8.x sürümü) önceden belirleyin.
  • Site dosyalarınızın kopyası elinizde olsun; yapılandırma değişikliğinden önce mevcut ayarları yedekleyin.

Ubuntu PHP-FPM Nginx kurulumu ne işe yarar, ne zaman gerekir

Apache, PHP’yi genelde kendi içine gömülü bir modül (mod_php) olarak çalıştırır. Nginx bu modeli desteklemez; PHP dosyalarını işlemesi için ayrı bir süreç yöneticisine, yani PHP-FPM’e (FastCGI Process Manager) ihtiyaç duyar. Nginx bir .php isteği aldığında bunu kendi işlemeyip FPM’in dinlediği bir Unix soketine ya da TCP portuna iletir; FPM isteği çalıştırıp sonucu Nginx’e geri döndürür. Narhost’un VPS ve VDS ürünleri yönetimsiz olduğu için bu iki bileşeni sunucunuzda birbirine bağlamak sizin sorumluluğunuzdadır.

Apache yerine Nginx tercih etmenin pratik sonucu düşük bellek kullanımı ve çok sayıda eşzamanlı bağlantıda daha kararlı performanstır; buna karşılık .htaccess tabanlı yapılandırma çalışmaz, her kural site dosyasına yazılır. Nginx’in istek işleme modeli Nginx’in resmi başlangıç kılavuzunda, PHP-FPM’in havuz ve soket ayarları ise PHP’nin resmi FPM belgesinde anlatılır.

Ubuntu PHP-FPM Nginx kurulumu şeması — istek Nginx'ten PHP-FPM soketine, oradan PHP sürecine gider
İstek Nginx'e gelir, .php uzantılı dosyalar location bloğuyla FPM soketine, oradan PHP sürecine gider.

Ubuntu PHP-FPM Nginx kurulumu adım adım

  1. Nginx ve PHP-FPM’i kurun. Ubuntu’nun resmi deposundaki php-fpm meta paketi, sunucunuzdaki varsayılan PHP sürümüne karşılık gelen FPM paketini otomatik seçer.
    apt-get updateapt-get install -y nginx php-fpm

    Beklenen sonuç: kurulum php8.3-fpm paketini kurar (Ubuntu 24.04’te varsayılan sürüm budur), systemctl is-active nginx ve systemctl is-active php8.3-fpm ikisi de active döner.

  2. Nginx site dosyasını açın. Varsayılan site /etc/nginx/sites-available/default dosyasındadır; index satırına index.php‘yi ekleyin.
    index index.php index.html index.htm index.nginx-debian.html;

    Beklenen sonuç: dosya kaydedilir, sözdizimi hatası çıkmaz.

  3. PHP-FPM için location bloğu ekleyin. Aynı dosyadaki server { } bloğunun içine, mevcut .ht bloğundan önce aşağıdaki kuralı ekleyin.
    location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.3-fpm.sock;}

    Beklenen sonuç: soket yolu, kurulu PHP-FPM sürümüyle eşleşmeli; farklı bir sürüm kurduysanız dosya adını ona göre değiştirin.

  4. Yapılandırmayı sınayın ve yeniden yükleyin.
    nginx -tsystemctl reload nginx

    Beklenen sonuç: nginx: configuration file /etc/nginx/nginx.conf test is successful. Test sunucusunda bu adım hatasız tamamlandı.

  5. PHP dosyasının çalıştığını sınayın. Site kök dizinine küçük bir test dosyası koyup tarayıcı ya da curl ile isteyin.
    echo '<?php echo "calisiyor ".phpversion();' > /var/www/html/test.phpcurl -s http://127.0.0.1/test.php

    Beklenen sonuç: PHP kaynak kodu değil, çalıştırılmış çıktı görünür. Test sunucusunda komut calisiyor 8.3.6 döndürdü. Testin ardından dosyayı silin.

Dikkat

curl çıktısında <?php etiketinin kendisi görünüyorsa Nginx isteği PHP-FPM’e değil doğrudan tarayıcıya statik dosya olarak gönderiyor demektir; genelde location ~ \.php$ bloğu ya hiç eklenmemiş ya da varsayılan dosyadaki yorum satırı (#) kaldırılmadan bırakılmıştır. Bloğu tekrar kontrol edin.

Doğrulama

Sonuç

curl -s http://127.0.0.1/test.php komutu PHP’nin çalıştırılmış çıktısını (kaynak kod değil) döndürüyorsa kurulum tamamlanmıştır. systemctl status php8.3-fpm komutunda active (running) görmeniz de FPM havuzunun ayakta olduğunu doğrular.

Hâlâ çözülmediyse

  • 502 Bad Gateway hatası. Nginx, FPM soketine ulaşamıyor demektir; soket dosya yolunun doğru PHP sürümüyle eşleştiğini ve php8.3-fpm servisinin çalıştığını kontrol edin.
  • PHP kodu tarayıcıda düz metin olarak görünüyor.location ~ \.php$ bloğu eklenmemiş ya da yorum satırında kalmıştır; adım 3’ü tekrarlayın.
  • Site yavaş açılıyor. Bu genelde yapılandırma değil kaynak sorunudur; sunucunuzun yükünü VDS aldım ama kasıyor, ne yapmalıyım kartındaki adımlarla inceleyin.

Narhost desteği

Kurulum sırasında takılırsanız destek talebinize sunucunuzun işletim sistemi ve PHP sürümünü, Nginx yapılandırma dosyanızın ilgili bölümünü ve aldığınız tam hata mesajını ekleyin.

Destek talebi aç

Sıkça sorulan sorular

Ubuntu PHP-FPM Nginx kurulumu Apache’ye göre daha mı hızlıdır?

Çok sayıda eşzamanlı bağlantıda Nginx genelde daha az bellek kullanır. Tek başına PHP çalıştırma hızı, sunucu kaynağı ve uygulama koduna bağlıdır; fark asıl eşzamanlı yükte görülür.

.htaccess dosyalarım çalışır mı?

Hayır. Nginx .htaccess okumaz; yönlendirme ve başlık kurallarını doğrudan site yapılandırma dosyasına yazmanız gerekir.

Birden fazla PHP sürümünü aynı sunucuda çalıştırabilir miyim?

Evet; her sürüm için ayrı bir php-fpm paketi kurup her sitenin location bloğunda farklı soket yoluna yönlendirme yaparsınız.

Bu makale sorununuzu çözdü mü?

Çözemediniz mi?

Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.

Etiketler: nginx

İlgili çözümler