
LEMP yığını; Linux (İşletim Sistemi), Engine-X (Nginx Web Sunucusu), MariaDB (Veritabanı) ve PHP (Programlama Dili) bileşenlerinin birleşiminden oluşur. Bu rehber, Debian 11 (Bullseye), Debian 12 (Bookworm) ve en güncel Debian 13 (Trixie) sürümlerinde yüksek performanslı bir web sunucusu kurmanız için gereken her adımı detaylandırmaktadır.
- 1. Adım: Debian Sistemini Hazırlama ve Güncelleme
- 2. Adım: Nginx Web Sunucusunu Kurma (LEMP – “E”)
- 3. Adım: MariaDB Veritabanını Kurma (LEMP – “M”)
- 4. Adım: PHP ve PHP-FPM Kurulumu (LEMP – “P”)
- 5. Adım: Nginx “Server Block” Yapılandırması
- 6. Adım: LEMP Yığınını Test Etme
- 7. Adım: Güvenlik ve SSL (Let’s Encrypt)
- 8. Adım: Güvenlik Duvarı (UFW) Yapılandırması
1. Adım: Debian Sistemini Hazırlama ve Güncelleme
Herhangi bir yazılım kurulumuna başlamadan önce, sistemdeki mevcut paketlerin en güncel sürümlerine yükseltilmesi ve depo listelerinin tazelenmesi kritik önem taşır. Bu, bağımlılık çakışmalarını önler.
Bash
sudo apt update && sudo apt upgrade -y
2. Adım: Nginx Web Sunucusunu Kurma (LEMP – “E”)
Nginx, düşük bellek kullanımı ve yüksek eşzamanlı bağlantı kapasitesi ile bilinen olay tabanlı (event-driven) bir web sunucusudur.
Nginx Kurulumu
Bash
sudo apt install nginx -y
Servis Yönetimi
Nginx yüklendikten sonra otomatik olarak başlar. Durumunu doğrulamak ve sistem açılışında otomatik çalışmasını sağlamak için:
Bash
sudo systemctl enable nginx --now
sudo systemctl status nginx
Kurulumu Doğrulama
Web tarayıcınızı açın ve sunucunuzun IP adresini (http://sunucu_ip_adresi) girin. “Welcome to nginx” sayfasını görmeniz, web sunucunuzun başarıyla çalıştığını gösterir.
3. Adım: MariaDB Veritabanını Kurma (LEMP – “M”)
Debian, varsayılan MySQL yerine topluluk tarafından geliştirilen ve daha hızlı olan MariaDB’yi sunar.
MariaDB Kurulumu
Bash
sudo apt install mariadb-server mariadb-client -y
MariaDB Güvenlik Yapılandırması (Kritik)
Yeni kurulan veritabanları varsayılan olarak güvensizdir. mysql_secure_installation betiği ile sistemi kilitleyin:
Bash
sudo mysql_secure_installation
Betiği şu şekilde yanıtlayın:
- Enter current password for root: Enter (Boş geçin).
- Switch to unix_socket authentication:
Y - Change the root password:
Y(Güçlü bir veritabanı root şifresi belirleyin). - Remove anonymous users:
Y - Disallow root login remotely:
Y - Remove test database:
Y - Reload privilege tables:
Y
4. Adım: PHP ve PHP-FPM Kurulumu (LEMP – “P”)
Nginx, Apache gibi PHP’yi doğrudan barındıramaz; bu nedenle PHP isteklerini işlemek için PHP-FPM (FastCGI Process Manager) kullanılır.
PHP-FPM ve Gerekli Modülleri Kurma
Modern web uygulamaları için en çok ihtiyaç duyulan uzantılarla birlikte kurulum yapın:
Bash
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip php-intl -y
Sürüm Kontrolü ve Servis Doğrulaması
Debian sürümünüze göre PHP versiyonu değişecektir (Örn: 12 için 8.2, 13 için 8.4). Servis adını öğrenmek için:
Bash
php -v
# Çıktıya göre (Örn: 8.2 ise) servisi başlatın:
sudo systemctl enable php8.2-fpm --now
5. Adım: Nginx “Server Block” Yapılandırması
Apache’deki “Virtual Hosts” mantığının Nginx karşılığıdır. Nginx’e PHP dosyalarını nereye göndereceğini söylememiz gerekir.
Web Klasörü Hazırlığı
alanadiniz.com kısmını kendi domaininizle değiştirin:
Bash
sudo mkdir -p /var/www/html/alanadiniz.com
sudo chown -R $USER:$USER /var/www/html/alanadiniz.com
sudo chmod -R 755 /var/www/html/alanadiniz.com
Yapılandırma Dosyasını Oluşturma
Bash
sudo nano /etc/nginx/sites-available/alanadiniz.com.conf
Aşağıdaki içeriği yapıştırın (Soket yolundaki PHP sürümüne dikkat edin!):
Nginx
server {
listen 80;
listen [::]:80;
server_name alanadiniz.com www.alanadiniz.com;
root /var/www/html/alanadiniz.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Debian sürümünüzdeki PHP sürümüne göre güncelleyin (8.2 veya 8.4 gibi)
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Yapılandırmayı Aktifleştirme
Bash
sudo ln -s /etc/nginx/sites-available/alanadiniz.com.conf /etc/nginx/sites-enabled/
sudo nginx -t # Hata olup olmadığını denetler
sudo systemctl reload nginx
6. Adım: LEMP Yığınını Test Etme
Sistemin PHP dosyalarını doğru işleyip işlemediğini kontrol etmek için bir info.php dosyası oluşturun:
Bash
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/alanadiniz.com/info.php
Tarayıcınızdan http://alanadiniz.com/info.php adresine gidin. PHP yapılandırma tablosunu görüyorsanız her şey çalışıyor demektir.
ÖNEMLİ: Bilgileriniz sızmaması için testi bitince bu dosyayı silin: sudo rm /var/www/html/alanadiniz.com/info.php
7. Adım: Güvenlik ve SSL (Let’s Encrypt)
Web sitenizi HTTPS ile korumak için Certbot aracılığıyla ücretsiz SSL sertifikası alın.
Bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d alanadiniz.com -d www.alanadiniz.com
Bu komut, SSL sertifikasını otomatik olarak alır ve Nginx yapılandırma dosyanızı otomatik olarak günceller.
8. Adım: Güvenlik Duvarı (UFW) Yapılandırması
Sadece gerekli portların açık olduğundan emin olun:
Bash
sudo apt install ufw -y
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable
Özet ve Sonraki Adımlar
Tebrikler! Debian üzerinde tam kapsamlı, güvenli ve yüksek performanslı bir LEMP yığını kurdunuz.
Hızlandırmak için: Redis veya Memcached gibi önbellekleme sistemlerini ekleyebilirsiniz
Veritabanı yönetimi için: phpMyAdmin kurmayı düşünebilirsiniz.






