Ghostは、Node.jsに基づいて開発された無料のオープンソースのブログプラットフォームで、ブログの作成と公開のプロセスを簡素化します。 このトピックでは、Ubuntu 22.04または20.04を実行するElastic Compute Service (ECS) インスタンスにゴーストサイトを設定する方法について説明します。
背景情報
ゴーストサイトは、開発モードまたは本番モードで実行できます。 初めてGhostサイトを設定するときは、デバッグを容易にするために開発モードでサイトを実行することをお勧めします。 このトピックの手順は、Alibaba Cloudを初めて使用してWebサイトを設定するユーザーに適しています。 ゴーストサイトの詳細については、「ゴーストの使い方」をご参照ください。
Alibaba Cloudサービスを使用して、ビジネス要件に基づいてサービス容量をスケールアップできます。 例:
1つのECSインスタンスのvCPUとメモリをスケールアップして、インスタンスの処理能力を向上させます。
server Load Balancer (SLB) インスタンスのバックエンドサーバーグループに複数のECSインスタンスを追加し、SLBインスタンスを使用してトラフィックをECSインスタンスに分散します。
Alibaba Cloud Auto Scalingを使用して、ECSインスタンスの数をオンデマンドで自動的に増減します。
OSS (Object Storage Service) バケットを使用して、静的なwebページ、写真、ビデオなどの大量のデータを保存します。
Ghostサイトを設定するには、Nginx、MySQL、およびNode.jsに次のバージョンが必要です。
Nginx: 1.9.5以降
MySQL: 8.0.x
Node.js: 20.x (推奨) および18.x
バージョン要件の詳細については、「前提条件」をご参照ください。
前提条件
次の要件を満たすECSインスタンスが作成されます。
パブリックIPアドレスが自動的にECSインスタンスに割り当てられます。 または、elastic IPアドレス (EIP) がECSインスタンスに関連付けられます。 パブリック帯域幅を有効にする方法については、「パブリック帯域幅の有効化」をご参照ください。
インスタンスはUbuntu 20.04または22.04を実行します。
インバウンドルールがECSインスタンスのセキュリティグループに追加され、22、80、443、2368のポートが開きます。 詳細については、「セキュリティグループルールの追加」をご参照ください。
(オプション) ステップ1: ユーザーを作成する
インスタンス作成時にecsインスタンスのログインユーザー名としてECS-userを指定した場合は、この手順をスキップして手順2: NGINXのインストールに進みます。
Ghostサイトの設定にrootユーザーを使用しないことをお勧めします。 ECSインスタンスでユーザーを作成し、ユーザーに権限を付与します。
ECS インスタンスに接続します。
詳細については、「Workbenchを使用したSSH経由のLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行してユーザーを作成します。
この例では、
test
ユーザーが作成されます。adduser test
[新しいパスワード:]
と[新しいパスワードを再入力]
のメッセージが表示されたら、パスワードを入力して確認します。 デフォルトでは、パスワードを入力するとパスワードの文字は非表示になります。 パスワードを確認したら、Enter
キーを押します。[新しい値を入力するか、Enterキーを押してデフォルト
] メッセージが表示されたら、[ENTER]
キーを押してデフォルト値を使用します。 実際のシナリオに基づいて、氏名、部屋番号、職場の電話、自宅の電話、その他のパラメーターを設定することもできます。はいつ情報が正しいですか? [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をインストールする前に、NGINXをHTTPサーバーとしてインストールする必要があります。
次のコマンドを順番に実行して、Linuxオペレーティングシステムとソフトウェアパッケージを更新します。
sudo apt-get update sudo apt-get upgrade -y
次のコマンドを実行してNGINXをインストールします。
sudo apt-get install -y nginx
nginx -v
コマンドを実行し、NGINXのバージョンを確認します。nginx -v
次のサンプルコマンド出力が返されます。
nginx version: nginx/1.18.0 (Ubuntu)
説明この例では、NGINX 1.18.0がインストールされています。 ソフトウェアインストールパッケージは定期的に更新されません。 インストールする実際のNGINXのバージョンは異なる場合があります。
ステップ3: MySQLのインストール
MySQLはオープンソースのデータベース管理システムです。 ほとんどの場合、MySQLはLinux、Apache、MySQL、およびPHP/Perl/Python (LAMP) スタックの一部としてインストールされます。 MySQLは、リレーショナルデータベースとSQL文を使用してデータを管理します。
次のコマンドを実行してMySQLをインストールします。
sudo apt-get install -y mysql-server
mysql -V
コマンドを実行し、MySQLのバージョンを確認します。 次のサンプルコマンド出力は、MySQLがインストールされていることを示します。test@iZbp1g2d4dpki2mf63b****:~$ mysql -V mysql Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
Ubuntuのバージョンに基づいて次のいずれかのコマンドを実行し、MySQLに接続します。
sudo mysql
次のコマンドを実行して、Ghostのデータベースを作成します。
この例では、ghost_dataという名前のデータベースが作成されます。
CREATE DATABASE ghost_data;
次のコマンドを実行して、
root
ユーザーのパスワードを設定します。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Enter a password for the root user';
次のコマンドを実行して、MySQL特権テーブルをリロードし、データベースに対する権限の変更が有効になるようにします。
FLUSH PRIVILEGES;
次のコマンドを実行してMySQLを終了します。
exit
ステップ4: Node.jsのインストール
GhostはNode.js 20.x (推奨) と18.xのみをサポートします。 この例では、Node.js 20.xが使用されます。
次のコマンドを実行して、Node.jsインストールリポジトリをダウンロードします。
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash
次のコマンドを実行してNode.jsをインストールします。
sudo apt-get install -y nodejs
次のコマンドを実行して、Node.jsのバージョンを確認します。
node -v
次のサンプルコマンド出力が返されます。
test@iZbp1g2d4dpki2mf63b****:~$ node -v v20.18.0
ステップ5: ゴーストをインストールする
(オプション) ノードパッケージマネージャー (npm) イメージリポジトリをAlibaba Cloudイメージリポジトリに設定して、Ghostのインストールを高速化します。
重要npmイメージリポジトリの変更は、その後のnpmパッケージのすべてのインストール手順に影響を与える可能性があります。 Ghostのインストール後、
npm config set registry https://registry.npmjs.org/
コマンドを実行してnpmのデフォルト設定を復元することを推奨します。npm config set registry https://registry.npmmirror.com
次のコマンドを実行して、Ghostの設定に使用するGhost-CLIをインストールします。
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 install
Ghostインストールプロセス中に、次の特定のパラメーターを設定します。 実際のシナリオに基づいてプロンプトに従って他のパラメーターを設定します。
パラメータの説明:
ブログURLを入力: Ghostの解決済みドメイン名を入力します。 例:
http://example.com
。 解決されたドメイン名がない場合は、GhostをインストールするECSインスタンスのパブリックIPアドレスを入力します。 この例では、http:// 47.98.XX.XX
を入力します。MySQLホスト名を入力: データベースがインストールされているECSインスタンスのホスト名を入力します。 この例では、MySQLデータベースとGhostが同じECSインスタンスにインストールされているため、
Enter
キーを押してデフォルト値を使用します。MySQLユーザー名を入力: データベースへのログインに使用するユーザー名を入力し、
Enter
キーを押します。 この例では、root
が入力されます。MySQLパスワードを入力: データベースへのログインに使用するパスワードを入力し、
Enter
キーを押します。説明データベースへのログインに使用されるパスワードは、手順3で指定したパスワードです。
ゴーストデータベース名を入力: ゴースト用に作成したデータベースの名前を入力し、
Enter
キーを押します。 この例では、ghost_data
が入力されています。説明データベースの名前は、手順3で指定した名前です。 この例では、名前は
ghost_data
です。
設定が完了すると、ページの下部にGhost管理者のアクセスアドレスが表示されます。 この例では、http:// 47.98.XX.XX/ghostが表示されます。
ゴーストサイトへの接続をテストします。
フロントエンドのホームページまたはGhostのバックエンド管理ページにアクセスするには、次の操作を実行します。
Frontendホームページ
WindowsコンピューターまたはインターネットにアクセスできるWindowsコンピューターで、ブラウザーを開き、アドレスバーにhttp:// <ECSインスタンスのパブリックIPアドレス> と入力して、Ghostのフロントエンドホームページにアクセスします。
説明エラーコード502が返された場合は、ECSインスタンスのファイアウォールで例外が発生していないか確認してください。 ファイアウォールを無効にできます。
バックエンド管理ページ
WindowsコンピューターまたはインターネットにアクセスできるWindowsコンピューターで、ブラウザーを開き、アドレスバーに
http:// <ECSインスタンスのパブリックIPアドレス>/ghost
と入力して、Ghostのバックエンド管理ページにアクセスします。Ghostのバックエンド管理ページに初めてアクセスするときは、指示に従ってGhostの設定を完了します。
ドメイン名に対する操作
Webサイトを設定したいが、独自のドメイン名を持っていない場合は、ドメイン名を購入してください。 ドメイン名を購入した後、Webサイトが中国本土のECSインスタンスにデプロイされている場合は、ドメイン名のICP (Internet Content Provider) 申請を申請し、ドメイン名をECSインスタンスのパブリックIPアドレスに解決します。 次の操作を実行します。
ドメイン名を購入する
Webサイトに一意のドメイン名を指定できます。 このようにして、Webサイトにアクセスしたいユーザーは、複雑なIPアドレスの代わりに識別しやすいドメイン名を使用できます。
Alibaba Cloudからドメイン名を購入することを推奨します。 詳細については、「Alibaba Cloudでのドメイン名の登録」をご参照ください。
ドメイン名のICP申請を申請する
中国本土のECSインスタンスにデプロイされているWebサイトに関連付けられているドメイン名のICP申請を申請します。 お客様のWebサイトは、ドメイン名のICP登録番号を取得した後にのみサービスを提供できます。
ドメイン名を解決する
Alibaba Cloud DNSを使用して、WebサイトがデプロイされているECSインスタンスのIPアドレスにドメイン名を解決します。 これにより、ユーザーはドメイン名を使用してWebサイトにアクセスできます。 詳細については、「スタートアップ」をご参照ください。