Skip to main content

🚀 Laravel LEMP Kurulumu Sonrası Performans Optimizasyonu


💡 Bu Rehberde Ne Öğreneceksiniz

Bu rehberde, Ubuntu 22.04 üzerinde Laravel uygulamanızı kurduktan sonra, üretim ortamına (production) uygun hale getirmeniz için uygulayabileceğiniz performans, güvenlik ve önbellek (cache) ayarlarını adım adım inceleyeceğiz.


⚙️ 1. Laravel Uygulamasını Üretim Moduna Alın

.env dosyasındaki ortam ayarlarını değiştirin:

nano /var/www/gezilistesi/.env

Aşağıdaki satırları güncelleyin:

APP_ENV=production
APP_DEBUG=false
APP_URL=https://rabisu.cloud

Bu ayar, hata detaylarını kullanıcıya göstermemek ve güvenliği artırmak için önemlidir.


⚡ 2. Laravel Cache ve Optimize Komutlarını Çalıştırın

Laravel, konfigürasyon, rota ve görünüm dosyalarını belleğe önbellekleyerek performansı artırabilir.

Tüm optimizasyon komutlarını çalıştırın:

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize

Bu komutlar, uygulama yükleme süresini ciddi oranda azaltır.


🔐 3. Dosya ve İzin Güvenliğini Sağlayın

Laravel dizininde gereksiz izinleri kaldırın ve yalnızca gerekli klasörlere yazma yetkisi verin:

sudo chown -R www-data:www-data /var/www/gezilistesi/storage
sudo chown -R www-data:www-data /var/www/gezilistesi/bootstrap/cache
sudo chmod -R 755 /var/www/gezilistesi
sudo chmod -R 775 /var/www/gezilistesi/storage /var/www/gezilistesi/bootstrap/cache

Bu ayar, Laravel’in log ve cache işlemleri yapabilmesini sağlar, diğer dosyaları ise koruma altına alır.


🌐 4. Nginx İçin GZIP ve Cache Ayarlarını Aktifleştirin

Nginx yapılandırma dosyanızı açın:

sudo nano /etc/nginx/sites-available/gezilistesi

Aşağıdaki satırları server bloğunun içine ekleyin:

# GZIP sıkıştırma
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml+rss;
gzip_min_length 1000;

# Statik dosyalar için tarayıcı önbellekleme
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
access_log off;
}

Nginx’i test edip yeniden yükleyin:

sudo nginx -t
sudo systemctl reload nginx

Bu sayede CSS, JS ve görseller tarayıcıda önbelleğe alınır, sayfa yükleme süresi hızlanır.


🧩 5. PHP-FPM Ayarlarını Optimize Edin

PHP-FPM konfigürasyon dosyasını düzenleyin:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

Aşağıdaki değerleri optimize edin:

pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 10

Değişikliklerden sonra PHP-FPM servisini yeniden başlatın:

sudo systemctl restart php8.1-fpm

Bu ayarlar, yoğun trafik altında PHP isteklerinin daha verimli yönetilmesini sağlar.


🧱 6. Veritabanı Performansını Artırın

MySQL konfigürasyon dosyasını düzenleyin:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Aşağıdaki değerleri ekleyin veya güncelleyin:

query_cache_type = 1
query_cache_limit = 1M
query_cache_size = 64M
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M

MySQL servisini yeniden başlatın:

sudo systemctl restart mysql

Bu ayarlar, sorgu önbelleğini aktif eder ve büyük tablolarla çalışırken verimi artırır.


🛡️ 7. SSL (HTTPS) Desteğini Ekleyin

Let’s Encrypt sertifikası ile HTTPS kurun:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d rabisu.cloud

Sertifikalar 90 günde bir otomatik yenilenir, güvenli bağlantı sağlanır.


📊 8. Laravel Log Yönetimini Optimize Edin

Log dosyalarının çok büyümesini önlemek için log rotasyonu etkinleştirin:

sudo nano /etc/logrotate.d/laravel

İçeriği ekleyin:

/var/www/gezilistesi/storage/logs/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 www-data www-data
}

Bu yapı, log dosyalarını her gün döndürür ve sunucuda gereksiz disk alanı kullanımını önler.


🧠 9. Cache Driver’ı Değiştirin (Redis veya Memcached)

Daha hızlı bir cache sistemi için Redis önerilir:

sudo apt install redis-server -y

.env dosyanızda şu değişikliği yapın:

CACHE_DRIVER=redis
SESSION_DRIVER=redis

Redis, dosya tabanlı cache’e göre 5-10 kat daha hızlıdır.


🏁 Sonuç

Tebrikler! Artık Laravel uygulamanız yalnızca kurulu değil, aynı zamanda üretim seviyesinde optimize edilmiş durumda 🎯 Nginx önbelleklemesi, PHP-FPM ayarları, SSL ve Redis entegrasyonu sayesinde yüksek trafik altında bile kararlı performans elde edeceksiniz.

💡 Bu optimizasyonları kendi projenizde hemen uygulayabilir veya Rabisu Bulut üzerinde tam optimize edilmiş Laravel sunucularını kullanarak anında deneyebilirsiniz. ☁️