Ghost は、Node.js 上に構築された無料のオープンソースブログプラットフォームで、執筆と公開を簡素化します。このトピックでは、Ubuntu 22.04 以降を実行する Elastic Compute Service (ECS) インスタンスに Ghost ブログをデプロイする方法について説明します。
背景情報
Ghost ブログは、開発モードまたは本番モードでセットアップできます。初めて Ghost ブログをセットアップする場合は、デバッグを容易にするために開発モードを使用します。このトピックの手順は、Alibaba Cloud を使用してウェブサイトを構築するのが初めての個人ユーザーを対象としています。Ghost の詳細については、「Getting started with Ghost」をご参照ください。
ビジネスの成長に合わせて、Alibaba Cloud のプロダクトを使用して、サービスのキャパシティを水平方向および垂直方向に拡張できます。例:
単一の ECS インスタンスの CPU とメモリをスケールアップして、サーバーの処理能力を向上させます。
複数の ECS インスタンスを追加し、Server Load Balancer (SLB) を使用して、それらのインスタンス間で負荷を分散させます。
Auto Scaling を使用して、トラフィックに基づいて ECS インスタンスを自動的に追加または削除します。
Object Storage Service (OSS) を使用して、静的なウェブページや大量の画像、動画を保存します。
Ghost には、Nginx、MySQL、Node.js に関して特定のバージョン要件があります:
Nginx:1.9.5 以降
MySQL:8.0.x
Node.js:22.x
より詳細なバージョン要件については、「Prerequisites」をご参照ください。
事前準備
開始する前に、ご利用の ECS インスタンスが次の要件を満たしていることを確認してください:
ECS インスタンスにパブリック IP アドレスが自動的に割り当てられているか、EIP アドレスが関連付けられています。パブリック帯域幅を有効にする方法については、「パブリック帯域幅の有効化」をご参照ください。
オペレーティングシステム:Ubuntu 22.04 以降。
インスタンスのセキュリティグループに、ポート 22、80、443、2368 でのトラフィックを許可するインバウンドルールが追加されています。詳細については、「セキュリティグループルールの追加」をご参照ください。
(任意) ステップ 1:新規ユーザーの作成
ECS インスタンスのセットアップ時にすでに `ecs-user` を作成している場合は、このステップをスキップし、`ecs-user` を使用して「ステップ 2:Nginx のインストール」を実行してください。
Ghost では root ユーザーを直接使用することは推奨されていません。そのため、新しいユーザーを作成し、その権限を設定する必要があります。
ECS インスタンスにリモートでログインします。
詳細については、「ワークベンチを使用して Linux インスタンスにログイン」をご参照ください。
次のコマンドを実行して、新しいユーザーを作成します。
この例では、
testという名前のユーザーを作成します。adduser testNew password:およびRetype new password:プロンプトで、パスワードを入力して確認します。デフォルトでは、パスワードは表示されません。完了したら、Enterキーを押します。新しい値を入力するか、ENTER キーを押してデフォルト設定を使用してくださいプロンプトで、Enterを押してデフォルト設定を維持します。 必要に応じてユーザー情報を入力することもできます。Is the information correct? [Y/n]プロンプトで、Yを入力して情報を確認し、Enterを押してセットアップを完了します。
設定は次の例のようになります。
root@iZbp1g2d4dpki2mf63b****:~# adduser test Adding user `test' ... Adding new group `test' (1000) ... Adding new user `test' (1000) with group `test' ... Creating home directory `/home/test' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for test Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y次のコマンドを実行して、新しいユーザーをグループに追加します。
usermod -a -G sudo test次のコマンドを実行して、
testユーザーに切り替えます。su - test
ステップ 2:Nginx のインストール
ご利用の ECS インスタンスに、自動割り当てのパブリック IP アドレスまたは EIP アドレスが関連付けられていることを確認してください。詳細については、「EIP アドレスの関連付けまたは関連付け解除」をご参照ください。
Ghost ブログをデプロイするには、HTTP サーバーとして Nginx をインストールする必要があります。
次のコマンドを実行して、Linux オペレーティングシステムとソフトウェアパッケージを更新します。
sudo apt-get update sudo apt-get upgrade -yNginx をインストールします。
sudo apt-get install -y nginxnginx -vコマンドを実行して Nginx バージョンを確認できます。nginx -v出力は次のようになります。
nginx version: nginx/1.18.0 (Ubuntu)説明この例では、Nginx バージョン 1.18.0 がインストールされています。ソフトウェアパッケージは定期的に更新されるため、インストールする Nginx のバージョンが異なる場合があります。
ステップ 3:MySQL のインストール
MySQL はオープンソースのデータベース管理システムです。一般的に、人気の LAMP (Linux、Apache、MySQL、PHP/Python/Perl) スタックの一部としてインストールされます。リレーショナルデータベースと構造化照会言語 (SQL) を使用してデータを管理します。
次のコマンドを実行して MySQL をインストールします。
sudo apt-get install -y mysql-servermysql -Vコマンドを実行して、MySQL のバージョン番号を確認します。次のような出力は、MySQL が正常にインストールされたことを示します。test@iZbp1g2d4dpki2mf63b****:~$ mysql -V mysql Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))次のコマンドを実行して MySQL に接続します。
sudo mysql次のコマンドを実行して、Ghost 用のデータベースを作成します。
このトピックの例では `ghost_data` を使用します。
CREATE DATABASE ghost_data;次のコマンドを実行して、
rootユーザーのパスワードを設定します。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your-root-password';次のコマンドを実行して MySQL の権限付与テーブルを再読み込みし、権限の変更を有効にします。
FLUSH PRIVILEGES;次のコマンドを実行して MySQL を終了します。
exit
ステップ 4:Node.js のインストール
Ghost は Node.js 22.x LTS のみをサポートしています。このトピックでは、Node.js 22.x を例として使用します。
Nodesource GPG キーをダウンロードしてインポートします。
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpgdeb リポジトリを作成します。
NODE_MAJOR=22 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.listNode.js を更新してインストールします。
sudo apt-get update sudo apt-get install -y nodejsNode.js のバージョンを確認します。
node -v出力は次のようになります。
test@iZbp1g2d4dpki2mf63b****:~$ node -v v22.13.1
ステップ 5:Ghost のインストール
(任意) npm レジストリを Alibaba Cloud ミラーに変更して、Ghost のインストールを高速化します。
重要npm レジストリを変更すると、今後のすべての npm パッケージのインストールに影響が及ぶ場合があります。Ghost をインストールした後、
npm config set registry https://registry.npmjs.org/を実行して、デフォルトの npm 構成を復元してください。npm config set registry https://registry.npmmirror.comGhost コマンドラインインターフェイス (CLI) ツールをインストールして、Ghost を迅速に設定します。
sudo npm install ghost-cli@latest -g次の図の出力は、Ghost CLI ツールがインストールされたことを示しています。

