15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
18.10.2024

Node.js Nasıl Kurulur: Tüm Platformlar İçin Eksiksiz Teknik Kılavuz

Node.js, Chrome’un V8 motoru üzerine inşa edilmiş, tarayıcı ortamı dışında JavaScript kodu çalıştıran açık kaynaklı, çapraz platform bir JavaScript çalışma zamanıdır. Engelleyici olmayan, olay güdümlü I/O modeli, onu yüksek verimli API’ler, gerçek zamanlı uygulamalar, mikro hizmetler ve sunucu tarafı araçları oluşturmak için baskın tercih haline getirir. Node.js’i doğru şekilde kurmak — işletim sisteminiz ve iş akışınız için doğru yöntemi kullanarak — kararlı, tekrarlanabilir bir geliştirme ortamının temelidir.

Bu kılavuz, her büyük kurulum yolunu kapsar: resmi yükleyiciler, işletim sistemi yerel paket yöneticileri, NodeSource ikili dağıtımları ve nvm (Node Version Manager). Ayrıca çoğu öğreticinin tamamen atladığı sürüm yönetimi, global paket hijyeni ve üretim sunucusu konularını da ele alır.

Doğru Kurulum Yöntemini Seçmek

Tek bir komut çalıştırmadan önce, her yöntemin size gerçekte ne sağladığını anlayın — çünkü yanlış seçim daha sonra gerçek operasyonel sorunlar yaratır.

YöntemEn İyi KullanımSürüm EsnekliğiRoot GerekliNotlar
Resmi `.pkg` / `.msi` yükleyiciHızlı yerel kurulum, yeni başlayanlarYalnızca tek sürümEvetSistem PATH’ini kirletir; sürüm değiştirmek zordur
İşletim sistemi paket yöneticisi (`apt`, `brew`, `yum`)Sistem geneli kurulumlar, CI sunucularıSınırlıEvetGenellikle güncel olmayan sürümler sunar
NodeSource ikili deposuLinux sunucuları, öngörülebilir LTS sabitlemeKurulum başınaEvetNodeSource tarafından bakımı yapılır; üretim için iyidir
`nvm` (Node Version Manager)Çok projeli geliştirmeTam, kabuk başınaHayırGeliştirici iş istasyonları için altın standart
`fnm` (Fast Node Manager)Performans odaklı CI süreçleriTamHayırRust tabanlı, nvm’den önemli ölçüde daha hızlı
Docker / konteyner imajıİzole, tekrarlanabilir derlemelerTam, konteyner başınaBağlıdırMikro hizmetler ve CI/CD için en iyisi

Temel karar kuralı: Bir geliştirici iş istasyonunda her zaman nvm veya fnm kullanın. Bir üretim Linux sunucusunda NodeSource deposunu veya konteyner imajını kullanın. Ubuntu/Debian’da işletim sistemi varsayılan paket yöneticisinin Node.js paketini asla kullanmayın — bu paket rutin olarak mevcut LTS’nin yıllarca gerisinde kalan sürümler sunar.

Linux’a Node.js Kurulumu

Linux, Node.js üretim iş yüklerinin büyük çoğunluğunun gerçekten çalıştığı yerdir. Bunu burada doğru yapmak, başka herhangi bir yerden daha önemlidir. Bir VPS Hosting ortamına dağıtım yapıyorsanız, aşağıdaki yöntemler doğrudan uzak sunucunuza uygulanır.

Yöntem 1: NodeSource İkili Dağıtımları (Sunucular için Önerilen)

NodeSource, Node.js LTS ve Mevcut sürüm hatlarını tam olarak takip eden güncel, imzalı .deb ve .rpm paketlerini yönetir. Bu, üretim Linux sunucuları için en güvenilir yaklaşımdır.

Ubuntu / Debian:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Fedora / CentOS / RHEL / Rocky Linux:

curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejs

Kurulumdan sonra hem çalışma zamanını hem de birlikte gelen paket yöneticisini doğrulayın:

node -v
npm -v

Kritik tuzak: curl | bash kalıbı, uzak bir betiği root olarak çalıştırır. Güvenlik açısından hassas ortamlarda, betiği önce indirin, inceleyin, ardından çalıştırın:

curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
less nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install -y nodejs

Yöntem 2: nvm — Node Version Manager (Geliştiriciler için Önerilen)

