このチュートリアルでは、GhostブログプラットフォームをUbuntuサーバーにインストールする方法を紹介します。 Ghostは、Node.jsでコード化されたオープンソースのブログソフトウェアであり、モダンで美しいブログを作成できます。 Ghostは、ブログ専用に構築されており、WordPressのような包括的なコンテンツ管理システムではないため、WordPressと比較して軽量で、はるかに高速です。
ゴースト機能
執筆時点で、Ghostの最新バージョンはv3.2.0であり、2019年12月23日にリリースされます。Ghostの機能は次のとおりです。
- Markdownベースのエディターで投稿をすばやく作成できます。
- シンプルなコンテンツ管理。
- チームとの共同編集。
- スケジュールされた公開
- 組み込みの分析
- セマンティックマークアップ、パーマリンク、XMLサイトマップ、正規タグ、手動オーバーライドによる自動メタデータを備えた適切なSEOが直接組み込まれています。
- 統合AMP(Accelerated Mobile Pages)のサポート
- 完全なRSSフィード、電子メールサブスクリプションキャプチャフォーム、およびSlackWebhook統合
- 何百もの美しい無料およびプレミアムテーマがGhostマーケットプレイスから入手できます
- ダークモードをサポートする見栄えの良いデフォルトテーマのCapser。
- Linux、Mac、Windowsで利用できるクロスプラットフォームのデスクトップアプリ。
- 公式のGhostMigratorWordPressプラグインを使用すると、WordPressからGhostに簡単に移行できます。
Ghost Foundationはマネージドホスティングを提供していますが、ここでは、UbuntuサーバーでセルフホストのGhostブログを作成する方法を説明します。
UbuntuサーバーにGhostをインストールするための前提条件
Ghostブログを実行するには、少なくとも1GBのRAMを搭載したサーバーが必要です。この特別なリンクをクリックすると、DigitalOceanで$50の無料クレジットを獲得できます。 (新規ユーザーのみ)。すでにDigitalOceanユーザーである場合は、この特別なリンクをクリックして、Vultrで$ 50の無料クレジットを取得できます(新規ユーザーのみ)。 DigitalOceanまたはVultrでアカウントを取得したら、サーバーにUbuntuをインストールし、以下の手順に従います。最高の互換性を得るには、Ubuntu18.04や16.04などのLTSバージョンのUbuntuを使用してください。
ドメイン名も必要です。ドメイン名をNameCheapから登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるためです。
注 :Ubuntuにsudoユーザーと一緒にGhostをインストールしました。最良の結果を得るには、rootではなくsudoユーザーを使用してこのチュートリアルに従う必要があります。 sudoユーザーを追加するには、単に実行します
sudo adduser username sudo adduser username sudo
次に、新しいユーザーに切り替えます。
su - username
ステップ1:Ubuntuを更新する
サーバーがしばらく更新されていない場合は、次のコマンドを実行して既存のソフトウェアパッケージを更新します。
sudo apt update;sudo apt upgrade
ステップ2:UbuntuにNode.jsをインストールする
Ghostでは、LTSバージョンのNode.jsをインストールする必要があり、LTS以外のバージョンはサポートされていません。 Node.jsの最新のLTSバージョンはv12.xですが、現在GhostはNode.jsv10.xとの互換性が高くなっています。以下のコマンドを使用してNodeSourceリポジトリを追加します。
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
次に、Node.jsをインストールします。
sudo apt install nodejs
ノードのバージョンを確認してください。
node -v
サンプル出力:
v10.18.1
npm
を確認してください バージョン:
npm -v
サンプル出力:
6.13.4
ステップ3:MariaDBデータベースサーバーをインストールする
MySQLとMariaDBをサポートします。 MariaDBは、MySQLのドロップイン代替品です。これは、OracleがMySQLをクローズドソース製品に変える可能性があることを懸念しているMySQLチームの元メンバーによって開発されました。それでは、MariaDBデータベースサーバーをインストールしましょう。
次のコマンドを入力して、Ubuntu 18.04/20.04にインストールします。
sudo apt install mariadb-server mariadb-client
インストール後、MariaDBサーバーは自動的に開始されます。 systemctlを使用します ステータスを確認します。
systemctl status mariadb
サンプル出力:
● mariadb.service - MariaDB 10.1.34 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-09-08 11:13:27 UTC; 21s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 3473 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 505) CGroup: /system.slice/mariadb.service └─3473 /usr/sbin/mysqld
実行されていない場合は、次のコマンドで開始します:
sudo systemctl start mariadb
MariaDBがシステムの起動時に自動的に起動できるようにするには、
を実行します。sudo systemctl enable mariadb
次に、インストール後のセキュリティスクリプトを実行します。
sudo mysql_secure_installation
MariaDBのrootパスワードの入力を求められたら、rootパスワードがまだ設定されていないため、Enterキーを押します。次に、 y
と入力します MariaDBサーバーのルートパスワードを設定します。
次に、Enterキーを押して残りのすべての質問に答えることができます。これにより、匿名ユーザーが削除され、リモートrootログインが無効になり、テストデータベースが削除されます。このステップは、MariaDBデータベースセキュリティの基本的な要件です。 (文字 Y
大文字で表示されます。これは、デフォルトの回答であることを意味します。)
MariaDBサーバーのバージョン情報を確認してください。
mariadb --version
出力:
mariadb Ver 15.1 Distrib 10.1.34-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
ステップ4:Ghostのデータベースとユーザーを作成する
次に、MariaDBコンソールにログインし、Ghostのデータベースとユーザーを作成する必要があります。デフォルトでは、UbuntuのMaraiDBパッケージは unix_socketを使用します ユーザーログインを認証します。これは基本的に、OSのユーザー名とパスワードを使用してMariaDBコンソールにログインできることを意味します。したがって、次のコマンドを実行して、MariaDBのrootパスワードを指定せずにログインできます。
sudo mariadb -u root
次のコマンドを使用して、Ghostのデータベースを作成します。 ghost
という名前を付けました 、ただし、好きな名前を使用できます。 (セミコロンを省略しないでください。)
create database ghost;
次に、以下のコマンドを入力してGhostのデータベースユーザーを作成し、Ghostデータベースのすべての権限をユーザーに付与します。
grant all privileges on ghost.* to ghost@localhost identified by 'ghost_password';
変更を有効にするために特権テーブルをフラッシュしてから、MariaDBコンソールを終了します。
flush privileges; exit;
ステップ5:NginxWebサーバーをインストールする
GhostはNginxWebサーバーを使用するため、次のコマンドを実行して、デフォルトのUbuntuリポジトリからインストールします。
sudo apt install nginx
UFWファイアウォールを使用している場合は、ポート80と443も開く必要があります。
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
ステップ6:ブログのドメイン名のレコードを作成する
Ghostをインストールする前に、ブログのドメイン名のDNSAレコードを作成することをお勧めします。 Aレコードは、ドメイン名がUbuntuサーバーのIPアドレスを指していることを示しています。
ステップ7:Ghostをインストールする
Ghost-CLIをインストールします。
sudo npm install [email protected] -g
次に、ディレクトリを作成します( / var / www / ghost /
)Ghostの場合。
sudo mkdir -p /var/www/ghost/
ユーザーアカウントに権限を付与します。 username
を置き換えます 実際のユーザー名で。
sudo apt install acl sudo setfacl -R -m u:username:rwx /var/www/ghost/ sudo chmod 775 /var/www/ghost
次に、作業ディレクトリを / var / www / ghost /
に変更します。 Ghostをインストールします。
cd /var/www/ghost/ ghost install
インストールには時間がかかる場合があります。インストール中に、ブログのURLを入力するように求められます。 https://yourdomain.com
のように入力します 。また、手順4で作成したMariaDBデータベース名とユーザークレデンシャルを入力する必要があります。
? Enter your blog URL: https://yourdomain.com ? Enter your MySQL hostname: localhost ? Enter your MySQL username: ghost ? Enter your MySQL password: ghost_password ? Enter your Ghost database name: ghost
Ubuntu 20.04を使用していて、次のメッセージが表示された場合は、無視してインストールを続行できます。
System checks failed with message: 'Linux version is not Ubuntu 16 or 18' Some features of Ghost-CLI may not work without additional configuration. For local installs we recommend using `ghost install local` instead.
ゴーストコード> システムユーザーは自動的に作成されます。 NginxとSSLの設定に同意することをお勧めします。そうすれば、ブログは安全なHTTPSプロトコルを介して利用できるようになります。また、Ghostを簡単に開始、停止、または再起動できるように、Systemdサービスのセットアップに同意します。
Ghostが正常にインストールされたら、 https://yourdomain.com/ghost
にアクセスします セットアップを完了します。まず、アカウントを作成する必要があります。
次に、一部のスタッフユーザーをGhostブログに招待するか、後で招待することができます。
ステップ8:Nginx構成ファイルを編集する
デフォルトでは、GhostのNginx構成ファイルには1つのドメイン名が含まれています。 Nginxがwwwドメインと非wwwドメインの両方にサービスを提供するようにする場合は、構成ファイルを編集します。
sudo nano /etc/nginx/sites-enabled/yourdomain.com.conf
次の行を見つけます
server_name yourdomain.com;
wwwドメインを追加します。
server_name yourdomain.com www.yourdomain.com;
ファイルを保存して閉じます。次に、 /etc/nginx/sites-enabled/yourdomain.com-ssl.conf
を削除します ファイル。
sudo rm /etc/nginx/sites-enabled/yourdomain.com-ssl.conf
次に、Certbot Let’sEncryptクライアントをインストールします
sudo apt install certbot python3-certbot-nginx
wwwドメインと非wwwドメインの両方のSSL証明書を取得します。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com
Nginxを再起動すれば完了です。
sudo systemctl restart nginx
ステップ9:メール通知を設定する
Ghostブログからメールを送信するには(パスワードのリセット、スタッフユーザーの招待、メンバーのサインアップなど)、SMTP設定を構成する必要があります。独自のメールサーバーを使用する場合は、次のチュートリアルを読んで、独自のメールサーバーを簡単にセットアップしてください。
- iRedMailを使用してUbuntu18.04で独自のメールサーバーを簡単にセットアップする方法
独自のメールサーバーを作成したら、Ghost構成ファイルを編集します。
sudo nano /var/www/ghost/config.production.json
デフォルトのメール設定は次のとおりです。
"mail": { "transport": "Direct" },
SMTPを使用するように変更します。
"mail": { "transport": "SMTP", "from": "[email protected]", "options": { "service": "yourdomain.com", "host": "mail.yourdomain.com", "port": 465, "secureConnection": true, "auth": { "user": "[email protected]", "pass": "the_email_account_password" } } },
GhostはSMTPのポート587をサポートしていないことに注意してください。ファイルを保存して閉じます。次に、systemdサービスを介してGhostを再起動します。
sudo systemctl restart ghost_yourdomain-com.service
これで、Ghostブログがメールを送信できるようになります。