AI Asistanı

Bu makale hakkında size nasıl yardımcı olabilirim?

AI Analiz Ediyor...

AI Yanıtı

Powered by Burak Beşli

Ubuntu Sunucu ile Laravel & Ngnix Yapılandırması
🔐 Sunucu

Ubuntu Sunucu ile Laravel & Ngnix Yapılandırması

08 Aralık 2025 7 dk okuma
Burak Beşli

Burak Beşli

Yazar

İşte size Ubuntu sunucu üzerinde Laravel & Nginx yapılandırması hakkında, teknik ve detaylı bir dilde yazılmış, SEO uyumlu bir blog makalesi:

Ubuntu Sunucu ile Laravel & Nginx Yapılandırması

Laravel, modern web uygulamaları geliştirmek için popüler bir PHP framework'üdür. Nginx ise yüksek performanslı bir web sunucusudur. Bu makalede, Ubuntu sunucu üzerinde Laravel uygulamasını Nginx ile nasıl yapılandıracağınızı adım adım anlatacağım. Bu kurulum, hem geliştirme hem de üretim ortamları için uygundur.

Ön Gereksinimler

Bu kılavuza başlamadan önce aşağıdaki ön koşulların sağlandığından emin olun:

  • Ubuntu Sunucu: Temiz bir Ubuntu sunucu kurulumuna ihtiyacınız var. (Örneğin, Ubuntu 20.04 veya 22.04)
  • SSH Erişimi: Sunucuya SSH ile erişebilmeniz gerekiyor.
  • Sudo Yetkileri: Yönetici (sudo) yetkilerine sahip bir kullanıcı.

Adım 1: Sunucuyu Güncelleme

İlk adım, sunucunuzdaki paket listesini güncellemek ve mevcut paketleri yükseltmektir. Bu, son güvenlik yamalarının ve güncellemelerin yüklü olduğundan emin olmanızı sağlar.

sudo apt update && sudo apt upgrade -y

Adım 2: Gerekli Paketleri Yükleme

Laravel ve Nginx'in çalışması için gerekli olan PHP, Composer, Nginx ve diğer bağımlılıkları yükleyelim.

PHP ve Gerekli Uzantıları Yükleme

