2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HexoのサイトをさくらVPSにデプロイしてみた

Posted at

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を各自の設定に変更してもらえれば使えると思います。

default.conf
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でサーバーにログインするときの情報を入れれば良いかと。

_config.yml
#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の初期設定の状態ではデプロイできました。
ただ、設置に満足して更新しなさそうなのがたまにキズ。

以上、現場からお伝えしました。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?