Ubuntu16.04にGhostをインストールして構成する方法
このチュートリアルの以前のバージョンは、 KevinIsaacによって作成されました。
序章
Ghost は、軽量のオープンソースブログプラットフォームです。 Ghostは完全にカスタマイズ可能で、多くのテーマを利用できます。
このチュートリアルでは、公式のghost-cli
インストールウィザードを使用して、Ubuntu16.04で本番環境に対応したGhostインスタンスをセットアップします。 これにより、Ghostがインストールされ、GhostへのリクエストをプロキシするようにNginxが構成され、 Let's Encrypt 証明書で保護され、システムサービスとしてバックグラウンドで実行されるようにGhostが構成されます。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- Ubuntu 16.04初期サーバーセットアップガイドに従ってセットアップされた1GBのUbuntu16.04サーバー(sudo非rootユーザーとファイアウォールを含む)。
- Ubuntu 16.04にNode.jsをインストールする方法で説明されているように、Node.jsは公式PPAを使用してインストールされます。
- Ubuntu 16.04にNginxをインストールする方法に示すように、サーバーにNginxがインストールされています。
- MySQLはUbuntu16.04にMySQLをインストールする方法に従ってインストールされます。
- オプションで、サーバーを指すように構成されたドメイン名。 DigitalOcean チュートリアルでホスト名を設定する方法に従って、ドメインをDigitalOceanドロップレットにポイントする方法を学ぶことができます。 これは、GhostのインストールウィザードでLet'sEncryptを使用してSSLサポートを有効にするために必要です。
ステップ1—GhostCLIアプリケーションをインストールする
公式のghost-cli
プログラムを使用してGhostをインストールします。 このプログラムは、Ghostをインストールし、MySQLユーザーとデータベースを作成し、Nginxをリバースプロキシとして構成し、SSL/TLS暗号化を使用してサイトを保護します。
まず、npm
を使用してghost-cli
をダウンロードします。
sudo npm i -g ghost-cli
Ghostをvar/www/ghost
ディレクトリに配置します。これは推奨されるインストール場所です。 このディレクトリを作成します。
mkdir /var/www/ghost
次に、ユーザーがこのディレクトリを所有していることを確認します。
sudo chown $USER:$USER /var/www/ghost
/var/www/ghost
ディレクトリには、ユーザーに対する完全なアクセス許可と、他のすべてのユーザーに対する読み取りおよび実行のアクセス許可が必要です。したがって、次のコマンドを使用してアクセス許可を設定します。
sudo chmod 775 /var/www/ghost
CLIをインストールし、ディレクトリを配置したら、ブログを設定できます。
ステップ2—Ghostのインストールと構成
Ghost CLIアプリには、動作するGhostブログを構成するためのすべての手順を案内するインストールウィザードがあります。
/var/www/ghost/
ディレクトリに切り替えます。
cd /var/www/ghost/
次に、ghost
コマンドを使用してGhostをインストールします。 デフォルトのデータベースとしてMySQLを使用するようにGhostを構成します。 他のデータベースを使用することもできますが、本番環境のセットアップにはMySQLを選択することをお勧めします。
ghost install
インストーラーは、最初に必要な前提条件がインストールされていることを確認してから、Ghostをダウンロードしてインストールします。
Output✔ Checking system Node.js version ✔ Checking logged in user ✔ Checking current folder permissions ✔ Checking operating system compatibility ✔ Checking for a MySQL installation ✔ Checking memory availability ✔ Checking for latest Ghost version ✔ Setting up install directory ✔ Downloading and installing Ghost v1.22.2 ✔ Finishing install process
インストールプロセスが完了すると、MySQLデータベース情報とともにブログのURLの入力を求められます。 この手順では、rootのユーザー名とパスワードを入力します。 データベース名には、デフォルトのghost_prod
を使用できます。
Output? Enter your blog URL: http://example.com ? Enter your MySQL hostname: localhost ? Enter your MySQL username: root ? Enter your MySQL password: [hidden] ? Enter your Ghost database name: ghost_prod
次に、構成ウィザードは ghost システムユーザーを作成し、 ghostMySQLユーザーを作成するかどうかを尋ねます。これを許可する必要があります。
Output✔ Configuring Ghost ✔ Setting up instance Running sudo command: useradd --system --user-group ghost Running sudo command: chown -R ghost:ghost /var/www/ghost/content ✔ Setting up "ghost" system user ? Do you wish to set up "ghost" mysql user? Yes ✔ Setting up "ghost" mysql user
次に、Nginxを構成するかどうかを尋ねられます。 これを確認すると、インストーラーがブログに適切なリバースプロキシサーバーブロックを作成します。
Output? Do you wish to set up Nginx? Yes ✔ Creating nginx config file at /var/www/ghost/system/files/example.con.conf Running sudo command: ln -sf /var/www/ghost/system/files/example.com.conf /etc/nginx/sites-available/example.com.conf Running sudo command: ln -sf /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf Running sudo command: nginx -s reload ✔ Setting up Nginx
次に、SSLサポートを設定するように求められます。 登録済みの完全修飾ドメイン名を使用していて、サーバーのIPアドレスを指すようにDNS設定を構成している場合は、Y
を押して続行します。
Output? Do you wish to set up SSL? Yes
メールアドレスの入力を求められたら、証明書がインストールされます。
Output? Enter your email (used for Let's Encrypt notifications) [email protected] Running sudo command: mkdir -p /etc/letsencrypt Running sudo command: ./acme.sh --install --home /etc/letsencrypt Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain example.com --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail [email protected] Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048 Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048 Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf ✔ Creating ssl config file at /var/www/ghost/system/files/example.com-ssl.conf Running sudo command: ln -sf /var/www/ghost/system/files/example.com-ssl.conf /etc/nginx/sites-available/example.com-ssl.conf Running sudo command: ln -sf /etc/nginx/sites-available/example.com-ssl.conf /etc/nginx/sites-enabled/example.com-ssl.conf Running sudo command: nginx -s reload ✔ Setting up SSL
次に、構成ウィザードにより、systemdサービスをセットアップするように求められます。 Y
を押して続行すると、ウィザードはghost_example-com
という新しいsystemdサービスを作成し、起動時に開始できるようにします。
Output? Do you wish to set up Systemd? Yes ✔ Creating systemd service file at /var/www/ghost/system/files/ghost_example-com.service Running sudo command: ln -sf /var/www/ghost/system/files/ghost_example-com.service /lib/systemd/system/ghost_example-com.service Running sudo command: systemctl daemon-reload ✔ Setting up Systemd
最後に、ウィザードはデータベースを構成し、Ghostを起動するかどうかを尋ねます。これは、Y
を押して許可する必要があります。
OutputRunning sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current ✔ Running database migrations ? Do you want to start Ghost? Yes Running sudo command: systemctl is-active ghost_example-com ✔ Ensuring user is not logged in as ghost user ✔ Checking if logged in user is directory owner ✔ Checking current folder permissions Running sudo command: systemctl is-active ghost_example-com ✔ Validating config ✔ Checking folder permissions ✔ Checking file permissions ✔ Checking content folder ownership ✔ Checking memory availability Running sudo command: systemctl start ghost_example-com ✔ Starting Ghost Running sudo command: systemctl is-enabled ghost_example-com Running sudo command: systemctl enable ghost_example-com --quiet ✔ Starting Ghost
これでGhostブログがインストールされ、使用できるようになりました。 あなたはhttp://example.com
であなたのブログにアクセスすることができます。 それでは、最初の投稿を作成できるようにアカウントを作成しましょう。
ステップ3—アカウントの作成とブログの構成
ログインしてブログを設定するには、http://example.com/login
にアクセスしてください。 次の画面が表示されます。
アカウントの作成ボタンを押して開始します。
アカウントの作成画面が表示され、ブログのタイトル、名前、メールアドレス、パスワードの入力を求められます。
詳細を入力して最後のステップ:チームを招待ボタンを押します。
ウィザードでは、他の共同編集者のメールアドレスを入力するように求められますが、画面の下部にあるリンク後で行いますを選択できます。
次に、Ghostがストーリーと呼ぶ投稿のリストが表示されます。
左側のメニューでは、新しいストーリーを作成したり、ブログの他の設定を管理したりできます。 詳細については、公式ドキュメントを参照してください。
結論
このチュートリアルでは、Ghostをインストールし、リクエストをGhostにプロキシするようにNginxを構成し、Ghostがシステムサービスとして実行されるようにしました。 ただし、Ghostでできることは他にもたくさんあります。 新しいブログの使用方法の詳細については、次のチュートリアルをご覧ください。
- コマンドラインからGhostを構成および保守する方法。
- Ghostでテーマを変更して設定を調整する方法。