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ページ、写真、ビデオなどの大量のデータを保存します。
前提条件
次の要件を満たすECSインスタンスが作成されます。
インスタンスは、自動割り当てパブリックIPアドレスまたはelastic IPアドレス (EIP) に関連付けられています。 詳細については、「EIPの関連付けまたは関連付けの解除」をご参照ください。
インスタンスはUbuntu 20.04または22.04を実行します。
インバウンドルールがECSインスタンスのセキュリティグループに追加され、22、80、443、2368のポートが開きます。 詳細については、「セキュリティグループルールの追加」をご参照ください。
(オプション) ステップ1: ユーザーを作成する
インスタンス作成時にecsインスタンスのログインユーザー名としてECS-userを指定した場合は、この手順をスキップして手順2: NGINXのインストールに進みます。
Ghostサイトの設定にrootユーザーを使用しないことをお勧めします。 ECSインスタンスでユーザーを作成し、ユーザーに権限を付与します。
ECS インスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行してユーザーを作成します。
この例では、
test
ユーザーが作成されます。adduserテスト
[新しいパスワード:]
と[新しいパスワードを再入力]
のメッセージが表示されたら、パスワードを入力して確認します。 デフォルトでは、パスワードを入力するとパスワードの文字は非表示になります。 パスワードを確認したら、Enter
キーを押します。[新しい値を入力するか、Enterキーを押してデフォルト
] メッセージが表示されたら、[ENTER]
キーを押してデフォルト値を使用します。 実際のシナリオに基づいて、氏名、部屋番号、職場の電話、自宅の電話、その他のパラメーターを設定することもできます。はいつ情報が正しいですか? [Y/n]
メッセージが表示され、Y
と入力して情報を確認し、enter
キーを押して設定を完了します。
次のコードは、新しいユーザーを設定する方法を示しています。
root @ iZbp1g2d4dpki2mf63b ****:~# adduserテスト ユーザー 'test' を追加... 新しいグループ 'test' (1000) を追加... グループ 'test' を持つ新しいユーザー 'test' (1000) を追加... ホームディレクトリ '/home/test' を作成... '/etc/skel' からファイルをコピー... 新しいパスワード: 新しいパスワードを再入力: passwd: パスワードが正常に更新されました テストのユーザー情報の変更 新しい値を入力するか、デフォルトのEnterキーを押します。 フルネーム []: ルーム番号 []: 仕事の電話 []: ホーム電話 []: その他 []: 情報は正しいですか? [Y/n] Y
次のコマンドを実行して、新しいユーザーをグループに追加します。
usermod -a -G sudoテスト
次のコマンドを実行して、
test
ユーザーに切り替えます。suテスト
ステップ2: NGINXのインストール
ECSインスタンスが自動割り当てパブリックIPアドレスまたはEIPに関連付けられていることを確認します。 詳細については、「EIPの関連付けまたは関連付けの解除」をご参照ください。
Ghostをインストールする前に、NGINXをHTTPサーバーとしてインストールする必要があります。
次のコマンドを順番に実行して、Linuxオペレーティングシステムとソフトウェアパッケージを更新します。
sudo apt-getアップデート sudo apt-get upgrade -y
次のコマンドを実行してNGINXをインストールします。
sudo apt-get install -y nginx
nginx -v
コマンドを実行し、NGINXのバージョンを確認します。nginx -v
次のサンプルコマンド出力が返されます。
nginxバージョン: 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がインストールされていることを示します。テスト @ iZbp1g2d4dpki2mf63b ****:~$ mysql -V mysql Ver 8.0.36-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
Ubuntuのバージョンに基づいて次のいずれかのコマンドを実行し、MySQLに接続します。
sudo mysql
次のコマンドを実行して、Ghostのデータベースを作成します。
この例では、ghost_dataという名前のデータベースが作成されます。
CREATE DATABASE ghost_data;
次のコマンドを実行して、
root
ユーザーのパスワードを設定します。ALTER USER 'root' @ 'localhost' mysql_native_passwordで識別 'ルートユーザーのパスワードを入力';
次のコマンドを実行して、MySQL特権テーブルをリロードし、データベースに対する権限の変更が有効になるようにします。
FLUSH PRIVILEGES;
次のコマンドを実行してMySQLを終了します。
exit
ステップ4: Node.jsのインストール
GhostはNode.js 18.xのみをサポートします。 Node.jsをインストールするには、このセクションの操作を実行します。
次のコマンドを実行して、Node.jsインストールリポジトリをダウンロードします。
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash
次のコマンドを実行してNode.jsをインストールします。
sudo apt-get install -y nodejs
次のコマンドを実行して、Node.jsのバージョンを確認します。
ノードv
次のサンプルコマンド出力が返されます。
テスト @ iZbp1g2d4dpki2mf63b ****:~$ node -v v18.19.1
ステップ5: ゴーストをインストールする
(オプション) ノードパッケージマネージャー (npm) イメージリポジトリをAlibaba Cloudイメージリポジトリに設定して、Ghostのインストールを高速化します。
重要npmイメージリポジトリの変更は、その後のnpmパッケージのすべてのインストール手順に影響を与える可能性があります。 Ghostのインストール後、
npm config set registry https://registry.npmjs.org/
コマンドを実行してnpmのデフォルト設定を復元することを推奨します。npm config setレジストリ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 /var/www/ghost sudo chmod 775 /var/www/ghost
次のコマンドを順番に実行してGhostをインストールします。
cd /var/www/ghost ゴーストインストール
次の図に示すように、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コンピューターで、ブラウザーを開き、アドレスバーに <ECSインスタンスのパブリックIPアドレス> と入力して、Ghostのフロントエンドホームページにアクセスします。
説明エラーコード502が返された場合は、ECSインスタンスのファイアウォールで例外が発生していないか確認してください。 ファイアウォールを無効にできます。
バックエンド管理ページ
WindowsコンピューターまたはインターネットにアクセスできるWindowsコンピューターで、ブラウザーを開き、アドレスバーに
<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サイトにアクセスできます。 詳細については、「Alibaba Cloud DNSの使用を開始する」をご参照ください。