Ubuntu 16.04にGhost v0.11 LTSをデプロイする方法

Ghostはオープンソースのブログプラットフォームで、2013年のリリース以降、開発者や一般ユーザーの間で人気を博しています。コンテンツとブログに焦点を当てています。Ghostの最も魅力的な点は、シンプルでクリーン、そしてレスポンシブなデザインです。携帯電話からブログ投稿を書くことができます。Ghostのコンテンツは、Markdown言語を使用して記述されています。Ghostは、個人または小グループの作家に最適です。

このガイドでは、Let's EncryptCertbotNode.jsNPMNGINX、およびMySQLを使用して、安全なGhost v0.11.x LTSブログをUbuntu 16.04 LTS VPS にセットアップして展開します

必要条件

  • ドメイン名を登録(購入)します。
  • 1GB以上のRAMを備えた Ubuntuサーバー16.04サーバーインスタンス。
  • Sudoユーザー。

あなたが始める前に

  1. 新しい非rootユーザーアカウントを作成します。

    adduser johndoe --gecos "John Doe"
    
  2. sudoグループに追加してスーパーユーザーにします。

    usermod -aG sudo johndoe
    
  3. 新しいユーザーに切り替え:

    su - johndoe
    
  4. オペレーティングシステムのソフトウェアを更新します。

    sudo apt update && sudo apt upgrade -y
    
  5. タイムゾーンを設定します。

    sudo dpkg-reconfigure tzdata
    
  6. 必要なツールをインストールします。

    sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
    
  7. 必要に応じてシステムを再起動します。

    sudo shutdown -r now
    

Certbotをインストールする

:この手順を開始する前に、ドメインにDNSレコードが設定されていることを確認してください。

私たちは、使用しようとしているレッツ・暗号化 CAEFF取得するのCertbotクライアントをSSL / TLSの私たちのゴーストブログの証明書を。のすべてのインスタンスblog.domain.tldを自分のドメイン名に置き換えることを忘れないでください。

  1. Pythonで作成されたCertbot(以前のLet's Encryptクライアント)証明書管理ソフトウェアをインストールします。

    sudo apt update
    sudo apt install -y software-properties-common
    sudo add-apt-repository -y ppa:certbot/certbot
    sudo apt update
    sudo apt install -y certbot
    
  2. Certbotのバージョンを確認します。

    certbot --version
    # certbot 0.14.2
    
  3. 入手RSAのスタンドアロン認証方法(プラグイン)を使用して証明書を:

    sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --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. . . .
    #  . . .
    

    前の手順を完了すると、証明書秘密鍵/etc/letsencrypt/live/blog.domain.tldディレクトリに作成されます。

Node.jsとNPMをインストールする

:現在、GhostはNode.jsバージョン4.5以降と6.9以降のみをサポートしています。

GhostはNode.js上に構築されています。この記事の執筆時点でのGhost の推奨バージョンをインストールしv6 Boron LTSます。

  1. Node.js v6 LTSをダウンロードしてインストールします。

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt install -y nodejs
    
  2. Node.jsとNPMのバージョンを確認します。

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

MySQLをインストールする

デフォルトでは、GhostはSQLiteデータベースを使用するように構成されており、構成は必要ありません。

あるいは、データベース構成を変更することにより、MySQLデータベースでGhostを使用することもできます。最初にデータベースとユーザーを作成する必要があります。その後、既存のsqlite3構成を変更できます。

  1. MySQLをダウンロードしてインストールします。

    sudo apt install -y mysql-server
    

    :インストール中に、MySQLの「root」ユーザーパスワードの入力を求められます。MySQLの「root」ユーザーには安全なパスワードを設定する必要があります。

  2. MySQLのバージョンを確認します。

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
    
  3. MySQLデーモンが起動して実行されているかどうかを確認します。

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. mysql_secure_installationスクリプトを実行して、データベースを少し保護します。

    sudo mysql_secure_installation
    
  5. MySQLにrootユーザーとしてログインします。

    mysql -u root -p
    # Enter password:
    
  6. 新しいMySQLデータベースとユーザーを作成します。

    create database dbname;
    grant all on dbname.* to 'user' identified by 'password';
    
  7. MySQLを終了します。

    exit
    

NGINXをインストールする

  1. 公式のNGINXリポジトリからNGINXの最新のメインラインバージョンをダウンロードしてインストールします。

    wget https://nginx.org/keys/nginx_signing.key
    sudo apt-key add nginx_signing.key
    rm nginx_signing.key
    sudo -s
    printf "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
    exit
    sudo apt update
    sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
    
  2. NGINXのバージョンをチェックして、インストールされていることを確認します。

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. ステータスを確認し、NGINXサービス(デーモン)を有効にして開始します。

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. /etc/nginx/sslディレクトリを作成し、新しいDiffie-Hellman(DH)グループを生成します。

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. blog.domain.tld仮想ホストのログディレクトリを作成します。

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. NGINXをHTTPS)リバースプロキシサーバーとして構成します。

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. 以下を貼り付けます/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 default_server;
        listen 80 default_server;
        listen [::]:443 ssl http2 default_server;
        listen 443 ssl http2 default_server;
    
        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 TLSv1.3;
        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. NGINX構成を保存して、構文エラーをテストします。

    sudo nginx -t
    
  9. NGINX構成をリロードします。

    sudo systemctl reload nginx.service
    