次のコマンドを実行して、Ghost のインストールディレクトリを作成し、その権限を付与します。
sudo mkdir -p /var/www/ghost sudo chown test:test /var/www/ghost sudo chmod 775 /var/www/ghost次のコマンドを実行して Ghost をインストールします。
cd /var/www/ghost ghost installGhost のインストール中に、次のパラメーターを設定します。その他のパラメーターについては、ご自身のニーズと画面のプロンプトに基づいて設定を完了してください。
パラメーター
説明
ブログの URL を入力
解決済みのドメイン名 (例:
http://example.com) を入力します。この例では、テスト用にパブリック IP アドレスhttp://47.98.XX.XXを使用します。MySQL のホスト名を入力:
データベースエンドポイントを入力します。この例では、MySQL データベースと Ghost は同じインスタンスにデプロイされています。デフォルト値を使用するには、
Enterを押します。MySQL のユーザー名を入力:
データベースのユーザー名を入力します。
rootと入力し、Enterを押します。MySQL のパスワードを入力:
データベースパスワードを入力します。パスワードを入力したら、
Enterを押します。説明データベースのパスワードは、「ステップ 3」で設定したものです。
データベース名を入力:
Ghost 用のデータベース名を入力します。
ghost_dataを入力し、Enterを押します。説明データベース名は、ステップ 3 で作成したものです。この例では
ghost_dataを使用します。
セットアップが完了すると、インターフェイスの下部に Ghost 管理者アクセス URL が表示されます。例:http://47.98.XX.XX/ghost。
Ghost ブログへのアクセスをテストします。
次の手順に従って、Ghost のフロントエンドホームページまたはバックエンド管理ページにアクセスします:
フロントエンドホームページ
ローカルの Windows ホスト、またはインターネットにアクセスできる他の Windows ホストでブラウザを開き、http://ECS インスタンスのパブリック IP アドレス を入力して Ghost のフロントエンドホームページにアクセスします。
説明502 エラーが発生した場合は、インスタンス内のファイアウォールの問題を確認してください。ファイアウォールを無効にすることができます。
バックエンド管理ページ
ローカルの Windows ホスト、またはインターネットにアクセスできる他の Windows ホストでブラウザを開き、
http://ECS インスタンスのパブリック IP アドレス/ghostを入力して Ghost のバックエンド管理ページにアクセスします。初めて Ghost のバックエンド管理ページにアクセスするときは、画面の指示に従って Ghost ブログの設定を完了してください。

ドメイン名に関するガイドライン
ウェブサイトを構築したいがドメイン名を持っていない場合は、まずドメイン名を購入する必要があります。ウェブサイトが中国本土のサーバーでホストされている場合は、ウェブサイトがデプロイされている ECS インスタンスにドメイン名を名前解決する前に、ドメイン名の ICP 登録を完了する必要があります。以下に操作ガイドラインを示します:
ドメイン名の購入
ウェブサイトに一意のドメイン名を設定できます。これにより、訪問者は複雑な IP アドレスの代わりに、覚えやすいドメイン名を使用してウェブサイトにアクセスできます。
Alibaba Cloud にログインしてドメイン名を購入します。詳細については、「ドメイン名の登録」をご参照ください。
ICP 登録
ドメイン名が中国本土のサーバーを指すウェブサイトの場合、ICP 登録は必須です。ICP 登録番号を取得するまで、ウェブサイトをアクセス可能にすることはできません。
ドメイン名の名前解決
訪問者がドメイン名を使用してウェブサイトにアクセスできるように、Alibaba Cloud DNS でドメイン名を名前解決する必要があります。詳細については、「初心者向けガイド」をご参照ください。