Ubuntu 14.04でGhostとNginxを使用してブログを作成する方法

前書き

Ghostは、軽量(〜7.5MB)のオープンソースのブログプラットフォームであり、非常に使いやすいです。 Ghostは完全にカスタマイズ可能です。 インターネット上のGhostには、無料のテーマと有料のテーマがあります。

このチュートリアルでは、Ubuntu 14.04システムでGhostをセットアップして実行する手順を説明します。 また、Nginxをプロキシポートにインストールし、ノードパッケージである「+ forever +」をインストールして、Ghostをバックグラウンドで実行し続けます。

前提条件

サーバーがGhostを実行するための最小サイズ要件はありません。 作成するドロップレットのサイズを決定する際に、ブログで取得する訪問者の数と共有するコンテンツの量を検討します。 このチュートリアルは、Ubuntu 14.04を実行する最小サイズのDigitalOcean Dropletでテストされました。

始める前に、次のものが必要です。

  • Ubuntu 14.04ドロップレット

  • ドロップレットのIPアドレスを指す登録済みドメイン名

  • sudo特権を持つ非rootユーザー

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean [このチュートリアル]は、ドロップレットを指すようにドメイン名を設定するのに役立ちます。

このチュートリアルのすべてのコマンドは、非rootユーザーとして実行する必要があります。 コマンドにルートアクセスが必要な場合は、先頭に「+ sudo +」が付きます。 Ubuntu 14.04での初期サーバー設定では、ユーザーを追加してsudoアクセスを許可する方法について説明しています。

ステップ1-Node.jsとNpmをインストールする

ローカルパッケージインデックスを更新し、 `+ zip `および ` wget +`パッケージをインストールする必要があります。 このチュートリアルの後半でそれらを使用します。

sudo apt-get update
sudo apt-get install zip wget

GhostにはNode.js v0.10.x(最新の安定版)が必要です。 v0.12.xのようなNodeの不安定バージョンはサポートされていません。 Ghost.orgはNode.js v0.10.36およびnpm v2.5.0を推奨しています。

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-an-ubuntu-14-04-server [このチュートリアル]からPPAメソッドを使用してNode.jsをインストールします。

Node.jsをインストールしたら、次を実行してインストールされたバージョンを確認します。

node -v

出力は次のようになります。

v0.10.38

`+ npm +`がインストールされているかどうかを確認します。

npm -v

インストールされている場合は、インストールされているnpmのバージョンを出力する必要があります。

1.4.28

npmがインストールされていないというエラーが出力された場合は、次のコマンドでインストールしてください。

sudo apt-get install npm

次のコマンドを実行して、 `+ npm +`をバージョン2.5.0に更新します。

sudo npm install [email protected] -g

インストールされている `+ npm +`のバージョンを確認します。

npm -v

出力は次のようになります。

2.5.0

ステップ2-Ghostをインストールする

次に、Ghostをインストールする必要があります。 Ghost.orgはGhostを `+ var / www / ghost +`にインストールすることを推奨しているため、ここからインストールします。

まず、ディレクトリ「+ / var / www / +」を作成し、GhostのGitHubリポジトリから最新バージョンのGhostをダウンロードします。

sudo mkdir -p /var/www/
cd /var/www/
sudo wget https://ghost.org/zip/ghost-latest.zip

Ghostの最新バージョンを入手したので、それを解凍する必要があります。 また、ディレクトリを「+ / var / www / ghost / +」に変更します。

sudo unzip -d ghost ghost-latest.zip
cd ghost/

これで、Ghost依存関係とノードモジュールをインストールできます(運用依存関係のみ)。

sudo npm install --production

これが完了すると、Ghostがインストールされます。 Ghostを起動する前にセットアップする必要があります。

[[step-3-- setting-up-ghost]] === ステップ3-Ghostのセットアップ

Ghostの構成ファイルは、「+ / var / www / ghost / config.js」に配置する必要があります。 ただし、Ghostではそのようなファイルはインストールされません。 代わりに、インストールには `+ config.example.js`が含まれます。

サンプル構成ファイルを適切な場所にコピーします。 変更を元に戻す必要がある場合に備えて、元の構成ファイルのコピーを保持するために、移動ではなくコピーを行ってください。

sudo cp config.example.js config.js

「+ production」セクションにあるURLとメール設定は、変更が必要な情報の重要な領域です。 URLが必要です。 そうでない場合、リンクはデフォルトの `+ http:// my-ghost-blog.com +`ページに移動します。 Ghostはメール設定なしでも機能しますが、追加することをお勧めします。 この記事を書いている時点で、Ghostは、ユーザーがアカウントのパスワードを忘れた場合にのみ機能するメールを必要とするため、メールを設定しなくてもそれほど害はありません。

ファイルを編集用に開きます。

sudo nano config.js

ドメインの名前に「+ url」の値を変更する必要があります(または、現在ドメインを使用したくない場合は、サーバーのIPアドレスを使用できます)。 この値はURLの形式である必要があります。 たとえば、または。 この値が正しくフォーマットされていないと、Ghostは起動しません。

また、「+ server 」セクションの「 host 」の値を「+0.0.0.0」に変更します。

以下に、変更する必要がある値を赤で示します。