Ghostをインストールする

:同じVPSで複数のGhostブログをホストする場合は、各Ghostインスタンスが個別のポートで実行されている必要があります。

  1. ドキュメントルートディレクトリを作成します。

    sudo mkdir -p /var/www/
    
  2. 新しいghostユーザーを作成します。

    sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
    
  3. ゴーストをダウンロード:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
    
  4. Ghostを/var/www/ghostディレクトリに解凍します(推奨されるインストール場所):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. 新しいghostディレクトリに移動します。

    cd /var/www/ghost
    
  6. /var/www/ghostディレクトリの所有権を変更します。

    sudo chown -R ghost:ghost .
    
  7. 新しいghostユーザーに切り替え:

    sudo su - ghost
    
  8. ドキュメントルートに移動します/var/www/ghost

    cd /var/www/ghost
    
  9. Ghostは本番依存関係のみでインストールしてください。これが完了すると、Ghostがインストールされます。

    npm install --production
    
  10. 設定変更することにより、ゴーストurlmaildatabaseのプロパティproductionのオブジェクト内部のconfig.jsファイル:

    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
            },
            // . . .
            // . . .
    

    mail設定も行う必要があります。その方法については、公式のGhostドキュメントを参照してください。

  11. 本番環境でGhostを起動します。

    npm start --production
    

    ゴーストが実行されます。ブログのフロントエンドと管理インターフェースの両方がHTTPSで保護されており、HTTP / 2も機能しています。ブラウザを開いて、にアクセスしてくださいhttps://blog.domain.tldblog.domain.tldドメイン名に置き換えることを忘れないでください。

  12. CTRL+ Cを押してGhostプロセスをシャットダウンし、ゴーストユーザーを終了してrootユーザーに戻ります。

    exit
    

システムサービスとしてのGhostの実行

VPSでターミナルセッションを閉じると、ブログもダウンします。それは良いことではありません。これを回避するために、systemdを使用します。それは私たちのブログを24時間365日維持します。

  1. ghost.servicesystemdユニットファイルを作成します。sudo vim /etc/systemd/system/ghost.service以下のコンテンツを実行してコピー/貼り付け:

    [Unit]
    Description=Ghost - the professional publishing platform
    Documentation=https://docs.ghost.org/v0.11.9
    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. 有効にして開始ghost.service

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. ghost.serviceステータスを確認:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. https://blog.domain.tld/ghost/Ghost管理ユーザーに移動して作成します。できるだけ早くこれを実行してください!

結論

それでおしまい。これで、完全に機能するGhostブログができました。クライアントがサポートしている場合、サーバーはHTTP / 2経由でコンテンツを配信しています。Casperと呼ばれるデフォルトのGhostテーマをカスタムテーマに変更する場合は、テーマをダウンロードして/var/www/ghost/content/themesフォルダーに解凍し、にあるGhost管理インターフェイスを介して選択することができますhttps://blog.domain.tld/ghost



OpenBSD 6.2にWordPressをインストールする

OpenBSD 6.2にWordPressをインストールする

はじめにWordPressは、インターネット上の主要なコンテンツ管理システムです。ブログから動的コンテンツを備えた複雑なWebサイトまで、あらゆるものを強化します

Fedora 28へのFork CMSのインストール

Fedora 28へのFork CMSのインストール

別のシステムを使用していますか?Forkは、PHPで記述されたオープンソースのCMSです。フォークのソースコードはGitHubでホストされています。このガイドでは、Fork CMのインストール方法を説明します

Ubuntu 16.04でVirtualminおよびAnsibleを使用して複数のWordpressサイトをデプロイする方法

Ubuntu 16.04でVirtualminおよびAnsibleを使用して複数のWordpressサイトをデプロイする方法

Vultr仮想サーバーの一般的な使用法は、Wordpress Webサイトをホストすることです。このガイドでは、仮想サーバーの構成を最初から自動化する方法を示します

