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.
apt-get install nginx php-fpmnginx -tsystemctl 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
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.

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.
/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.
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.
nginx -tsystemctl reload nginx
Beklenen sonuç: nginx: configuration file /etc/nginx/nginx.conf test is successful. Test sunucusunda bu adım hatasız tamamlandı.
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.
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.
php8.3-fpm servisinin çalıştığını kontrol edin.location ~ \.php$ bloğu eklenmemiş ya da yorum satırında kalmıştır; adım 3’ü tekrarlayın.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.
Sonraki adımlar
Ç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.
Hayır. Nginx .htaccess okumaz; yönlendirme ve başlık kurallarını doğrudan site yapılandırma dosyasına yazmanız gerekir.
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ü?
Geri bildiriminiz için teşekkürler.
Çö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.