CentOS7にGhostをインストールして設定する方法
序章
Ghost は、使いやすい軽量のオープンソースブログプラットフォームです。 Ghostは完全にカスタマイズ可能で、多くのテーマを利用できます。
このチュートリアルでは、CentOS7でGhostをセットアップします。 また、リクエストをGhostにプロキシするようにNginxを構成し、Ghostをシステムサービスとしてバックグラウンドで実行し続けます。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- CentOS7の初期サーバーセットアップガイドに従ってセットアップされた1GBのCentOS7サーバー(sudo非rootユーザーを含む)。
- チュートリアルで説明されているEPELリポジトリメソッドを使用してインストールされたNode.js:CentOS7サーバーにNode.jsをインストールする方法。
- CentOS7にNginxをインストールする方法に示されているようにサーバーにインストールされたNginx。
ステップ1—Ghostをインストールする
まず、Ghostをインストールする必要があります。 Ghostを/var/www/ghost
ディレクトリに配置します。これは推奨されるインストール場所です。
wget
を使用して、GhostのGitHubリポジトリから最新バージョンのGhostをダウンロードします。
wget https://ghost.org/zip/ghost-latest.zip
アーカイブを解凍するには、まずパッケージマネージャーを使用してunzip
プログラムをインストールします。 新しいプログラムをインストールする前に、システムが最新であることを確認することを常にお勧めします。そのため、パッケージを更新し、次のコマンドを使用してunzip
をインストールします。
sudo yum update -y sudo yum install unzip -y
上記のコマンドの-y
フラグは、ユーザーに確認を求めずにパッケージを自動的に更新およびインストールします。
unzip
をインストールしたら、ダウンロードしたパッケージを/var/www/ghost
ディレクトリに解凍します。 まず、/var/www
フォルダーを作成してから、ファイルを解凍します。
sudo mkdir /var/www sudo unzip -d /var/www/ghost ghost-latest.zip
/var/www/ghost/
ディレクトリに切り替えます。
cd /var/www/ghost/
次に、Ghostの依存関係をインストールしますが、本番環境に必要な依存関係のみをインストールします。 これにより、Ghostを開発する人だけが必要とする依存関係がスキップされます。
sudo npm install --production
このプロセスが完了するとGhostがインストールされますが、開始する前にGhostをセットアップする必要があります。
ステップ2—Ghostを構成する
Ghostは、/var/www/ghost/config.js
にある構成ファイルを使用します。 このファイルはそのままでは存在しませんが、Ghostのインストールにはファイルconfig.example.js
が含まれており、これを開始点として使用します。
サンプル設定ファイルを/var/www/ghost/config.js
にコピーします。 変更を元に戻す必要がある場合に備えて、元の構成ファイルのコピーを取得できるように、ファイルを移動する代わりにコピーします。
sudo cp config.example.js config.js
編集用にファイルを開きます。
sudo vi config.js
Ghostが使用するURLを変更する必要があります。 そうしないと、ブログのリンクからmy-ghost-blog.comにアクセスできます。 url
フィールドの値をドメイン名に変更するか、現在ドメインを使用しない場合はサーバーのIPアドレスに変更します。
/var/www/ghost/config.js
... config = { // ### Production // When running Ghost in the wild, use the production environment // Configure your URL and mail settings here production: { url: 'http://your_domain_or_ip_address', mail: {}, ...
url
の値は、http://example.com
やhttp://11.11.11.11
のようにURLの形式である必要があります。 この値が正しくフォーマットされていない場合、Ghostは起動しません。
Ghostはメール設定なしで機能できます。 Ghostユーザーのパスワード回復をサポートする必要がある場合にのみ必要です。 このチュートリアルでは、この設定の構成をスキップします。
公式サイトの構成の詳細に従って、Ghostをさらにカスタマイズできます。
ファイルを保存して、エディターを終了します。
/var/www/ghost
ディレクトリにいる間に、次のコマンドでGhostを起動します。
sudo npm start --production
出力は次のようになります。
Output > [email protected] start /var/www/ghost > node index WARNING: Ghost is attempting to use a direct method to send email. It is recommended that you explicitly configure an email service. Help and documentation can be found at http://support.ghost.org/mail. Migrations: Creating tables... ... Ghost is running in production... Your blog is now available on http://your_domain_or_ip_address Ctrl+C to shut down
Ghostはポート2368
でリッスンしており、パブリックネットワークインターフェイスでリッスンしていないため、直接アクセスすることはできません。 Ghostの前にNginxをセットアップしましょう。
ステップ3—リクエストをGhostにプロキシするようにNginxを構成する
次のステップは、Ghostブログを提供するようにNginxを設定することです。 これにより、ポート80
での接続が、Ghostが実行されているポートに接続できるようになるため、アドレスの末尾に:2368
を追加しなくても、Ghostブログにアクセスできます。 また、間接参照のレイヤーを追加し、ブログが大きくなった場合にブログをスケールアウトできるように設定します。
ターミナルでGhostがまだ実行されている場合は、続行する前にCTRL+C
を押してGhostインスタンスをシャットダウンします。
それでは、Nginxを構成しましょう。 最初に/etc/nginx
ディレクトリに移動します。
cd /etc/nginx/
前提条件のチュートリアルに示されているようにCentOSEPELリポジトリからNginxをインストールした場合、Webサイト構成の管理に使用されるsites-available
およびsites-enabled
ディレクトリはありません。 それらを作成しましょう:
sudo mkdir sites-available sudo mkdir sites-enabled
次に、/etc/nginx/sites-available/
にghost
という名前の新しいファイルを作成します。
sudo vi /etc/nginx/sites-available/ghost
次の構成をファイルに配置し、your_domain_or_ip_address
をドメイン名に変更します。ドメインがない場合は、サーバーのIPアドレスに変更します。
/ etc / nginx / sites-available / ghost
server { listen 80; server_name your_domain_or_ip_address; location / { proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:2368; } }
この基本構成は、このサーバーへのすべてのリクエストをポート2368
で実行されているGhostブログに送信し、適切なHTTPヘッダーを設定して、Ghostログを見ると元のIPアドレスが表示されるようにします。訪問者。 この構成の詳細については、 Nginx HTTPプロキシ、負荷分散、バッファリング、およびキャッシュについてを参照してください。
ファイルを保存し、エディターを終了し、/etc/nginx/sites-enabled
ディレクトリーにこのファイルのシンボリックリンクを作成して、この構成を有効にします。
sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost
Nginxは、デフォルトのNginx構成ファイルを変更し、sites-enabled
フォルダーに構成ファイルを含めるように指示するまで、この新しい構成を使用しません。 さらに、デフォルトサイトを無効にする必要があります。 エディタでnginx.conf
ファイルを開きます。
sudo vi nginx.conf
http
ブロック内に次の行を含めて、sites-enabled
フォルダーに構成ファイルを含めます。
/etc/nginx/nginx.conf
http { ... # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
次に、http
ブロック内にあるserver
ブロックを完全にコメントアウトします。
/etc/nginx/nginx.conf
... # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; # server { # listen 80 default_server; # listen [::]:80 default_server; # server_name _; # root /usr/share/nginx/html; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } ... ...
ファイルを保存して、エディターを終了します。 構成をテストして、問題がないことを確認します。
sudo nginx -t
すべてが正しければ、次の出力が表示されます。
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
エラーが表示された場合は、エラーを修正して構成を再テストしてください。
設定ファイルが機能している状態で、Nginxを再起動して変更を適用します。
sudo systemctl restart nginx
Ghostを再開する前に、Ghostを実行するための新しいユーザーアカウントを作成しましょう。
ステップ4–別のユーザーとしてGhostを実行する
セキュリティを向上させるために、Ghostを別のユーザーアカウントで実行します。 このユーザーは、/var/www/ghost
ディレクトリとそのホームフォルダにのみアクセスできます。 このようにして、Ghostが危険にさらされた場合に、システムへの潜在的な損傷を最小限に抑えます。
次のコマンドを使用して、新しいghost
ユーザーを作成します。
sudo adduser --shell /bin/bash ghost
次に、この新しいユーザーを/var/www/ghost
ディレクトリの所有者にします。
sudo chown -R ghost:ghost /var/www/ghost/
次に、このユーザーがGhostを実行できることを確認しましょう。 ghost
ユーザーとしてログインします。
sudo su - ghost
次に、このユーザーの下でGhostを起動し、実行されることを確認します。
cd /var/www/ghost npm start --production
http://your_domain_or_ip_address
でブログにアクセスできるはずです。 NginxはGhostインスタンスにリクエストを送信します。
物事はうまく機能していますが、Ghostが将来にわたってうまく機能し続けることを確認しましょう。
ステップ5—システムサービスとしてGhostを実行する
現在、Ghostはターミナルで実行されています。 ログオフすると、ブログはシャットダウンします。 Ghostをバックグラウンドで実行し、システムの再起動時にGhostが再起動することを確認しましょう。 これを行うには、systemd
がGhostを管理する方法を指定するsystemd
ユニットファイルを作成します。 CTRL+C
を押してGhostを停止し、CTRL+D
を押してghost
ユーザーアカウントからログアウトします。
systemd
ユニットファイルの定義を保持する新しいファイルを作成します。
sudo vi /etc/systemd/system/ghost.service
次の構成をファイルに追加します。これは、サービスの名前、サービスのグループとユーザー、およびサービスの開始方法に関する情報を定義します。
/etc/systemd/system/ghost.service
[Unit] Description=Ghost After=network.target [Service] Type=simple WorkingDirectory=/var/www/ghost User=ghost Group=ghost ExecStart=/usr/bin/npm start --production ExecStop=/usr/bin/npm stop --production Restart=always SyslogIdentifier=Ghost [Install] WantedBy=multi-user.target
systemd
ユニットファイルに慣れていない場合は、チュートリアル Systemdユニットとユニットファイルについてを参照してください。これにより、すぐに理解できるはずです。
ファイルを保存して、エディターを終了します。 次に、サービスを有効にして開始します。
sudo systemctl enable ghost.service sudo sytemctl start ghost.service
もう一度、http://your_domain_or_ip_address
にアクセスすると、ブログが表示されます。
結論
このチュートリアルでは、Ghostをインストールし、リクエストをGhostにプロキシするようにNginxを構成し、Ghostがシステムサービスとして実行されるようにしました。 ただし、Ghostでできることは他にもたくさんあります。 新しいブログの使用方法の詳細については、次のチュートリアルをご覧ください。
- コマンドラインからGhostを構成および保守する方法。
- Ghostでテーマを変更して設定を調整する方法。