nvm, Node.js’i tamamen ana dizininize (~/.nvm) kurar, sudo gerektirmez ve proje başına veya kabuk oturumu başına sürüm değiştirmenize olanak tanır. Bu, farklı uygulamaların farklı Node.js sürümleri gerektirdiği herhangi bir iş istasyonu veya çok kiracılı sunucu için doğru araçtır.

nvm kurulumu:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Yükleyici, gerekli kabuk başlatma kodunu ~/.bashrc, ~/.zshrc veya ~/.profile dosyasına ekler. Kabuğunuzu yeniden yükleyin:

source ~/.bashrc

En son LTS sürümünü kurun:

nvm install --lts

Numarasıyla belirli bir sürümü kurun:

nvm install 20.14.0

Kurulu sürümler arasında geçiş yapın:

nvm use 18
nvm use 20

Yeni kabuk oturumları için kalıcı bir varsayılan belirleyin:

nvm alias default 20

Yerel olarak kurulu tüm sürümleri listeleyin:

nvm ls

Aktif sürümü doğrulayın:

node -v
npm -v

Uç durum — .nvmrc dosyaları: Proje kök dizininize yalnızca sürüm dizesini içeren bir .nvmrc dosyası yerleştirin (örn. 20.14.0). O dizin içinde nvm use çalıştırmak otomatik olarak doğru sürümü seçer. Bu, sürüm kaymasının ince hatalara neden olduğu ekip ortamları için gereklidir.

echo "20.14.0" > .nvmrc
nvm use

Yöntem 3: Sistem Paket Yöneticisi (Araçlar için Kabul Edilebilir, Üretim için Değil)

Varsayılan apt veya dnf depoları, sıklıkla güncel olmayan Node.js sürümleri sunar. Bunu yalnızca kritik olmayan araçlar için kullanın:

sudo apt-get update
sudo apt-get install -y nodejs npm

Fedora / RHEL 9+ üzerinde:

sudo dnf install nodejs

macOS’a Node.js Kurulumu

Yöntem 1: Homebrew (Önerilen)

Homebrew, macOS geliştirme ortamları için fiili paket yöneticisidir. Homebrew henüz kurulu değilse, brew.sh adresindeki talimatları izleyin.

brew install node

Belirli bir ana sürümü kurmak için (örn. Node.js 20 LTS):

brew install node@20
brew link --overwrite node@20

Doğrulayın:

node -v
npm -v

Homebrew tuzağı: brew upgrade node, eski bir sürüme sabitlenmiş projeleri bozabilecek en son sürüme yükseltir. Birden fazla projeyi yönetiyorsanız, macOS’ta da nvm kullanın — iş akışı Linux ile aynıdır.

Yöntem 2: macOS’ta nvm

nvm kurulum ve kullanım komutları Linux ile aynıdır. Zsh kullanan macOS kullanıcıları (Catalina’dan bu yana varsayılan), kurulumdan sonra ~/.zshrc dosyasının nvm başlatma bloğunu içerdiğini doğrulamalıdır:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"

Yöntem 3: Resmi .pkg Yükleyici

.pkg yükleyicisini nodejs.org adresinden indirin, çalıştırın ve sihirbazı izleyin. Bu, tek bir Node.js sürümüne ihtiyaç duyan ve sürüm değiştirme planı olmayan kullanıcılar için en basit yoldur. Kurulumdan sonra Terminal’i açın ve doğrulayın:

node -v
npm -v

Windows’a Node.js Kurulumu

Yöntem 1: Resmi .msi Yükleyici

Windows yükleyicisini (.msi) nodejs.org adresinden indirin. Üretime yakın çalışmalar için LTS derlemesini, en son özellikleri denemek için Current derlemesini seçin. Yükleyici, Node.js’i sistem PATH‘ine otomatik olarak kaydeder.

Kurulumdan sonra Komut İstemi’ni veya PowerShell’i açın ve doğrulayın:

node -v
npm -v

Önemli: Yükleyici sihirbazı sırasında, yerel modüller (C++ eklentileri) için Chocolatey ve derleme araçlarını kurmak üzere isteğe bağlı bir adım vardır. Proje bağımlılıklarınız bcrypt, sharp veya node-gyp bağımlı modüller gibi paketler içeriyorsa bunu etkinleştirin. Atlamak, daha sonra anlaşılması güç derleme hatalarına neden olur.

