Ana içeriğe geç

Ubuntu Üzerinde LEMP Kurulumu: Nginx, MySQL ve PHP ile Web Sunucusu

Bu Rehberde Ne Öğreneceksiniz?

Bu rehberde Ubuntu sunucuda LEMP stack kurulumunu adım adım öğreneceksiniz.
Amaç, PHP tabanlı uygulamalar için güvenli ve performanslı bir altyapı oluşturmaktır.


Teknik Özet

Bu içerik, Ubuntu üzerinde Nginx, MySQL ve PHP-FPM bileşenlerini kurar.
Süreç; web sunucusu kurulumu, veritabanı güvenliği ve PHP entegrasyonunu kapsar.


Ön Koşullar

  • Ubuntu 22.04 LTS sunucu
  • sudo yetkisine sahip kullanıcı
  • UFW güvenlik duvarı aktif

1. Adım: Nginx Web Sunucusunu Kurma

Nginx, gelen HTTP isteklerini yöneten yüksek performanslı bir web sunucusudur.

sudo apt update
sudo apt install nginx
  • Bu komutlar Nginx’i kurar ve servisi başlatır.

Durumu kontrol edin:


sudo systemctl status nginx
  • UFW üzerinden yalnızca HTTP trafiğine izin verin:


sudo ufw allow 'Nginx HTTP'
sudo ufw status
  • Tarayıcıdan sunucu IP adresine giderek varsayılan sayfayı doğrulayın.

2. Adım: MySQL Veritabanını Kurma

  1. MySQL, PHP uygulamaları için verileri saklar.

sudo apt install mysql-server
  • Kurulumdan sonra güvenlik yapılandırmasını çalıştırın:

sudo mysql_secure_installation
  • Bu işlem:
  1. Test veritabanını siler

  2. Anonim kullanıcıları kaldırır

  3. Root erişimini sınırlar

  4. MySQL’e bağlanmayı test edin:


sudo mysql
exit

3. Adım: PHP ve PHP-FPM Kurulumu

  1. Nginx, PHP kodlarını doğrudan çalıştıramaz.
  • Bu yüzden PHP-FPM kullanılır.

sudo apt install php8.1-fpm php-mysql
  • Bu komut PHP ve MySQL entegrasyonunu kurar.

Servis durumunu kontrol edin:


sudo systemctl status php8.1-fpm

4. Adım: Nginx’i PHP ile Yapılandırma

Örnek bir site dizini oluşturun:


sudo mkdir /var/www/rabisu.cloud
sudo chown -R $USER:$USER /var/www/rabisu.cloud

  • Yeni bir Nginx server bloğu oluşturun:

sudo nano /etc/nginx/sites-available/rabisu.cloud

  • Aşağıdaki yapılandırmayı ekleyin:

server {
listen 80;
server_name rabisu.cloud www.rabisu.cloud;
root /var/www/rabisu.cloud;

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 dosyalarını PHP-FPM’e yönlendirir.

Siteyi etkinleştirin:


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

5. Adım: PHP Çalışmasını Test Etme

  • Test dosyası oluşturun:

nano /var/www/rabisu.cloud/info.php
  • İçerik:

<?php
phpinfo();
  • Tarayıcıdan kontrol edin:

http://sunucu_ip/info.php
  • Testten sonra dosyayı silin:

sudo rm /var/www/rabisu.cloud/info.php

6. Adım (Opsiyonel): PHP ile MySQL Bağlantısını Test Etme

  • Örnek bir veritabanı ve kullanıcı oluşturun:

CREATE DATABASE example_db;
CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'strong_password';
GRANT ALL ON example_db.* TO 'example_user'@'%';
FLUSH PRIVILEGES;
  • Basit bir PHP dosyasıyla bağlantıyı test edebilirsiniz.

Sıkça Sorulan Sorular (SSS)

1. LEMP stack ne için kullanılır? PHP tabanlı siteler ve uygulamalar için web altyapısı sağlar.

2. LEMP ve LAMP farkı nedir? LEMP, Apache yerine Nginx kullanır ve daha yüksek eşzamanlı performans sunar.

3. Ubuntu 24.04 kullanıyorsam ne değişir? PHP sürümü 8.3 olur ve socket yolu güncellenir.

4. 502 Bad Gateway hatası alıyorum, neden? PHP-FPM çalışmıyor veya socket yolu yanlış olabilir.

5. Bir sunucuda birden fazla site kurabilir miyim? Evet. Her site için ayrı server block tanımlanır.


Sonuç

Bu rehberle Ubuntu üzerinde eksiksiz bir LEMP altyapısı kurdunuz. Nginx hızlı istek yönetimi sağlar, MySQL verileri saklar, PHP-FPM kodları işler.

Bu yapıyı Rabisu Bulut altyapısında güvenle kullanabilir ve ölçekleyebilirsiniz.