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.

"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.