Fedora 25te Ghost v0.11 LTS Dağıtımı

Ghost , 2013 sürümünden bu yana geliştiriciler ve sıradan kullanıcılar arasında popülerlik kazanan açık kaynaklı bir blog platformudur. İçerik ve bloglamaya odaklanır. Ghost ile ilgili en çekici şey, basit, temiz ve duyarlı tasarımıdır. Blog yayınlarınızı bir cep telefonundan yazabilirsiniz. Ghost için içerik Markdown dili kullanılarak yazılmıştır. Hayalet, bireyler veya küçük yazar grupları için mükemmel bir seçimdir.

Bu kılavuzda , Let's Encrypt , Certbot , Node.js , NPM , NGINX ve MySQL kullanarak Fedora 25 VPS'de güvenli bir Ghost v0.11.x LTS blogu kuracak ve dağıtacağız .

Gereksinimler

  • Bir alan adı kaydedin (satın alın).
  • Minimum 1 GB RAM'e sahip Fedora 25 sunucu örneği .
  • Sudo kullanıcısı.
  • Muhtemelen 2368 numaralı bağlantı noktasını açmanız gerekecek semanage port -a -t http_port_t -p tcp 2368.

Sen başlamadan önce

  1. Fedora sürümünü kontrol edin:

    cat /etc/fedora-release
    # Fedora release 25 (Twenty Five)
    
  2. Kök olmayan yeni bir kullanıcı oluşturun:

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. wheelGruba ekleyerek süper kullanıcı yapın :

    usermod -aG wheel johndoe
    
  4. Yeni kullanıcıya geç:

    su - johndoe
    
  5. İşletim sisteminizin yazılımını güncelleyin:

    sudo dnf check-update || sudo dnf upgrade -y
    
  6. Saat dilimini ayarlayın:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. Geliştirme araçlarını yükleyin:

    sudo dnf install @development-tools -y
    
  8. Vim metin düzenleyicisini yükleyin ve Wget:

    sudo dnf install -y vim wget
    
  9. Gerekirse sistemi yeniden başlatın:

    sudo shutdown -r now
    

Certbot'u yükle

NOT : Bu adıma başlamadan önce alan adınız için DNS kayıtlarını ayarladığınızdan emin olun.