CentOS 6でWooCommerceを使用してWordPressを設定する

CentOS 6でWooCommerceを使用してWordPressを設定する

VultrインスタンスはWordPressブログを実行するための優れた方法ですが、WordPressの注目すべき拡張機能はWooCommerceです。これは、

Ubuntu 16.04にGhost v1.0.0ブログをインストールして設定する

Ubuntu 16.04にGhost v1.0.0ブログをインストールして設定する

Ghostは、Ember.js管理クライアント、JSON API、およびHandlebars.jsを利用したテーマAPIを備えたNode.js上に構築された最新のオープンソースの公開プラットフォームです。ゴース

Debian 9 LAMP VPSにMODX Revolutionをインストールする方法

Debian 9 LAMP VPSにMODX Revolutionをインストールする方法

別のシステムを使用していますか?MODX Revolutionは、高速、柔軟、スケーラブル、無料、オープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、i

CentOS 7にFork CMSをインストールする

CentOS 7にFork CMSをインストールする

別のシステムを使用していますか?Forkは、PHPで記述されたオープンソースのCMSです。フォークのソースコードはGitHubでホストされています。このガイドでは、Fork CMのインストール方法を説明します

Ubuntu 16.04 LAMP VPSにMODX Revolutionをインストールする方法

Ubuntu 16.04 LAMP VPSにMODX Revolutionをインストールする方法

別のシステムを使用していますか?MODX Revolutionは、高速、柔軟、スケーラブル、無料、オープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、i

Fedora 25にGhost v0.11 LTSを配備する方法

Fedora 25にGhost v0.11 LTSを配備する方法

別のシステムを使用していますか?Ghostは、201年以降、開発者や一般ユーザーの間で人気を博しているオープンソースのブログプラットフォームです。

FreeBSD 11 FAMP VPSにMODX Revolutionをインストールする方法

FreeBSD 11 FAMP VPSにMODX Revolutionをインストールする方法

別のシステムを使用していますか?MODX Revolutionは、PHPで記述された、高速、柔軟、スケーラブル、オープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)です。それは

Debian 9へのFork CMSのインストール

Debian 9へのFork CMSのインストール

別のシステムを使用していますか?Forkは、PHPで記述されたオープンソースのCMSです。フォークのソースコードはGitHubでホストされています。このガイドでは、Fork CMのインストール方法を説明します

Debian 8.7にGhostを展開する方法

Debian 8.7にGhostを展開する方法

別のシステムを使用していますか?Ghostはオープンソースのブログプラットフォームで、2013年のリリース以降、開発者や一般ユーザーの間で人気を博しています。私

Debian 9(ストレッチ)にDotclearをインストールする方法

Debian 9(ストレッチ)にDotclearをインストールする方法

別のシステムを使用していますか?Dotclearは非常にシンプルなブログエンジンです。オープンソースで使いやすいです。このチュートリアルでは、インストールを実行します

OpenBSD 6でのGhost Professional Publishing Platformのセットアップ

OpenBSD 6でのGhost Professional Publishing Platformのセットアップ

Ghostは、WordPressに匹敵する最新かつ最高の新興企業です。ゴースト開発者が両方を使用することを決定したため、テーマの開発はすばやく簡単に学ぶことができます

OpenBSDs HTTPDを備えたOpenBSD 6.5でWordPressを実行する

OpenBSDs HTTPDを備えたOpenBSD 6.5でWordPressを実行する

はじめにOpenBSDのインストールをデフォルトに近づけ、パッケージを追加しないほど、安全性が高まります。もっとコモながら

CentOS 7.3にGhost v0.11 LTSを導入する方法

CentOS 7.3にGhost v0.11 LTSを導入する方法

別のシステムを使用していますか?Ghostは、201年以降、開発者や一般ユーザーの間で人気を博しているオープンソースのブログプラットフォームです。

Ghost v0.11 LTSをDebian 8に展開する方法

Ghost v0.11 LTSをDebian 8に展開する方法

別のシステムを使用していますか?Ghostは、201年以降、開発者や一般ユーザーの間で人気を博しているオープンソースのブログプラットフォームです。

Ubuntu 16.04にDotclearをインストールする方法

Ubuntu 16.04にDotclearをインストールする方法

別のシステムを使用していますか?Dotclearは、PHPの上に構築された非常にシンプルなブログエンジンです。このチュートリアルでは、UbuntにDotclearをインストールします

CentOS 7にNeos CMSをインストールする方法

CentOS 7にNeos CMSをインストールする方法

Neosは革新的なオープンソースのコンテンツ管理システムであり、オンラインコンテンツの作成と編集に最適です。著者と編集者を念頭に置いて、Neo

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、