Hexoの読み方が未だによくわかりません。
ヘキソ?
##はじめに
思い込みって怖い。
サーバーはド素人なのに、VPSにHexoのサイトを置こうと思ってnodeやらnvmやらmp2やら入れて稼働もできたけど、必要無かったお話。
node.jsの勉強にはなってよかった。
##目指す所
ローカル(Mac)で作ったHexoのサイトを、さくらVPSにデプロイする。
サイトが見れれば良いので、Hexoそのものはサーバーで動かさない。
Hexoはgenelateしたファイルを全部publicフォルダに入れるので、このファイル群をHexoからデプロイできれば良い。
##ウェブサーバーの設定
apatchでもいいですが、借りっぱなしのVPS、勉強がてらnginxで設定してみました。
###nginxのインストール
ルート権限で、yumからnginxをインストール。
sudo yum update
sudo yum install nginx
インストールしたら、設定ファイルをVimで編集。
sudo vim /etc/nginx/conf.d/default.conf
バーチャルホストの設定を追加。
複数サイトを追加したいときは、server {}
をコピーして必要な箇所を書き換えればとりあえず増やせます。
hogehoge.com
を各自の設定に変更してもらえれば使えると思います。
server {
listen 80;
server_name hogehoge.com;
charset utf-8;
access_log /var/log/nginx/hogehoge.com.access.log main;
location / {
root /usr/share/nginx/html/hogehoge.com/public;
index index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html/hogehoge.com/public;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html/hogehoge.com/public;
}
}
###デプロイ先のディレクトリの権限をユーザーに変更
公開用のディレクトリ内をユーザー権限で操作できるようにしておくのが必要なはずなのでやっておく。
<username>
は書き換えて下さい。
$ sudo chown -R <username>:<username> /usr/share/nginx/html/hogehoge.com
サーバー側の設定はこれで終わり。
##ローカル環境で記事を作成
nodeとnpmをインストールしてあれば、作れます。
他の紹介記事がたくさんあるので詳細は割愛。
#npmでhexoをインストール
$ npm install hexo-cli -g
#サイトを構築したいディレクトリで設定
$ hexo init
$ npm install
#記事編集したら書き出し
$ hexo g
#vpsへデプロイ
$ hexo deploy
#デプロイ時にgenelateすることも出来る
$ heco deploy -g
##デプロイはRsyncで
GitHub Pagesはgitでやりますが、vpsなので、rsyncでpublicディレクトリを同期する事にします。
Hexoのdeploy typeにも用意されているので、initしたディレクトリにある_config.yml
に設定を記述します。
ターミナルからsshでサーバーにログインするときの情報を入れれば良いかと。
#deployの設定のところだけ抜粋
deploy:
type: rsync
host: <your site ip>
user: <user name>
root: /usr/share/nginx/html/hogehoge.com/public
port: <port number>
delete: true
verbose: true
ignore_errors: false
Rsyncが許可されている必要があるみたいですが、さくらVPSの初期設定の状態ではデプロイできました。
ただ、設置に満足して更新しなさそうなのがたまにキズ。
以上、現場からお伝えしました。