Gitを使用してJekyllブログをデプロイする方法
序章
Jekyll は、Markdownファイルのディレクトリから静的HTMLサイトを生成するツールです。 結果として得られるWebサイトは高速でポータブルであり、nginxなどのサーバーがキャッシュに頼ることなく多くのユーザーに同時にサービスを提供するのが簡単であるため、これは有利です。
Jekyllを使用する最も一般的な方法は、サイトのファイルを Git リポジトリに保持し、ローカルで編集し、git push
を使用してサイトをVPSにデプロイすることです。
ローカルインストール
まだインストールしていない場合は、Ruby、Jekyll、Gitをローカルマシンにインストールする必要があります。
Rubyの場合、次の1つのコマンドを使用して、RVMを備えたRuby2.0の最新リリースをインストールできます。
curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0
それが完了したら(数分かかります)、ログアウトしてから再度ログインします。 Jekyllのインストールは、jekyll
の宝石を手に入れるだけの簡単なことです。
gem install jekyll
ここでGitが必要です。これは、公式Webサイトからダウンロードするか、パッケージマネージャーを使用してインストールできます。 (Macユーザーは Homebrew を使用できますが、Linuxのユーザーはおそらく自分が何をしているかをすでに知っています…)
ブログの作成
Jekyll Webサイトには、ツールの使用に関するクイックスタートガイドと完全なドキュメントがあります。 ここでは絶対的な基本について説明しますが、日常の使用法とカスタマイズについては、ガイドを参照してください。
ローカルマシン上のブログファイルを保存する場所に移動し、次のように新しいブログを作成します。
jekyll new awesomeblog
これにより、構成ファイル、postsディレクトリ、およびその他の必要なビットを含むawesomeblog
ディレクトリが作成されます。 これで、そのディレクトリに移動し、サーバープロセスを起動して、ブラウザでプレビューできます。
cd awesomeblog
jekyll serve
Jekyllがブログを作成し、数秒後にブラウザでhttp://localhost:4000
にアクセスできるようになります。
次に、同じディレクトリにあるGitリポジトリを初期化して、行った変更を追跡できるようにします。
git init
git add .
git commit -m "Initial commit"
VPSを準備する
簡潔にするために、nginxやApacheなどのWebサーバーを実行しているVPSがすでにあると仮定します。 (また、パブリックHTMLフォルダーは/var/www
であると想定しますが、ディストリビューションと構成によって異なる場合があります。)まだこれを行っていない場合は、で利用可能な多くのチュートリアルを参照してください。 nginx。
まず、VPSにGitをインストールします。 UbuntuまたはDebianの場合、次のコマンドを使用してgit-core
パッケージをインストールします。
apt-get install git-core
別のディストリビューションを使用している場合、これは異なる場合があります。 たとえば、Fedoraは代わりにyum install git-core
を使用します。
RubyとJekyllもインストールする必要があります。 以前と同じ:
curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0
gem install jekyll
次に、ホームディレクトリに移動し、展開先の新しい「ベアリポジトリ」を作成します。
cd ~/
mkdir repos && cd repos
mkdir awesomeblog.git && cd awesomeblog.git
git init --bare
その後、受信後フックを設定する必要があります。 これは、ファイルがリポジトリにプッシュされたときにGitが実行するシェルスクリプトです。 次のように作成します。
cd hooks
touch post-receive
nano post-receive
次に、次のスクリプトを貼り付け、それに応じて変数を調整します。 GIT_REPO
は、前の手順で作成したベアリポジトリへのパスです。TMP_GIT_CLONE
は、スクリプトがファイルをチェックアウトし、ブログをビルドしてから/var/www
にコピーする場所です。 ]。 PUBLIC_WWW
は、最終的なサイトが存在するパスです。 この例(Webルートが/var/www
であると仮定)では、サイトはhttp://example.org/awesomeblog
に表示されますが、PUBLIC_WWW
が/var/www
。
#!/bin/bash -l
GIT_REPO=$HOME/repos/awesomeblog.git
TMP_GIT_CLONE=$HOME/tmp/git/awesomeblog
PUBLIC_WWW=/var/www/awesomeblog
git clone $GIT_REPO $TMP_GIT_CLONE
jekyll build --source $TMP_GIT_CLONE --destination $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit
control + Oを押し、Enterキーを押して、ファイルを保存します。 次に、ファイルに実行可能権限を付与します。
chmod +x post-receive
Gitリモートを追加する
ローカルマシンに戻り、ブログのGitリポジトリにリモートを追加します。
git remote add droplet [email protected]:repos/awesomeblog.git
これで、次のコマンドを使用して最新のコミットをサーバーにプッシュできるようになります。
git push droplet master
Jekyllで新しいブログ投稿を行うときはいつでも、変更をGitリポジトリにコミットし、VPSにプッシュします。 クラウドサーバーがサイトを構築し、変更が数秒以内に公開されます。