Yöntem 2: Chocolatey

Chocolatey, betiklenmiş, tekrarlanabilir kurulumları mümkün kılan bir Windows paket yöneticisidir — geliştirici makine sağlama için değerlidir.

Yükseltilmiş (Yönetici) Komut İstemi’ni veya PowerShell’i açın:

choco install nodejs-lts

Doğrulayın:

node -v
npm -v

Yöntem 3: nvm-windows

Linux/macOS için nvm‘nin Windows’ta çalışmadığını unutmayın. Windows eşdeğeri, benzer bir arayüze sahip ayrı bir proje olan nvm-windows‘dur.

Yükleyiciyi nvm-windows GitHub sürümler sayfasından indirin. Kurulumdan sonra:

nvm install lts
nvm use lts
node -v

Windows Subsystem for Linux (WSL2): Windows’ta ciddi Node.js çalışması yapan geliştiriciler, Ubuntu ile WSL2’yi güçlü bir şekilde değerlendirmelidir. WSL2 içinde, Linux nvm kurulumu yerel Linux ile aynı şekilde çalışır ve geliştirme deneyimi üretim sunucusu ortamlarıyla önemli ölçüde daha tutarlıdır.

LTS ve Current’ı Anlamak: Hangi Sürümü Kurmalısınız

Node.js, hangi sürümü dağıtmanız gerektiğini doğrudan etkileyen öngörülebilir bir sürüm takvimi izler.

Sürüm TürüKadansDestek SüresiKullanım Durumu
**LTS (Uzun Vadeli Destek)**Çift numaralı majörler (18, 20, 22)Toplam 30 ay (12 Aktif + 18 Bakım)Üretim uygulamaları, kurumsal iş yükleri
**Current**Tek numaralı majörler (19, 21, 23)Yalnızca 6 ayÖzellik testi, kütüphane yazarları
**Bakım LTS**Eskiyen LTS sürümleriYalnızca güvenlik düzeltmeleriTaşınan eski sistemler

Temel kural: Üretimde her zaman LTS dağıtın. Current’ı yalnızca yaklaşan Node.js özellikleriyle uyumluluğu test etmeniz gerektiğinde izole geliştirme ortamlarında kullanın.

Node.js’i Güncel Tutmak

Güncel olmayan Node.js sürümleri, uygulamanızı bilinen V8 motoru güvenlik açıklarına, kullanımdan kaldırılmış TLS yapılandırmalarına ve bozuk bağımlılık uyumluluğuna maruz bırakır. Node.js yükseltmelerini isteğe bağlı iyileştirmeler olarak değil, güvenlik bakımı olarak değerlendirin.

nvm ile (tüm platformlar):

nvm install --lts
nvm reinstall-packages <old-version>
nvm alias default node

nvm reinstall-packages komutu, global olarak kurulu paketleri eski sürümden yenisine taşır — çoğu kılavuzun atladığı ve önemli zaman kazandıran bir ayrıntı.

Debian/Ubuntu’da NodeSource ile:

sudo apt-get update && sudo apt-get upgrade nodejs

macOS’ta Homebrew ile:

brew update && brew upgrade node

Windows’ta Chocolatey ile:

choco upgrade nodejs-lts

Global npm Paketlerini Yönetmek

Global npm paketleri, sistem genelinde erişilebilen CLI araçlarını kurar. Global kurulum listesini minimal tutun — projeye özgü araçlar, ortamlar arasında tekrarlanabilir derlemeler sağlamak için global kurulumlar yerine devDependencies‘a aittir.

Global paket kurun:

npm install -g yarn
npm install -g pm2
npm install -g typescript

Global olarak kurulu tüm paketleri listeleyin:

npm list -g --depth=0

Global paket kaldırın:

npm uninstall -g yarn

Yaygın üretime ilişkin global paketler:

  • pm2 — Node.js uygulamaları için süreç yöneticisi; Linux sunucularında kümeleme, otomatik yeniden başlatma ve günlük yönetimini gerçekleştirir
  • typescript — TypeScript derleyicisi (tsc)
  • nodemon — Kod değişikliklerinde Node.js sürecini otomatik olarak yeniden başlatan geliştirme dosya izleyicisi
  • dotenv-cli — Ortama özgü yapılandırma için .env dosyalarını yükler