Laravel, PHP ile çalışır ve belirli PHP uzantılarına ihtiyaç duyar. Aşağıdaki komut, PHP 8.1 ve gerekli uzantıları yükler (Laravel'in önerdiği versiyon). Farklı bir PHP versiyonu kullanmak istiyorsanız, sürüm numarasını buna göre değiştirin.

sudo apt install php8.1 php8.1-fpm php8.1-cli php8.1-mbstring php8.1-xml php8.1-mysql php8.1-gd php8.1-curl php8.1-zip

PHP Sürümünü Kontrol Etme

Yüklemenin başarılı olup olmadığını doğrulamak için PHP sürümünü kontrol edin:

php -v

Bu komut, yüklü olan PHP sürümünü görüntüler.

Composer Yükleme

Composer, PHP için bağımlılık yönetim aracıdır ve Laravel projelerinde paketleri yüklemek için gereklidir.

curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer sudo chmod +x /usr/local/bin/composer

Composer Sürümünü Kontrol Etme

Composer'ın doğru şekilde kurulduğunu doğrulamak için sürümünü kontrol edin:

composer -v

Nginx Yükleme

Nginx, web sunucusu olarak Laravel uygulamasını sunmak için kullanılır.

sudo apt install nginx -y

Nginx Durumunu Kontrol Etme

Nginx'in çalışır durumda olduğundan emin olun:

sudo systemctl status nginx

Eğer Nginx çalışmıyorsa, aşağıdaki komutlarla başlatabilir ve otomatik olarak başlamasını sağlayabilirsiniz:

sudo systemctl start nginx sudo systemctl enable nginx

Adım 3: Laravel Projesi Oluşturma

Şimdi Laravel projesini oluşturacağız. Web sunucusunun erişebileceği bir dizinde (örneğin /var/www/) yeni bir Laravel projesi oluşturmak en iyi uygulamadır.

sudo mkdir -p /var/www/ sudo chown -R $USER:$USER /var/www/ cd /var/www/ composer create-project --prefer-dist laravel/laravel mylaravelapp

Burada mylaravelapp projenizin adıdır. İstediğiniz bir isimle değiştirebilirsiniz.

Adım 4: Nginx'i Laravel İçin Yapılandırma

Nginx'i Laravel projesi için yapılandırmak için, yeni bir sanal host (virtual host) dosyası oluşturmanız gerekir.

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

Aşağıdaki yapılandırmayı dosyaya yapıştırın. mylaravelapp ve your_domain.com değerlerini kendi projenizin adı ve alan adıyla değiştirin.

server { listen 80; servername yourdomain.com; # Alan adınızı buraya girin root /var/www/mylaravelapp/public; index index.php index.html index.htm; location / { tryfiles $uri $uri/ /index.php?$querystring; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # PHP sürümünüzü kontrol edin } location ~ /\.ht { deny all; } }

Açıklamalar:

  • listen 80;: Sunucunun 80 portunu dinlemesini sağlar.
  • servername yourdomain.com;: Alan adınızı belirtir.
  • root /var/www/mylaravelapp/public;: Laravel uygulamasının public dizinini kök dizin olarak ayarlar.
  • index index.php index.html index.htm;: İndeks dosyalarını belirtir.
  • location / { ... }: Tüm istekleri index.php dosyasına yönlendirir.
  • location ~ \.php$ { ... }: PHP dosyalarının PHP-FPM aracılığıyla işlenmesini sağlar.
  • fastcgi_pass unix:/run/php/php8.1-fpm.sock;: PHP-FPM soketini belirtir. PHP sürümünüze göre bu yolu güncelleyin.

Sanal Host'u Etkinleştirme

Sanal host dosyasını oluşturduktan sonra, etkinleştirmeniz gerekir.

sudo ln -s /etc/nginx/sites-available/mylaravelapp /etc/nginx/sites-enabled/

Nginx Yapılandırmasını Test Etme

Yapılandırma dosyasında herhangi bir hata olup olmadığını kontrol edin:

sudo nginx -t

Eğer "syntax is ok" ve "test is successful" mesajlarını alırsanız, yapılandırma doğru demektir.

Nginx'i Yeniden Başlatma

Yapılandırma değişikliklerinin etkili olması için Nginx'i yeniden başlatın:

sudo systemctl restart nginx

Adım 5: Laravel'i Yapılandırma

Laravel uygulamasının bazı temel ayarlarını yapılandırmamız gerekiyor.

Uygulama Anahtarını Oluşturma

Laravel uygulamasının bir uygulama anahtarına ihtiyacı vardır. Bu anahtar, oturumları ve diğer güvenlik özelliklerini güvenceye almak için kullanılır.

cd /var/www/mylaravelapp php artisan key:generate

Bu komut, .env dosyasında yeni bir uygulama anahtarı oluşturacaktır.

Dizin İzinlerini Ayarlama

Laravel'in storage ve bootstrap/cache dizinlerine yazma iznine ihtiyacı vardır.

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

Önemli: Bu izinler, güvenlik açısından hassas olabilir. Üretim ortamında, daha kısıtlayıcı izinler kullanmanız önerilir.

Veritabanı Yapılandırması

Laravel uygulamasının veritabanına bağlanabilmesi için .env dosyasını düzenlemeniz gerekir.

sudo nano /var/www/mylaravelapp/.env

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

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DBDATABASE=yourdatabase_name DBUSERNAME=yourdatabase_username DBPASSWORD=yourdatabase_password

Adım 6: Güvenlik Duvarını Yapılandırma (UFW)

Ubuntu'da UFW (Uncomplicated Firewall) güvenlik duvarı varsayılan olarak bulunur. Nginx'e erişime izin vermek için UFW'yi yapılandıralım.

sudo ufw allow 'Nginx HTTP' sudo ufw allow 'Nginx HTTPS' sudo ufw enable

Bu komutlar, 80 (HTTP) ve 443 (HTTPS) portlarına trafiğe izin verir.

Adım 7: Tarayıcıdan Erişimi Kontrol Etme

Artık tarayıcınızdan your_domain.com adresine giderek Laravel uygulamanıza erişebilirsiniz. Laravel'in karşılama sayfasını görmelisiniz.

Ek İpuçları

  • HTTPS: Üretim ortamında, sitenizi HTTPS ile güvenceye almanız şiddetle tavsiye edilir. Let's Encrypt gibi ücretsiz SSL sertifika sağlayıcıları kullanabilirsiniz.
  • Önbellekleme: Laravel'in önbellekleme özelliklerini kullanarak uygulamanızın performansını artırabilirsiniz.
  • Günlükleme: Laravel'in günlükleme özelliklerini kullanarak hataları ve uyarıları takip edebilirsiniz.
  • Dağıtım: Uygulamanızı dağıtmak için, Git ve otomatik dağıtım araçlarını kullanabilirsiniz.

Kod Örnekleri (Özet)

İşte makalede kullanılan bazı önemli kod örneklerinin özeti:

PHP Sürümünü Kontrol Etme

php -v

Composer Sürümünü Kontrol Etme

composer -v

Nginx Durumunu Kontrol Etme

sudo systemctl status nginx

Laravel Projesi Oluşturma

composer create-project --prefer-dist laravel/laravel mylaravelapp

Uygulama Anahtarını Oluşturma

php artisan key:generate

Sonuç

Bu makalede, Ubuntu sunucu üzerinde Laravel uygulamasını Nginx ile nasıl yapılandıracağınızı adım adım öğrendiniz. Bu kurulum, hem geliştirme hem de üretim ortamları için temel oluşturur. Daha karmaşık yapılandırmalar için, Laravel ve Nginx'in resmi belgelerine başvurabilirsiniz. Başarılar!


Yorum Yapmak İçin Giriş Yapın

Bu makale hakkında düşüncelerinizi paylaşmak için üye olun veya giriş yapın.