Destek Online
Ana içeriğe geç

Ubuntu 22.04 LEMP Kurulumu (Nginx, MySQL, PHP)

Bu rehberde ne öğreneceksiniz?

Bu rehberde Ubuntu sunucunuzu tam donanımlı bir web platformuna dönüştürmeyi öğreneceksiniz.
Nginx, MySQL ve PHP-FPM bileşenlerini birlikte kullanarak hızlı ve güvenli bir altyapı kuracağız.

Teknik Özet

Ana konu: Ubuntu üzerinde LEMP (Linux, Nginx, MySQL, PHP) kurulumu
Çözülen problem: PHP tabanlı web uygulamaları için uçtan uca sunucu altyapısı
Adımlar: Nginx → MySQL → PHP-FPM → Nginx yapılandırması → testler

Not: Ubuntu 24.04 kullanıyorsanız php8.1-fpm yerine php8.3-fpm kullanın.


Ön Gereksinimler

  • Ubuntu 22.04 sunucu
  • Root olmayan, sudo yetkili kullanıcı
  • UFW güvenlik duvarı aktif

1️⃣ Nginx Web Sunucusu Kurulumu

sudo apt update
sudo apt install nginx
  • Bu komutlar paket listesini günceller ve Nginx’i kurar.

1.1 Güvenlik Duvarı Ayarı


sudo ufw allow 'Nginx HTTP'
sudo ufw status
  • Bu adım HTTP trafiğine izin verir.

1.2 Tarayıcıdan test edin:


http://SUNUCU_IP

2️⃣ MySQL Veritabanı Kurulumu


sudo apt install mysql-server
sudo mysql_secure_installation
  • Bu adımlar MySQL’i kurar ve temel güvenliği sağlar.

Öneri: Root yerine uygulamalar için ayrı kullanıcı oluşturun.


3️⃣ PHP ve PHP-FPM Kurulumu

1. Nginx, PHP kodlarını doğrudan çalıştıramaz. Bu işi PHP-FPM üstlenir.


sudo apt install php8.1-fpm php-mysql
  • Bu komut PHP işlemcisini ve MySQL desteğini kurar.


php -v
  • Bu komut PHP sürümünü doğrular.

2. Nginx ve PHP-FPM Neden Birlikte Kullanılır?

  • Nginx, statik dosyaları çok hızlı sunar

  • PHP-FPM, PHP kodlarını güvenli ve izole şekilde işler

  • Bu yapı yüksek trafikte daha stabil çalışır


4️⃣ Nginx Server Block Oluşturma


sudo mkdir /var/www/ornek.com
sudo chown -R $USER:$USER /var/www/ornek.com
sudo nano /etc/nginx/sites-available/ornek.com
  • Bu adımlar site dizinini oluşturur ve yapılandırma dosyasını açar.


server {
listen 80;
server_name ornek.com www.ornek.com;
root /var/www/ornek.com;

index index.php index.html;

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;
}
}
  • Bu yapılandırma PHP-FPM entegrasyonunu sağlar.

4.1 Siteyi Aktifleştirme


sudo ln -s /etc/nginx/sites-available/ornek.com /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx

5️⃣ PHP Çalışıyor mu Test Edelim


nano /var/www/ornek.com/info.php


<?php
phpinfo();

Tarayıcıdan açın:


http://SUNUCU_IP/info.php

Testten sonra mutlaka silin:


sudo rm /var/www/ornek.com/info.php

Sıkça Sorulan Sorular (SSS)

1. 502 Bad Gateway hatası neden olur? Genellikle PHP-FPM çalışmıyordur veya socket yolu yanlıştır.


sudo systemctl status php8.1-fpm
ls /run/php/

2. Bir sunucuda birden fazla site olur mu? Evet. Her domain için ayrı server block oluşturabilirsiniz.

3. PHP sürümünü nasıl güncellerim? Yeni sürümü kurup fastcgi_pass yolunu güncellemeniz yeterlidir.

Sonuç Artık tam fonksiyonel bir LEMP altyapınız var. Bu yapı WordPress, Laravel ve özel PHP projeleri için idealdir. 🔐 Bir sonraki adım olarak Let’s Encrypt SSL eklemeniz şiddetle önerilir. 🚀 Yüksek performanslı projeler için GenixNode üzerindeki optimize edilmiş Ubuntu sunucularını hemen deneyebilirsiniz.