Sunucuya MongoDB Kurulumu ve Laravel entegrasyonu: Performans, Güvenlik ve Entegrasyon Üzerine Detaylı Rehber

"Sunucuya MongoDB Kurulumu ve Laravel entegrasyonu: Performans, Güvenlik ve Entegrasyon Üzerine Detaylı Rehber"

MongoDB, modern web uygulamalarında esnek veri modeli ve ölçeklenebilir mimarisi sayesinde yaygın olarak tercih edilen NoSQL bir veritabanıdır. Özellikle yüksek hacimli veri işleyen sistemlerde, ilişkisel veritabanlarının hantallığını ortadan kaldırarak ciddi bir avantaj sunar.

Bu makalede, Ubuntu tabanlı bir sunucuya MongoDB’nin nasıl kurulacağı, yapılandırılacağı ve güvenli hale getirileceği detaylı bir şekilde açıklanacaktır. Ayrıca, Laravel gibi popüler frameworklerle nasıl entegre edileceğine dair önemli bilgiler verilecektir.


📌 Neden MongoDB?

MongoDB aşağıdaki özellikleriyle öne çıkar:

  • JSON-benzeri belge yapısı ile esnek veri modeli

  • Kolay sharding (bölümlendirme) ile yatay ölçeklenebilirlik

  • Yüksek performanslı sorgular (özellikle denormalize yapılarda)

  • Gerçek zamanlı veri analizi ve full-text search

  • Offline/online kullanım durumları için ideal


🖥️ Sisteme MongoDB 6 Kurulumu (Ubuntu 20.04 / 22.04)

1. Gerekli GPG Anahtarını ve Repository'yi Ekle

MongoDB’nin resmi deposunu eklemek için aşağıdaki komutları uygulayın:

curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \
  sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | \
  sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

2. MongoDB’yi Kur

sudo apt update
sudo apt install -y mongodb-org

Bu işlemden sonra MongoDB’nin tüm gerekli servisleri ve CLI araçları kurulmuş olacak.


🚀 MongoDB Servisini Başlat ve Otomatikleştir

sudo systemctl start mongod
sudo systemctl enable mongod

Durum kontrolü:

sudo systemctl status mongod

Eğer servis başlamadıysa, loglara bakarak journalctl -xe üzerinden hata tespiti yapabilirsin.


🔐 Güvenlik ve Kullanıcı Tanımlama

MongoDB kurulumundan sonra varsayılan olarak kimlik doğrulama (authentication) kapalıdır. Aşağıdaki adımlarla güvenli hale getirebilirsin:

1. Mongo Shell'e Giriş

mongosh

2. Admin Kullanıcısı Oluştur

use admin
db.createUser({
  user: "root",
  pwd: "zorBirSifre123",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
})

3. mongod.conf Dosyasını Düzenle

sudo nano /etc/mongod.conf

Aşağıdaki bölümü aktif hale getir:

security:
  authorization: enabled

Ardından:

sudo systemctl restart mongod

Bu işlemden sonra MongoDB sadece kullanıcı girişiyle çalışacaktır.


🌐 Laravel İle MongoDB Kullanımı

Laravel tarafında MongoDB’yi tanıtmak için jenssegers/laravel-mongodb paketini kullanabilirsin:

composer require jenssegers/mongodb

.env dosyasına aşağıdaki gibi Mongo bağlantısını tanımla:

DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=senin_db
DB_USERNAME=root
DB_PASSWORD=zorBirSifre123

Ardından config/database.php içinde mongodb driver’ını tanımlaman gerekiyor (paketin dökümanında mevcut).


🛡️ Ekstra Güvenlik Önlemleri

  • Sunucuda ufw varsa, sadece belirli IP’lere 27017 portunu aç:

sudo ufw allow from 192.168.1.1 to any port 27017
  • Production ortamlarında Mongo’yu dışarıya açma; sadece localhost üzerinden Laravel erişsin.

  • Düzenli olarak mongodump ile yedek al.

Aykhan Gasimzade Aykhan Gasimzade verified icon
Full Stack Developer

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.