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
推奨されるインストール場所であるディレクトリ。
GhostのGitHubリポジトリから最新バージョンのGhostをダウンロードします。 wget
:
- wget https://ghost.org/zip/ghost-latest.zip
アーカイブを解凍するには、最初に unzip
パッケージマネージャーを使用したプログラム。 新しいプログラムをインストールする前に、システムが最新であることを確認することを常にお勧めします。そのため、パッケージを更新してインストールします。 unzip
次のコマンドを使用します。
- sudo yum update -y
- sudo yum install unzip -y
The -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アドレスに入力します。
...
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: {},
...
The url
値は、次のようなURLの形式である必要があります http://example.com
また http://11.11.11.11
. この値が正しくフォーマットされていない場合、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
ゴーストはポートでリッスンしています 2368
、およびパブリックネットワークインターフェイスでリッスンしていないため、直接アクセスすることはできません。 Ghostの前にNginxをセットアップしましょう。
ステップ3—リクエストをGhostにプロキシするようにNginxを構成する
次のステップは、Ghostブログを提供するようにNginxを設定することです。 これにより、ポートでの接続が可能になります 80
Ghostが実行されているポートに接続して、他のユーザーがGhostブログにアクセスできるようにします。 :2368
アドレスの最後まで。 また、間接参照のレイヤーを追加し、ブログが大きくなった場合にブログをスケールアウトできるように設定します。
Ghostがまだ端末で実行されている場合は、を押します CTRL+C
続行する前にGhostインスタンスをシャットダウンします。
それでは、Nginxを構成しましょう。 に変更します /etc/nginx
最初のディレクトリ:
- cd /etc/nginx/
前提条件のチュートリアルに示されているように、CentOS EPELリポジトリからNginxをインストールした場合、 sites-available
と sites-enabled
Webサイトの構成を管理するために使用されるディレクトリ。 それらを作成しましょう:
- 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アドレスに:
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;
}
}
この基本構成は、このサーバーに対するすべてのリクエストをポートで実行されているGhostブログに送信します 2368
、および適切な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
フォルダ:
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/*;
次に、完全にコメントアウトします server
の中に見つかったブロック 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/*;
# 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
方法を指定するユニットファイル systemd
Ghostを管理する必要があります。 プレス CTRL+C
Ghostを停止し、ログアウトするには ghost
を押してユーザーアカウント CTRL+D
.
の定義を保持する新しいファイルを作成します systemd
ユニットファイル:
- sudo vi /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でテーマを変更して設定を調整する方法。