nvm ve global paketler: nvm ile Node.js sürümlerini değiştirdiğinizde, önceki sürüm altında kurulan global paketler otomatik olarak kullanılabilir olmaz. Ya bunları yeniden kurun ya da taşımak için nvm reinstall-packages <previous-version> kullanın.

Kurulum Sonrası: Üretim Ortamları için npm Yapılandırması

Temiz bir Node.js kurulumu, üretime hazır olmadan önce birkaç ek yapılandırma adımı gerektirir.

npm kayıt defterini ayarlayın (isteğe bağlı, özel kayıt defterleri veya aynalar için):

npm config set registry https://registry.npmjs.org/

npm önbellek dizinini yapılandırın (sınırlı /tmp alanına sahip sunucularda geçerlidir):

npm config set cache /path/to/custom/cache

package-lock.json oluşturmayı devre dışı bırakın (yalnızca ekibiniz yalnızca yarn.lock kullanıyorsa):

npm config set package-lock false

Üretim için Node.js ortam değişkenini ayarlayın:

export NODE_ENV=production

Express.js, Next.js ve diğer çerçevelerin üretim optimizasyonlarını etkinleştirmesini sağlamak için bunu Linux sunucularında /etc/environment veya uygulamanızın systemd birim dosyasına ekleyin.

Node.js uygulamalarını bir Dedicated Server üzerinde çalıştırıyorsanız, uygulamanızın yeniden başlatmalardan sonra yeniden başlamasını garanti etmek için pm2‘i bir systemd hizmeti olarak yapılandırın:

pm2 start app.js --name "my-app"
pm2 startup systemd
pm2 save

Node.js’i Ters Proxy Arkasında Çalıştırmak

Üretim sunucularında, Node.js uygulamaları asla doğrudan 80 veya 443 numaralı bağlantı noktasında açığa çıkarılmamalıdır. Ters proxy olarak Nginx veya Apache kullanın ve TLS’yi proxy katmanında sonlandırın. Bu, kurulum adımının doğrudan etkinleştirdiği kritik bir mimari karardır.

3000 numaralı bağlantı noktasında çalışan bir Node.js uygulaması için minimal bir Nginx yapılandırması:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Bunu geçerli bir TLS sertifikasıyla eşleştirin. SSL Sertifikaları, kullanıcı verilerini, kimlik doğrulama tokenlarını veya API isteklerini işleyen herhangi bir Node.js uygulaması için isteğe bağlı değil, zorunludur. certbot aracılığıyla Let’s Encrypt, standart ücretsiz seçenektir; ticari sertifikalar kurumsal dağıtımlar için uygundur.

Paylaşımlı Hosting’de ve VPS’te Node.js

Sık karşılaşılan bir soru: Node.js paylaşımlı hostingde çalışabilir mi?

Standart Paylaşımlı Web Hosting ortamları, Node.js’i anlamlı bir şekilde desteklemez. Paylaşımlı hosting, PHP uygulamaları için tasarlanmıştır ve Node.js’in gerektirdiği kabuk erişimi, kalıcı süreç yönetimi veya özel bağlantı noktalarına bağlanma yeteneği sağlamaz.

Herhangi bir gerçek Node.js dağıtımı için en az bir VPS Hosting planına ihtiyacınız vardır. VPS, root erişimi, pm2 gibi kalıcı bir süreç yöneticisi ve Node.js sürümü ile çalışma zamanı yapılandırması üzerinde tam kontrol sağlar. Node.js ortamınızın yanında yönetilen bir kontrol paneline ihtiyaç duyuyorsanız, cPanel’li VPS, ham VPS erişimi ile yönetilen hosting arasında bir orta yol sunar.

Makine öğrenimi çıkarımı, video dönüştürme veya büyük ölçekli veri işleme gibi hesaplama yoğun Node.js iş yükleri için standart bir VPS yeterli olmayabilir. GPU Hosting, CPU’ya bağlı Node.js süreçlerinin kendi başına elde edemeyeceği donanım hızlandırmasını sağlar.

Teknik Temel Çıkarımlar Kontrol Listesi

