Ana içeriğe geç

Ubuntu Üzerinde Nginx (LEMP) ile Laravel Kurulumu

Ubuntu Üzerinde Nginx (LEMP) ile Laravel Kurulumu

Bu rehber, Ubuntu sunucusu üzerinde LEMP yığını (Linux, Nginx, MySQL, PHP) kullanarak Laravel uygulamasını üretim ortamına hazırlamayı anlatır.
Amaç, güvenli, performanslı ve ölçeklenebilir bir Laravel altyapısı kurmaktır.

Bu Rehberde Ne Öğreneceksiniz?

  • Laravel için gerekli PHP 8.2+ eklentilerini kurmayı
  • Güvenli bir MySQL veritabanı ve kullanıcı oluşturmayı
  • Nginx’i Laravel yönlendirme mantığına uygun yapılandırmayı
  • SSL ve temel performans optimizasyonlarını uygulamayı

1. Gerekli PHP Eklentilerinin Kurulması

Laravel, bazı temel PHP uzantılarına ihtiyaç duyar.

sudo apt update
sudo apt install php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml php8.2-bcmath php8.2-curl php8.2-zip php8.2-gd
  • Bu komut, Laravel’in çalışması için gerekli tüm PHP bileşenlerini kurar.

2. MySQL Veritabanı Yapılandırması

  1. Uygulama için ayrı bir veritabanı ve kısıtlı yetkili kullanıcı oluşturun.

CREATE DATABASE rabisu_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'rabisu_user'@'localhost' IDENTIFIED BY 'guclu_sifre_buraya';
GRANT ALL PRIVILEGES ON rabisu_db.* TO 'rabisu_user'@'localhost';
FLUSH PRIVILEGES;
  • Bu yapılandırma yalnızca yerel erişime izin verir ve üretim için uygundur.

3. Laravel Uygulamasının Oluşturulması

  1. Composer ile yeni bir Laravel projesi oluşturun.

cd ~
composer create-project laravel/laravel travellist
sudo mv ~/travellist /var/www/travellist

4. Dosya İzinleri ve Ortam Ayarları

  1. Laravel’in önbellek ve log yazabilmesi için gerekli izinleri verin.

sudo chown -R www-data:www-data /var/www/travellist
sudo chmod -R 775 /var/www/travellist/storage
sudo chmod -R 775 /var/www/travellist/bootstrap/cache
  1. Ardından .env dosyasında veritabanı bilgilerini güncelleyin.

5. Nginx Yapılandırması

  1. Laravel için bir Nginx sunucu bloğu oluşturun.

server {
listen 80;
server_name rabisu.cloud;
root /var/www/travellist/public;
index index.php;

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

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
}
  • Bu yapılandırma, tüm istekleri Laravel’in ana giriş dosyasına yönlendirir.

Sıkça Sorulan Sorular (SSS)

1. Laravel için neden Nginx tercih edilir? Nginx, düşük bellek tüketimiyle yüksek eşzamanlı bağlantıları daha verimli yönetir.

2. 502 Bad Gateway hatası ne anlama gelir? Genellikle PHP-FPM servisinin çalışmadığını veya socket yolunun uyuşmadığını gösterir.

3. Üretim ortamında performans nasıl artırılır? Laravel yapılandırma ve rota önbelleği kullanılmalıdır.


php artisan config:cache
php artisan route:cache

Sonuç

Bu rehberle Ubuntu üzerinde güvenli ve optimize edilmiş bir Laravel ortamı kurdunuz. Nginx performansı ve PHP-FPM mimarisi sayesinde uygulamanız üretime hazırdır.

Profesyonel projeleriniz için bu yapılandırmayı Rabisu Bulut altyapısında hemen deneyebilirsiniz.