Ghost Blog nasıl kurulur? Ubuntu sunucuda Ghost blog kurulumu

Sabitlendi Ghost
  • home-screenshot.png

    Ghost, JavaScript ile yazılan NodeJS tabanlı, veri tabanı olarak MySQL kullanan açık kaynak kodlu yeni nesil bir blog uygulamasıdır. Ghost’un basit ancak gelişmiş editörü sayesinde blog yazabilirsin.

    Ghost blog paylaşımlı hostinglerde çalışır mı?

    Ghost blog yazılımı maalesef paylaşımlı hostinglerde çalışmıyor. Sadece Ghost için özel hazırlanmış hostinglerde çalışabilir. Türkiye’de bildiğim kadarıyla böyle bir sunucu firması bulunmuyor. Dolayısıyla Ghost kullanabilmek için kendinize ait bir VPS / VSD sunucu olması gerekiyor.

    Ghost blog kurulumuna geçmeden önce Digitalocean marketplace ile Ghost’u tek tıkla zahmetsizce kurabilirsiniz. Üstelik aşağıdaki referans linkimi kayıt olursanız üç ay için 100 USD kredi kazanabilirsiniz.

    Digitalocean ile tek tıkla Ghost kurulumu [VİDEO]

    VPS/VDS sunucuda Ghost kurulumu

    Şimdi herhangi bir sunucu firmasından almış olduğunuz Ubuntu 16.04/18.04 veya Ubuntu 20.04 sunucuda Ghost kurulumunun nasıl olacağını anlatacağım.

    Ghost Blog sunucu gereksinimleri

    • Ubuntu 16.04/ 18.06/20.04 sunucu
    • Geçerli ve A kaydı girilmiş bir alan adı
    • Nginx Web sunucusu (SSL için en az 1.9.5 üzeri bir sürüm)
    • Desteklenen bir node.js sürüm. Desteklenen sürümlere bakınız.
    • MySQL 5.7/8 veri tabanı sunucusu
    • Systemd
    • En az 1 GB RAM (Swap kullanılabilir)
      Kuruluma başlamadan önce alan adı için bir A kaydı girdiğinizden ve DNS tam oturduğundan emin olun. Aksi halde SSL kurulumu sırasında hata alırsınız.

    Sunucu kurulumu

    Bu bölümde Ghost Blog kurulumuna geçmeden önce sunucuda Ghost için gerekli ön bağımlılıkları yükleyeceğiz ve ilk sunucu kurulumunu yapacağız.

    Sunucu saatini ayarlama

    İlk olarak sunucunun saatini ayarlayalım. Bu olası hata kayıtlarında tarih ve saatin doğru olması açısından önemlidir. Aşağıdaki komutu çalıştırarak sunucunun saatini ayarlayabiliriz.

    sudo dpkg-reconfigure tzdata
    

    Açılan listeden Europe’yi ardından Istanbul’u seçin.

    Temel güvenlik duvarı kurulumu

    Sunucunun sadece belirli bağlantılara izin vermesini sağlamak için UFW güvenlik duvarı kuracağız.

    Sunucuda oturum açmamızı sağlan OpenSSH, UFW’de kayıtlıdır. Aşağıdaki komutu yazarak bunu görebilirsiniz.

    Güvenlik duvarının SSH bağlantılarına izin verdiğinden emin olmalıyız, böylece bir dahaki sefere tekrar oturum açabiliriz. SSH bağlantılarına aşağıdaki komutu yazarak izin verebiliriz.

    ufw allow OpenSSH
    

    Daha sonra yazarak güvenlik duvarını etkinleştirebiliriz:

    ufw enable
    

    Gelen uyarıya y deyip ENTER tuşuna basın.

    Yeni bir kullanıcı ekleme

    Nginx, Nodejs ve en önemlisi Ghost’u root olmayan bir kullanıcı şile kurmak gerekiyor. Bu işlemler için sudo ayrıcalıklrına sahip yeni bir kullanıcı oluşturacağız.

    # yeni bir kullanıcı oluşturmak için aşağıdaki komutu çalıştırın. mekici yazan yere istediğiniz ismi yazabilirsiniz. 
    adduser mekici
    

    💡 Oluşturacağınız yeni kullanıcıya Ghost adını vermeyin. Bu ghost-cli ile çakışmalara neden olur.

    # Yeni kullanıcıya süper kullanıcı ayrıcalıkları vermek için (sudo yetkisi)
    usermod -aG sudo mekici
    
    # Şimdi mekici adlı kullanıcıya geçiş yapalım.
    su - mekici
    

    Paketleri güncelle

    Uygulamaları kurmadan önce Ubuntu depolarının güncel diğer emin olalım. Bunu sunucuda uygulamadan kurmadan önce tavsiye ederim.

    # Paket listelerini güncelleyin
    sudo apt-get update
    
    # Yüklü paketleri güncelleyin
    sudo apt-get upgrade
    

    Sizden şifre isteyecektir. mekiciadlı şifresini girin.

    NGINX kurulumu

    Ghost, web sunucusu olarak Nginx üzerinden. SSL için ise en az Nginx 1.9.5 üzeri bir sürüm gereklidir.

    # Nginx yüklemek için;
    sudo apt-get install nginx
    

    ufw güvenlik duvarını aktif ettiğimiz için HTTP ve HTTPS bağlantılarına izin vermemiz gerekiyor.

    sudo ufw allow 'Nginx Full'
    

    MySQL kurulumu

    Ghost veri tabanı olarak MySQL kullanır. Ghost’un çalışabilmesi için MySQL 5.7 ve ya MySQL 8 sürümü gereklidir.

    # MySQL kurmak için;
    sudo apt-get install mysql-server
    

    Eğer Ubuntu 18.04 veya 20.04 sunucunuz varsa aşağıdaki adımları yapmamız gerekiyor. Bunun için root kullanıcısına geri dönelim. root kullanıcısına geçiş için exit yazmanız yeterli.

    # MySQL girmek için;
    sudo mysql
    
    # Şimdi kullanıcınızı bu komutla güncelleyin
    # 'Şifre'yi şifrenizle değiştirin, ancak tırnak işaretlerine dikkat edin. 
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'şifre';
    
    # MySQL'den çıkmak için;
    quit
    
    # Şimdi mekici kullanıcısına tekrar geçiş yapalım.
    su - mekici
    

    Node.js kurulumu

    Ghost bağımlılıklarından biride Node.js’dir. Şimdi node.js kurulumu yapacağız. Ghost’un desteklediği bir node.js sürümünü kurmanız gerekiyor. Desteklenen node.js sürümlerine göz atın.

    # Node.js 14 sürümünü kurmak indirin.
    curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
    # Node.js kurulumu için;
    sudo apt-get install -y nodejs
    

    Ghost-CLI kurulumu

    Ghost-cli size kurulumda yardımcı olacak bir komut satırı aracıdır.

    sudo npm install ghost-cli@latest -g
    

    Bu adıma kadar Ghost’un çalışması için gerekli ön hazırları tamamladık. Artık Ghost kurulumuna geçebiliriz.

    Ghost Kurulumu

    # Ghost sitesinin kurulacağı dizini oluşturalım. sitename kısmına sitenizin adını ayazabilirsiniz. 
    sudo mkdir -p /var/www/sitename
    
    # Dizinin sahibini belirleyelim. Ben mekici adında kullanıcı oluşturduğum için mekici yazacağım. Siz kendi kullanıcı adınzı yazın.
    sudo chown mekici:mekici /var/www/sitename
    
    # Klasör izinlerini ayarlayalım
    sudo chmod 775 /var/www/sitename
    
    # Dizine geçiş yapalım
    cd /var/www/sitename
    

    Ghost yüklemeye başlayalım
    Ghost dizinine geçiş yaptığımıza göre artık yükleme komutunu çalıştırabiliriz.

    ghost install
    

    Ghot Kurulumu Sırasında Sorulan Sorular

    • Blog URL
      Blog URL’nizi yazın. Eğer URL https:// ile başlarsa Ghost sizin için ücretsiz SSL kuracaktır.

    • MySQL hostname
      localhost önerisine ENTER ile kabul edin.

    • MySQL username / password
      Önceden bir veri tabanı oluşturduysanız o kullanıcı adını girin. Eğer oluşturmadıysananız root olarak girin.

    • Ghost database name
      Eğer önceden oluşturduysanız veri tabanı adınızı girin. Yoksa Ghost-CLI sizin için bir veri tabanı oluşturacaktır.

    • Set up a ghost MySQL user? (Recommended)
      Eğer veri tabanı kullanıcısı olarak root girdiyseniz Ghost-CLI yalnızca yeni Ghost veritabanınıza erişebilen / düzenleyebilen ve başka hiçbir şey yapmayan özel bir MySQL kullanıcısı oluşturur.

    • Set up NGINX? (Recommended)
      Bunu ENTER ile kabul edin. Ghost-cli Nginx otomatik yapılandırıp siteyi yayınlayacaktır.

    • Set up SSL? (Recommended)
      Site URL’si başına https:// girdiyseniz Ghost-CLI Let’s Encrypt’i kuracaktır.

    • Enter your email
      SSL için bir mail adresi girin.

    • Set up systemd? (Recommended)
      yes olarak cevaplayalım.

    • Start Ghost?
      yes ile cevaplayıp sistemin çalışmaya başlamasını sağlayalım.

  • Merhaba daha önce başka vds 3 tane kurdum sorun yaşamadım sorunsuz kullandım aynı özelliklerde yeni vds de kurulum yaptım en sonunda ekran görüntüsündeki hatayı veriyor neden acaba vds 5 sefer format attım kurulumu yaptım hep en sonda o hatayı veriyor ngnix yeniden başlattım durdurum yeniden çalıştırdım ama hiç bir sonuç elde edemedim neden bu hatayı verir 1 haftadır kurulum yapıyorum en sonunda o hataya düşüyor neden yapar bunu?

    Ekran görüntüsü 2023-06-23 221028.png

  • @EchoBilisim bende bu hatayı alıyorum ve bir türlü çözemedim.

  • @Oğuzhan-Öztürk ben az önce farkettim ssl olayını kuramadığı için hata veriyor önceki mesajımda dediğim gibi 4 tane sitemi sorunsuz şekilde kurdum onların domaini farklı bir firmada ondan ns ler doğru olduğundan dolayı sorunsuz kurulum yaptım ama bu en son kurmaya çalıştığım domain başka firmada onlarla alakalı bir sorun var senin domain nerde barınıyor bilmiyorum ama ns olayına iyi bak ns ler doğru olmadığında ssl sertifikası olayında hata veriyor sizde domain ns veye a kaydı olayına iyi bakın ns lerin sorunsuz olduğuna emin olun ondan sonra kurulum yapınız veya ssl kurulum esnasında ssl kurmadan devam ederseniz siteniz kurulur ama ssl olmuyor ondan dolayı ns olayına iyi bakınız yardım vs isterseniz özelden mesaj atın yardımcı olayım size

  • @EchoBilisim benim ns kayıtları cloudflare üzerinden siteye yönelmiş durumda. Siz vds’e ns yönlendirmeyi nasıl yaptınız?

  • @Oğuzhan-Öztürk a kaydı ile yapılması daha iyi a kaydı ile yapın daha sağlıklı olacaktır

  • @EchoBilisim zaten a kaydı ile yapıyorum ama bir türlü kurulum yapılmıyor.

  • @Oğuzhan-Öztürk domain hangi firmada barınıyor?

  • Merhaba 1 sunucuda 2 ghost kullanabilirmiyim her siteye ayrı sunucu almak istemiyorum şimdi bir sunucuda kurulum yaptım kullanıyorum hazır adımları yaptım hazır kurulu olan bir sunucuya 2 ghost kurmak istiyorum biraz düşündüm düşüncemi aktarayım olur ise 2 ghost kurmak istiyorum.

    Şimdi hazır ghost kurulu olan sunucuda

    @admin, içinde söyledi: Ghost Blog nasıl kurulur? Ubuntu sunucuda Ghost blog kurulumu

    usermod -aG sudo mekici

    2 bir kullanıcı oluştursam ve sonra

    @admin, içinde söyledi: Ghost Blog nasıl kurulur? Ubuntu sunucuda Ghost blog kurulumu

    sudo mkdir -p /var/www/sitename

    sırasıyla bu adımları takıp etsem ve yeni açmış olduğum bölüme ghost kursam olurmu acaba bu konuda sizinde görüşlerinizi almak istiyorum herhangi bir sorun olurmu acaba?

  • @EchoBilisim Evet birden fazla Ghost kurabilirsin. Farklı kullanıcılar, farklı dizinler olduktan sonra sorun olmaz.

  • @admin çok teşekkür ederim yakın zamanda test edecem bilgilendirme için çok teşekkür ederim

  • @admin bir sorum daha olacak kurulum yapacam şimdi kullanıcı oluşturdum yenisi için dizinlerde oluşturdum mysql yenimi kurmam lazım yoksa kurulu olan mysql girip yenisinin bilgilerini girsem oluyor mu.

    Yani yeni 2 açtığım kullanıcı ve dizine ghost kurmadan önce ona 2 bir mysql kurmam gerekiyormu yoksa kurulu olan mysql den bilgileri eklesem oluyormu?


Benzer konular