0Pricing
PHP Academy · Ders

Nginx ve PHP-FPM Yapılandırması

PHP uygulamalarını sunmak için Nginx'i PHP-FPM'e ters vekil sunucu olarak yapılandırın.

Nginx ve PHP-FPM Yapılandırması, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

Neden Nginx + PHP-FPM Kullanılır?

Nginx, yüksek performanslı bir web sunucusu ve ters vekil sunucudur. PHP-FPM (FastCGI İşlem Yöneticisi), PHP işçi işlemlerinden oluşan bir havuzu yönetir. Nginx, PHP isteklerini FastCGI aracılığıyla FPM'ye iletir.

Temel Nginx Sunucu Bloğu

PHP uygulaması için asgari bir Nginx yapılandırması.

# /etc/nginx/sites-available/myapp
server {
    listen 80;
    server_name example.com;
    root /srv/myapp/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

try_files Yönergesi

try_files $uri $uri/ /index.php?$query_string önce statik bir dosyayı sunmayı dener. Dosya bulunamazsa index.php'ye geri dönerek ön uç denetleyicisi yönlendirmesini (Laravel, Symfony) etkinleştirir.

PHP-FPM Havuz Yapılandırması

İşçi havuzunu /etc/php/8.3/fpm/pool.d/www.conf içinde yapılandırın.

[www]
pm = dynamic
pm.max_children      = 20
pm.start_servers     = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests      = 500  ; recycle workers to prevent leaks

Unix Soketi ve TCP

Unix soketi (fastcgi_pass unix:/run/php/php8.3-fpm.sock) kullanmak, aynı makinedeki iletişim için TCP'den (127.0.0.1:9000) daha hızlıdır.

Let's Encrypt ile HTTPS

Ücretsiz TLS sertifikaları almak için Certbot kullanın.

$ certbot --nginx -d example.com
# Certbot modifies your Nginx config and sets up auto-renewal

Gzip Sıkıştırması

Yanıt boyutlarını azaltmak için gzip'i etkinleştirin.

# nginx.conf or server block:
gzip on;
gzip_types text/plain text/css application/javascript application/json;
gzip_min_length 1024;

Statik Varlıklar için Tarayıcı Önbelleğe Alması

Statik dosyalar için önbellek denetimi üstbilgileri ekleyin.

location ~* \.(js|css|png|jpg|gif|ico|woff2)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}

Nginx'te İstek Oranı Sınırlama

limit_req modülünü kullanarak IP başına istekleri sınırlayın — PHP daha başlamadan önceki ilk savunma hattıdır.

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
}

server {
    location /api/ {
        limit_req zone=one burst=20 nodelay;
    }
}

Güvenlik Üstbilgileri

Tüm yanıtlara güvenlik üstbilgileri ekleyin.

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";

Yeniden Yükleme ve Yeniden Başlatma

Nginx yapılandırmasını değiştirdikten sonra kesinti olmadan düzgün biçimde yeniden yükleyin: nginx -t && nginx -s reload. PHP-FPM yapılandırmasını değiştirdikten sonra: systemctl reload php8.3-fpm.

Özet

Nginx'i, FastCGI aracılığıyla public/index.php'ye yönlendiren bir sunucu bloğuyla yapılandırın. PHP-FPM havuz ayarlarını düzenleyin. Unix soketlerini kullanın. HTTPS'yi, gzip'i ve statik dosya önbelleğe almasını etkinleştirin.

Hızlı Kontrol

try_files $uri $uri/ /index.php?$query_string ne yapar?

Sıkça Sorulan Sorular

“Nginx ve PHP-FPM Yapılandırması” dersi ücretsiz mi?

Evet — “Nginx ve PHP-FPM Yapılandırması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“Nginx ve PHP-FPM Yapılandırması” dersinde ne öğreneceğim?

PHP uygulamalarını sunmak için Nginx'i PHP-FPM'e ters vekil sunucu olarak yapılandırın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

PHP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Nginx ve PHP-FPM Yapılandırması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Nginx ve PHP-FPM Yapılandırması
  2. Ortam Değişkenleri ve .env Dosyaları
  3. GitHub Actions ile Dağıtım
  4. PHP Uygulamasını Docker'a Taşıma
← PHP Academy Sayfasına Dön