Biz kullanacağız edelim Şifrele CA ve EFF elde etmek 'ın Certbot istemcisi SSL / TLS bizim Hayalet blog için sertifika. blog.domain.tldAlan adının tüm örneklerini alan adınızla değiştirmeyi unutmayın .

  1. Python ile yapılan Certbot (eski adıyla Let's Encrypt istemcisi ) sertifika yönetim yazılımını yükleyin:

    sudo dnf install -y certbot
    
  2. Certbot sürümünü kontrol edin:

    certbot --version
    # certbot 0.14.1
    
  3. Elde RSA bağımsız bir kimlik doğrulama yöntemini (plug-in) kullanarak bir sertifikayı:

    sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email admin@domain.tld --no-eff-email --agree-tos
    
    # IMPORTANT NOTES:
    #  - Congratulations! Your certificate and chain have been saved at 
       /etc/letsencrypt/live/blog.domain.tld/fullchain.pem.
    #  Your cert will expire on YYYY-MM-DD. . . .
    #  . . .
    

    Önceki adımlarda geçmekte sonra, sertifika ve özel anahtar olacaktır /etc/letsencrypt/live/blog.domain.tlddizinde.

Node.js ve NPM'yi yükleyin

NOT : Ghost şu anda yalnızca Node.js sürüm 4.5+ ve 6.9+ sürümlerini desteklemektedir.

Ghost Node.js üzerine inşa edilmiştir. Bu yazının yazıldığı sırada Ghost için önerilen sürümü yükleyeceğiz v6 Boron LTS.

  1. Node.js v6 LTS'yi indirin ve yükleyin:

    curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    sudo dnf install -y nodejs
    
  2. Node.js ve NPM sürümünü kontrol edin:

    node -v && npm -v
    # v6.11.2
    # 3.10.10
    

MySQL'i yükleyin

Varsayılan olarak Ghost, hiçbir yapılandırma gerektirmeyen bir SQLite veritabanı kullanmak üzere yapılandırılmış olarak gelir.

Alternatif olarak Ghost, veritabanı yapılandırmasını değiştirerek bir MySQL veritabanı ile de kullanılabilir. Önce bir veritabanı ve kullanıcı oluşturmanız gerekir, daha sonra mevcut sqlite3 yapılandırmasını değiştirebilirsiniz.

  1. MySQL'in en son sürümünü (şu anda 5.7 ) resmi MySQL Dnf deposundan indirin ve yükleyin :

    cd /tmp
    
    # Adding the MySQL dnf Repository
    wget https://dev.mysql.com/get/mysql57-community-release-fc25-10.noarch.rpm
    sudo dnf install -y mysql57-community-release-fc25-10.noarch.rpm
    
    # Installing MySQL
    sudo dnf install -y mysql-community-server
    
  2. MySQL sürümünü kontrol edin:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. MySQL Sunucusunu başlatın ve durumunu kontrol edin:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL sürüm 5.7 veya üzeri, rootkurulumdan sonra MySQL kullanıcısı için geçici rasgele bir parola oluşturur ve parola MySQL hata günlük dosyasında bulunur /var/log/mysqld.log. Ortaya çıkarmak için aşağıdaki komutu kullanın:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. mysql_secure_installationVeritabanınızı biraz güvenli hale getirmek için komut dosyasını çalıştırın :

    NOT : Parola Doğrulama Eklentisi yüklenir ve etkinleştirilir, bu nedenle rootkullanıcı için yeni parolanızın güçlü olması gerekir ( bir büyük harf, bir küçük harf, bir basamak ve bir özel karakter ve toplam parola uzunluğunun en az 8 karakter olması gerekir ). Bunu rahatlatmak veya eklentiyi tamamen devre dışı bırakmak istiyorsanız ( önerilmez ), bunun nasıl yapılacağı ile ilgili resmi MySQL belgelerine bakın.

    sudo mysql_secure_installation
    
  6. MySQL'de kök kullanıcı olarak oturum açın:

    mysql -u root -p
    # Enter password:
    
  7. Yeni bir MySQL veritabanı ve kullanıcı oluşturun:

    create database dbname;
    grant all on dbname.* to 'user' identified by 'password';
    
  8. MySQL'den çık:

    exit
    

NGINX'i yükleyin

  1. NGINX'i indirin ve yükleyin:

    sudo dnf install -y nginx
    
  2. NGINX sürümünü kontrol ederek kurulduğunu doğrulayın:

    sudo nginx -v
    # nginx version: nginx/1.10.2
    
  3. Durumu kontrol edin, NGINX hizmetini etkinleştirin ve başlatın (arka plan programı):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Oluşturma /etc/nginx/sslYeni bir Diffie-Hellman (dizin ve üretmek DH ) parametreleri:

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. blog.domain.tldSanal ana bilgisayar için günlük dizini oluşturun :

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. NGINX'i bir HTTP ( S ) ters proxy sunucusu olarak yapılandırın :

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Aşağıdakileri yapıştırın /etc/nginx/conf.d/ghost.conf:

    # domain: blog.domain.tld
    # public: /var/www/ghost
    
    upstream ghost_app {
        server 127.0.0.1:2368;
        keepalive 32;
    }
    
    server {
        listen [::]:80;
        listen 80;
        listen [::]:443 ssl http2;
        listen 443 ssl http2;
    
        server_name blog.domain.tld;
        root /var/www/ghost;
    
        error_log /var/log/nginx/blog.domain.tld/error.log;
        access_log /var/log/nginx/blog.domain.tld/access.log;
    
        client_max_body_size 100M;
    
        ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.pem;
        ssl_dhparam ssl/dhparams-2048.pem;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
    
        ssl_buffer_size 4K;
    
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50M;
        ssl_session_tickets off;
    
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.pem;
    
        resolver 8.8.8.8 8.8.4.4 valid=300s;
    
        location / {
            proxy_pass http://ghost_app;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_hide_header X-Powered-By;
    
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }
    }
    
  8. Sözdizimi hataları için NGINX yapılandırmasını kaydedin ve test edin:

    sudo nginx -t
    
  9. NGINX yapılandırmasını yeniden yükleyin:

    sudo systemctl reload nginx.service
    

Ghost'u yükle

NOT : Aynı VPS'de birden çok Ghost blogu barındırmak istiyorsanız, her Ghost örneğinin ayrı bir bağlantı noktasında çalışıyor olması gerekir.

  1. Belge kök dizini oluştur:

    sudo mkdir -p /var/www/
    
  2. Yeni bir hayalet kullanıcı oluşturun:

    sudo useradd -c 'Ghost application' ghost
    
  3. Download Hayalet:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
    
  4. Ghost'u /var/www/ghostdizine açın (önerilen kurulum konumu):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Yeni hayalet dizinine gidin:

    cd /var/www/ghost
    
  6. /var/www/ghostDizinin sahipliğini değiştirin :

    sudo chown -R ghost:ghost .
    
  7. Yeni ghostkullanıcıya geç:

    sudo su - ghost
    
  8. Belge köküne gidin /var/www/ghost:

    cd /var/www/ghost
    
  9. Ghost'u yalnızca üretim bağımlılıklarıyla yükleyin. Bu tamamlandığında, Ghost yüklenir:

    npm install --production
    
  10. Yapılandırma değiştirerek Hayalet url, mailve databaseüretim nesnesi iç malı config.jsdosyası:

    cp config.example.js config.js
    vim /var/www/ghost/config.js
    
    
    var path = require('path'),
        config;
    
    config = {
    // ### Production
    // When running Ghost in the wild, use the production environment.
    // Configure your URL and mail settings here
    production: {
        url: 'https://blog.domain.tld',
        mail: {
            transport: 'SMTP',
            options: {
                service: 'Mailgun',
                auth: {
                    user: '',
                    pass: ''
                }
            }
        },
        database: {
            client: 'mysql',
            connection: {
                host: '127.0.0.1',
                user: 'your_database_user',
                password: 'your_database_password',
                database: 'your_database_name',
                charset: 'utf8'
            },
            debug: false
        },
        // . . .
        // . . .
    

    NOT : mailAyarları da yapılandırmalısınız . Bunun nasıl yapılacağı ile ilgili resmi Ghost belgelerine bakın .

  11. Ghost'u üretim ortamında başlatın:

    npm start --production
    

    Hayalet şimdi koşacak. Hem blog ön ucu hem de yönetici arayüzü HTTPS ile güvence altına alınmıştır ve HTTP / 2 de çalışmaktadır. Tarayıcınızı açabilir ve adresindeki siteyi ziyaret edebilirsiniz https://blog.domain.tld. blog.domain.tldAlan adınızla değiştirmeyi unutmayın .

  12. CTRL+ Tuşuna basarak Hayalet işlemini kapatın Cve hayalet kullanıcıdan başlangıçta oluşturduğunuz kök olmayan kullanıcıya geri dönün :

    exit
    

Ghost'u bir sistem hizmeti olarak çalıştırma

Terminal oturumunuzu VPS'nizle kapatırsanız, blogunuz da kapanır. Bu iyi değil. Bundan kaçınmak için systemd kullanacağız. Blogumuzu 7/24 açık tutacak.

  1. ghost.serviceSystemd birim dosyası oluşturun . Sudo komutunu çalıştırın sudo vim /etc/systemd/system/ghost.serviceve aşağıdaki içeriği kopyalayın / yapıştırın:

    [Unit]
    Description=Ghost - the professional publishing platform
    Documentation=https://docs.ghost.org/v0.11.11/docs
    After=network.target
    
    [Service]
    Type=simple
    # Edit WorkingDirectory, User and Group as needed
    WorkingDirectory=/var/www/ghost
    User=ghost
    Group=ghost
    ExecStart=/usr/bin/npm start --production
    ExecStop=/usr/bin/npm stop --production
    Restart=always
    SyslogIdentifier=Ghost
    
    [Install]
    WantedBy=multi-user.target
    
  2. Etkinleştir ve başlat ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. ghost.serviceDurumu kontrol et :

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. https://blog.domain.tld/ghost/Bir Ghost yönetici kullanıcısına gidin ve oluşturun. Bunu mümkün olan en kısa sürede yapın!

Sonuç

Bu kadar. Artık tamamen işlevsel bir Ghost blogumuz var. Sunucunuz, istemci tarafından desteklendiğinde HTTP / 2 üzerinden içerik gönderiyor. Casper adlı varsayılan Ghost temasını özel bir temayla değiştirmek isterseniz , temayı /var/www/ghost/content/themesklasöre indirip sıkıştırmasını açabilirsiniz ve temayı adresinde bulunan Ghost admin arayüzü üzerinden seçebilirsiniz https://blog.domain.tld/ghost.

Yorum bırak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.