CentOS Üzerinde Nginx + PHP-FPM + MySQL Kurulumu (Panelsiz Web Sunucusu)

Panelsiz bir yapı ile, hafif, performanslı ve kontrolü tamamen sizde olan bir web sunucusu kurmak istiyorsanız doğru yerdesiniz. Bu makalede, CentOS tabanlı bir sistem üzerinde Nginx + PHP-FPM + MySQL bileşenleri ile çalışan bir web sunucusunun kurulumunu ele alıyoruz.

⚠️ Not: Bu içerik orijinal olarak CentOS 6 için hazırlanmıştır. Ancak CentOS 6 artık EOL (End of Life) durumundadır. Güncel sistemlerde AlmaLinux / Rocky Linux / CentOS Stream kullanmanız önerilir.

Kurulum Mimarisi (Genel Bakış)

Nginx → Web server PHP-FPM → PHP işlem yöneticisi MariaDB → Veritabanı

Tek Komut ile Kurulum

dnf -y update && \
dnf -y install epel-release && \
dnf -y install nginx php-fpm php-cli php-mysqlnd php-opcache php-gd php-curl php-mbstring php-xml mariadb-server && \
systemctl enable –now nginx php-fpm mariadb

PHP-FPM Ayarı (ÖNEMLİ)

sed -i ‘s/user = apache/user = nginx/’ /etc/php-fpm.d/www.conf
sed -i ‘s/group = apache/group = nginx/’ /etc/php-fpm.d/www.conf
systemctl restart php-fpm

Web Dizini ve Test Dosyası

mkdir -p /var/www/site/public_html
echo “” > /var/www/site/public_html/index.php

chown -R nginx:nginx /var/www/site
chmod -R 755 /var/www

Nginx Site Konfigürasyonu

nano /etc/nginx/conf.d/site.conf

(altdaki içeriği buraya yapıştırınız ctrl + x ile çıkarken kaydetmek için Y diye sorar) CTRL + X → Y → ENTER kaydettikten sonra cat /etc/nginx/conf.d/site.conf dosya içeriğini bu komut ile görüyorsanız tamamdır.

server {
listen 80;
server_name domain.com;
root /var/www/site/public_html;
index index.php index.html;

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

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php-fpm/www.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
    expires 30d;
}
}

systemctl restart nginx

Firewall Ayarı

firewall-cmd –permanent –add-service=http
firewall-cmd –permanent –add-service=https
firewall-cmd –reload

MariaDB İlk Kurulum

mysql_secure_installation

Güvenlik Temizliği

rm -f /var/www/site/public_html/index.php

Bu kurulum ile:

  • Panelsiz, hafif ve hızlı bir web sunucusu kurdunuz
  • Nginx + PHP-FPM ile yüksek performans elde ettiniz
  • Modern ve sürdürülebilir bir altyapı oluşturduk

Tarayıcıdan sunucu IP veya domain aç: PHP çalışıyorsa kurulum tamamdır.

Bu yazının devamında güvenliği artırılmış bir yapı dönüştüreceğiz. Aşağıdaki eklentileri kuracağız.

  • SSL (Let’s Encrypt – otomatik yenileme)
  • Nginx FastCGI Cache
  • Cloudflare + WAF + gerçek IP
  • Fail2Ban + brute force koruma
  • Rate limit & bot koruması

Bir yanıt yazın