Merhaba! Ben Aykhan, 1999 doğumlu bir Azerbaycanlıyım ve 2017 yılından bu yana programlamayla ilgileniyorum. Teknolojinin büyülü dünyası beni her zaman etkilemiştir ve bu merakımı kendi blogumda paylaşarak daha geniş bir kitleyle buluşturmayı amaçlıyorum.

"Laravel Octane ile RoadRunner Kullanımı: Yüksek Performanslı PHP Çalıştırma Rehberi"
Geliştiriciler için performans, her zaman büyük bir öncelik olmuştur. Laravel gibi güçlü framework'ler, geleneksel PHP sunucularına kıyasla daha gelişmiş özellikler sunsa da, yoğun işlem gerektiren uygulamalarda daha fazla optimizasyon gerekebilir. İşte tam da bu noktada Laravel Octane ve RoadRunner devreye giriyor.
Octane ve RoadRunner Nedir?
Laravel Octane
Laravel Octane, Laravel uygulamalarını performans açısından optimize eden bir paket olup, uzun ömürlü worker tabanlı sistemler ile çalışır. Geleneksel PHP modelinde her istekte yeni bir süreç başlatılırken, Octane aynı çalışan süreçler üzerinden işlemleri yürütür, böylece performans ciddi şekilde artar.
RoadRunner
RoadRunner ise PHP için yüksek performanslı bir uygulama sunucusu olup, Swoole veya ReactPHP gibi çözümlerden farklı olarak Go tabanlı bir yapıya sahiptir. Yani, çok hızlı çalışır ve yüksek ölçeklenebilirlik sağlar.
Neden RoadRunner Kullanmalıyız?
RoadRunner şu avantajları sunar:
✅ Performans: Geleneksel PHP sunucularına kıyasla çok daha hızlıdır.
✅ Düşük Hafıza Kullanımı: Uzun süre çalışan iş parçacıkları kullanarak bellek yönetimini iyileştirir.
✅ Kolay Entegrasyon: Laravel Octane ile birlikte sorunsuz çalışır.
✅ İşlemci Verimliliği: Go dili ile çalıştığı için PHP’nin doğal sınırlarını aşar.
Kurulum ve Yapılandırma
Adım 1: Laravel Octane ve RoadRunner Yükleme
İlk olarak, Laravel Octane ve RoadRunner'ın komut satırı aracını yükleyelim:
composer require spiral/roadrunner-cli --dev
Adım 2: RoadRunner Binary İndirme
RoadRunner, sisteminize uygun olan rr.exe dosyasını otomatik olarak indirir:
./vendor/bin/rr get
Bu adım, RoadRunner'ın çalışması için gerekli olan binary dosyayı yükler.
Adım 3: Laravel Octane’yi RoadRunner ile Başlatma
Şimdi Octane’yi RoadRunner kullanarak çalıştırabiliriz:
php artisan octane:start --server=roadrunner
Bu komut, Laravel’i RoadRunner ile başlatır ve yüksek performanslı bir işlem sunucusu oluşturur.
RoadRunner ile Octane Konfigürasyonu
RoadRunner ve Octane’nin sorunsuz çalışması için bazı yapılandırmaları gözden geçirmek gerekebilir. config/octane.php
dosyanızı açın ve server
değerini şu şekilde RoadRunner olarak ayarlayın:
'server' => env('OCTANE_SERVER', 'roadrunner'),
Eğer cache kullanıyorsanız ancak geliştirme sürecinde bazı çakışmalar yaşanıyorsa, şu satırı düzenleyerek cache motorunu değiştirebilirsiniz:
'cache' => [
'store' => env('OCTANE_CACHE_STORE', 'array'), // Geliştirme için 'array' önerilir.
],
Geliştirme Sürecinde Dikkat Edilmesi Gerekenler
1️⃣ Cache Çakışmalarını Önleme
Laravel Octane worker tabanlı çalıştığı için, her worker kendi belleğini yönetir. Bu yüzden, değişiklikler bazen anında yansımayabilir. Bunu önlemek için şu komutları çalıştırın:
php artisan octane:restart
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
2️⃣ Nginx ile Kullanma
Eğer Octane’yi Nginx ile çalıştırmak istiyorsanız, Nginx’i bir ters proxy olarak kullanabilirsiniz. Bunun için /etc/nginx/sites-available/default
dosyanızı şu şekilde güncelleyin:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name domain.com;
server_tokens off;
root /home/forge/domain.com/public;
index index.php;
charset utf-8;
location /index.php {
try_files /not_exists @octane;
}
location / {
try_files $uri $uri/ @octane;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/domain.com-error.log error;
error_page 404 /index.php;
location @octane {
set $suffix "";
if ($uri = /index.php) {
set $suffix ?$query_string;
}
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header SERVER_PORT $server_port;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_pass http://127.0.0.1:8000$suffix;
}
}
Son olarak Nginx’i yeniden başlatın:
sudo systemctl restart nginx
Sonuç
Laravel Octane ve RoadRunner PHP uygulamalarını yüksek performanslı çalıştırmanın en etkili yollarından biridir. Eğer mikro servisler, yüksek ölçekli uygulamalar veya hızlı API’ler geliştiriyorsan, bu yapılandırma ile çok daha hızlı ve verimli bir sunucu ortamı kurabilirsin.
Daha fazla detay için şu kaynaklara göz atabilirsin:
- Laravel Octane Dokümantasyonu
- RoadRunner Resmi Sitesi
- Laravel ve RoadRunner Kullanımı GitHub Tartışmaları