Rehber PHP-FPM + Nginx ile Yüksek Performanslı Web Sunucusu Kurulumu (Ubuntu/Debian)

r00ts

Hectopat
Katılım
11 Mart 2022
Mesajlar
328
Makaleler
1
Çözümler
3
Yer
Frankfurt
Daha fazla  
Cinsiyet
Erkek
Bu rehberde, Ubuntu/Debian tabanlı bir sistemde nginx + PHP-fpm kullanarak yüksek performanslı bir web sunucusunun nasıl yapılandırılacağını adım adım anlatacağım. Laravel, WordPress gibi PHP tabanlı projelerde maksimum verim ve performans elde etmek isteyenler için idealdir.

adım 1: sistem güncellemeleri

Kod:
sudo apt update && sudo apt upgrade -y


Adım 2: gerekli paketlerin kurulumu

Kod:
sudo apt install nginx php-fpm php-mysql unzip curl -y

adım 3: PHP-fpm yapılandırması

Kod:
sudo nano /etc/php/8.1/fpm/php.ini

Aşağıdaki satırları bulun ve düzenleyin:

Kod:
cgi.fix_pathinfo=0
memory_limit = 512M.
upload_max_filesize = 64M.
post_max_size = 64M.
max_execution_time = 180

PHP-fpm'i yeniden başlat:

Kod:
sudo systemctl restart php8.1-fpm

Not: PHP sürümünüz farklı ise, 8.1 yerine kendi sürümünüzü yazın.

adım 4: nginx sanal host yapılandırması

Kod:
sudo nano /etc/nginx/sites-available/default

İçeriği şu şekilde güncelleyin:

Kod:
server {
 listen 80;
 server_name example.com www.example.com;

 root /var/www/html;
 index index.php index.html index.htm;

 location / {
 try_files $uri $uri/ =404;
 }

 location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/run/php/php8.1-fpm.sock;
 }

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

Yapılandırma testi:

Kod:
sudo nginx -t

Yeniden başlat:

Kod:
sudo systemctl restart nginx

adım 5: güvenlik ve performans ayarları

Kod:
sudo nano /etc/nginx/nginx.conf

Şu satırları kontrol edin veya ekleyin:

Kod:
worker_processes auto;
keepalive_timeout 65;
server_tokens off;

adım 6: test sayfası oluşturma

Kod:
sudo nano /var/www/html/info.php

İçine şunu yazın:

Kod:
<?php phpinfo(); ?>

Tarayıcıdan erişin:

Kod:
http://sunucu-ip-adresi/info.php

adım 7: ekstra performans önerileri
  • PHP Opcache'i aktif edin: Opcache. Enable = 1
  • Gzip modülünü Nginx'te aktif hale getirin.
  • Redis veya memcached kullanımı ciddi performans artışı sağlar.

adım 8: let's encrypt SSL sertifikası kurulumu

Kod:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx

adım 9: günlük görevler için cronjob örneği

Kod:
sudo crontab -e

Satır ekleyin:

Kod:
0 3 * * * /usr/bin/php /var/www/html/artisan schedule:run >> /dev/null 2>&1
 

Technopat Haberler

Geri
Yukarı