/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: '',
       mail: {
           // Your mail settings
       },
       database: {
           client: 'sqlite3',
           connection: {
               filename: path.join(__dirname, '/content/data/ghost.db')
           },
           debug: false
       },

       server: {
           // Host to be passed to node's `net.Server#listen()`
           host: '',
           // Port to be passed to node's `net.Server#listen()`, for iisnode s$
           port: '2368'
       }
   },

(...)

ファイルを保存し、 + CTRL + X +、次に + Y +、最後に `+ ENTER +`を押してnanoテキストエディターを終了します。

まだ `+ / var / www / ghost +`ディレクトリにいる間に、次のコマンドでGhostを起動します。

sudo npm start --production

出力は次のようになります。

> [email protected] start /var/www/ghost
> node index

Migrations: Database initialisation required for version 003
Migrations: Creating tables...
Migrations: Creating table: posts

[...]

すべてうまくいけば、ポート2368を使用してブログにアクセスできるはずです: +:2368 +(または ++)。

ターミナルで「+ CTRL + C +」を押して、Ghostインスタンスをシャットダウンします。

[[step-4-- install-nginx]] === ステップ4-Nginxのインストール

次のステップは、Nginxをインストールすることです。 基本的に、ポート80の接続がGhostが実行されているポートに接続できるようにします。 簡単に言えば、 `+:2368 +`を追加せずにGhostブログにアクセスできます。

次のコマンドでインストールしてください。

sudo apt-get install nginx

次に、ディレクトリを `+ / etc / nginx `に変更し、 ` / etc / nginx / sites-enabled +`のデフォルトファイルを削除して、Nginxを設定する必要があります。

cd /etc/nginx/
sudo rm sites-enabled/default

「+ / etc / nginx / sites-available / 」に「 ghost 」と呼ばれる新しいファイルを作成し、「 nano +」で開いて編集します。

sudo touch /etc/nginx/sites-available/ghost
sudo nano /etc/nginx/sites-available/ghost

次のコードをファイルに貼り付けて、ドメイン名に変更します。ドメインをすぐに追加したくない場合は、サーバーのIPアドレスに変更します。

server {
   listen 80;
   server_name ;
   location / {
       proxy_set_header   X-Real-IP $remote_addr;
       proxy_set_header   Host      $http_host;
       proxy_pass         http://127.0.0.1:2368;
   }
}

`+ sites-enabled +`で設定をシンボリックリンクします:

sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost

Nginxを再起動します。

sudo service nginx restart

次に、新しいユーザーを作成します。 このユーザーには、ディレクトリ `+ / var / www / ghost +`で作業を行う権限のみが付与されます。 これはセキュリティ対策です。 Ghostが危険にさらされた場合、システムは安全になります。 これは、次のコマンドを実行することで実行できます。

sudo adduser --shell /bin/bash --gecos 'Ghost application' ghost

特権を付与します。

sudo chown -R ghost:ghost /var/www/ghost/

これで、 `+ ghost +`ユーザーとしてログインできます。

su - ghost

次に、Ghostを起動する必要があります。

cd /var/www/ghost
npm start --production

ポート80でhttp:// <your_server_ip> /またはhttp:// <your_domain_name> /としてブログにアクセスできるはずです。

ステップ5-「+ forever +」でGhostを実行し続ける

次のステップは、Ghostをバックグラウンドで実行し続けることです。 `+ forever +`は、バックグラウンドでGhostを起動し、起動していることを確認するために使用できるノードモジュールです。 Ghostがクラッシュした場合、永久にGhostの別のインスタンスが自動的に起動します。

Ghostディレクトリ内から次のコマンドで + forever +`をインストールします。 `+ / var / www / ghost +。 しかし、コマンドを実行する前に、 `+ ghost +`ユーザーからログアウトし、非rootユーザーにログインします。

exit
sudo npm install -g forever

`+ ghost +`ユーザーとしてGhostを起動します。 また、Ghostディレクトリから実行する必要があります。

su - ghost
cd /var/www/ghost
forever start index.js

出力は次のようになります。

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: index.js

デフォルトでは、開発環境にロードされます。 これは、次のコマンドを実行して変更できます。

NODE_ENV=production forever start index.js

Ghostディレクトリからこれを実行することで、「+ forever +」を停止できます。

forever stop index.js

考えられるエラー

次のエラーメッセージの場合:

Error: SQLITE_READONLY: attempt to write a readonly database

+ root`ユーザーとして + forever`を起動します(現在のユーザーをログアウトするには `+ exit`を入力します):

sudo forever start index.js

最後のコマンドで「永久に」見つからないという場合は、コマンドへのフルパスを使用します。

sudo /usr/local/bin/forever start index.js

次のエラーが表示される場合:

error:   Cannot start forever
error:   script /home/ghost/index.js does not exist.

あなたは `+ / var / www / ghost +`ディレクトリにいません。 このディレクトリに移動して、コマンドを再実行してください。

結論

おめでとうございます。 Ghostをインストールし、Nginxでポートをプロキシする方法を学習しました。 また、 `+ forever +`ノードパッケージを使用してタスクを実行し続ける方法も学習しました。

Ghostでできることは他にもたくさんあります。 たとえば、パスワードで保護されたブログは最新の機能の1つです。

Ghostの他のDigitalOceanチュートリアルをご覧ください。

詳細については、次も参照してください。

前の投稿:Python 3のリストについて
次の投稿:JavaScriptでデータ型を変換する方法