Bunu dağıtım öncesi doğrulama kontrol listesi olarak kullanın:

  • Sürüm seçimi: Aktif bir LTS sürümü çalıştırdığınızı doğrulayın (node -v aktif destek penceresinde çift bir majör numara döndürmelidir)
  • Kurulum yöntemi ortamla eşleşiyor: Geliştirici makinelerinde nvm; sunucularda NodeSource veya konteyner
  • npm sürümü güncel: Node.js’i kurduktan sonra npm install -g npm@latest çalıştırın — birlikte gelen npm genellikle en son sürüm değildir
  • NODE_ENV ayarlandı: Tüm sunucu ortamlarında echo $NODE_ENV‘nin production döndürdüğünü doğrulayın
  • Süreç yöneticisi yapılandırıldı: pm2 list uygulamanızın çalıştığını gösteriyor ve pm2 startup çalıştırıldı
  • Ters proxy yerinde: Node.js doğrudan 80/443 numaralı bağlantı noktasında açığa çıkarılmıyor
  • TLS proxy’de sonlandırılıyor: Geçerli sertifika kurulu ve HTTPS yönlendirmeleri zorunlu kılınıyor
  • Global paket listesi minimal: npm list -g --depth=0 yalnızca temel CLI araçlarını gösteriyor
  • .nvmrc depoya işlendi: Tüm ekip üyelerinin ve CI süreçlerinin aynı Node.js sürümünü kullanmasını sağlar
  • Güvenlik güncellemeleri otomatikleştirildi: Bir cron görevi veya CI süreci aylık olarak yeni LTS yamalarını kontrol ediyor

SSS

Node.js LTS ve Current arasındaki fark nedir ve hangisini kurmalıyım?

LTS (Uzun Vadeli Destek) sürümleri, güvenlik ve kararlılık yamaları ile 30 ay desteklenen çift numaralı majörlerdir (18, 20, 22). Current sürümler, yalnızca 6 ay desteklenen tek numaralı majörlerdir. Herhangi bir üretim veya ekip geliştirme çalışması için LTS kurun. Current’ı yalnızca kısa vadeli özellik denemeleri için kullanın.

Kurulumdan sonra nvm neden “komut bulunamadı” gösteriyor?

nvm yükleyicisi, kabuğunuzun RC dosyasına (~/.bashrc veya ~/.zshrc) başlatma kodu ekler, ancak mevcut terminal oturumu bunu yeniden yüklememiştir. source ~/.bashrc (veya Zsh için source ~/.zshrc) çalıştırın ya da yeni bir terminal penceresi açın. Sorun devam ederse, RC dosyanızın sonunda nvm başlatma bloğunun var olduğunu manuel olarak doğrulayın.

Aynı sunucuda birden fazla Node.js sürümünü aynı anda çalıştırabilir miyim?

Evet, nvm ile. Her sürüm, ~/.nvm/versions/ altında kendi dizinine kurulur. Aktif sürümü nvm use <version> ile kabuk oturumu başına veya .nvmrc dosyası kullanarak proje başına değiştirebilirsiniz. Farklı Node.js sürümleri çalıştıran farklı süreçler çakışma olmadan bir arada var olabilir.

Node.js’i varsayılan Ubuntu/Debian apt deposundan neden kurmamalıyım?

Varsayılan Ubuntu ve Debian depoları, genellikle mevcut LTS’nin iki ila dört majör sürüm gerisinde kalan Node.js sürümleri sunar. Örneğin, Ubuntu 22.04 varsayılan olarak 2022’de kullanım ömrünü tamamlamış bir sürüm olan Node.js 12’yi sunar. Desteklenen, güncel bir sürüm edinmek için her zaman NodeSource deposunu veya nvm‘i kullanın.

Node.js’i tamamen kaldırıp sıfırdan başlamak için ne yapmalıyım?

Yöntem, nasıl kurulduğuna bağlıdır. NodeSource kurulumları için: sudo apt-get remove nodejs && sudo apt-get autoremove. nvm için: belirli sürümler için nvm uninstall <version>, veya ~/.nvm dizinini tamamen silin ve RC dosyanızdan başlatma satırlarını kaldırın. Homebrew için: brew uninstall node. macOS/Windows’ta resmi yükleyici için, sistemin standart uygulama kaldırıcısını kullanın ve /usr/local/lib/node_modules veya %AppData%npm altındaki kalan dizinleri manuel olarak kaldırın.

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın