1.ブログの構造
Hexoブログの構築から自動公開までの構造を理解するために、各ステップで実行する操作をよりよく理解できます。
それ以外の場合は、手順を1回だけ実行しますが、理由はわかりません。
まず、このアーキテクチャ図を見てください。
プロセス全体では、ローカル*.md
で静的ファイルに レンダリングしてから、Gitをサーバーにプッシュし、サーバー がWebサイトのルートディレクトリを同期しrepository
ます git-hooks
。
2.全体の建設プロセス
前提条件:Alibaba Cloud Server
最初の部分:インストールGit
、Nginx
構成、およびgit
ユーザーの作成 を含むサーバー環境の構築 。
パート2:Hexo
インストールを含むローカル初期化 NodeJS
、hexo-cli
およびローカル静的Webサイトの生成
パート3:Gitを使用して展開を自動化し、ブログを公開する
3.サーバー環境のセットアップ
3-1。GitとNodeJSをインストールする(CentOS環境)
yum install git
#安装NodeJS
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
NodeJSのインストールは次を参照できます: LinuxのインストールNodeJS
3-2。gitユーザーを作成する
adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers
次を見つける
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
下に行を追加
git ALL=(ALL) ALL
保存して終了してから権限に戻します
chmod 400 /etc/sudoers
次に、Gitユーザーのパスワードを設定します。
#需要root权限
sudo passwd git
gitユーザーに切り替え、~/.ssh
フォルダーと ~/.ssh/authorized_keys
ファイルを作成し 、適切な権限を付与します
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
#然后将电脑中执行 cat ~/.ssh/id_rsa.pub | pbcopy ,将公钥复制粘贴到authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh
次に、sshコマンドを実行して、パスワードなしでログインできるかどうかをテストできます
ssh -v git@SERVER
この時点で、Gitユーザーが追加されました
3-3。Nginxのインストールと設定
lnmpワンクリックインストールパッケージを使用しています。nginxのインストールチュートリアルはたくさんあるので、ここでは説明しません。主にnginxの設定に依存します。
nginx構成ファイルを見つけて、次のように構成を変更します。
server
{
listen 80;
#listen [::]:80;
server_name www.seekbetter.me seekbetter.me;
index index.html index.htm index.php default.html default.htm default.php;
#这里要改成网站的根目录
root /path/to/www;
include other.conf;
#error_page 404 /404.html;
location ~ .*\.(ico|gif|jpg|jpeg|png|bmp|swf)$
{
access_log off;
expires 1d;
}
location ~ .*\.(js|css|txt|xml)?$
{
access_log off;
expires 12h;
}
location / {
try_files $uri $uri/ =404;
}
access_log /home/wwwlogs/blog.log access;
}
4.ローカルHexoプログラム
4-1:Hexoブログを初期化する
最初にインストールするには hexo-cli
、インストールにhexo-cli
はroot権限が必要です。runを使用し sudo
ます
sudo npm install -g hexo-cli
次にHexoプログラムを初期化します
cd ~/Documents/code
hexo init blog
実行が成功した後、2つのプラグインをインストールし、 hexo-deployer-git
そして hexo-server
、これら2つのプラグインの機能は自動的に展開するにGitを使用しており、地元の単純なサーバー。
hexo-deployer-gitヘルプドキュメント
hexo-serverヘルプドキュメント
cd blog
npm install hexo-deployer-git --save
npm install hero-server
4-2。最初の記事hello worldを生成します!
hexo new <文章名称>
新しい記事の作成に使用 し.md
ますsources/_posts
。コマンドはファイルとして フォルダーに配置されます 。
hexo new "hello Hexo"
vim sources/_posts/hello-hexo.md
編集後、を使用hexo g
して.md
ファイルを静的ファイルにレンダリングし、 次に開始しhexo-server
ます。
hexo g
hexo server
これでブラウザを開いてhttp://localhost:4000
、ブログにアクセス できます!
5.自動展開
5-1:サーバーに裸のgitリポジトリを確立する
ベアウェアハウスを作成します。ベアウェアハウスはgit
情報のみを保存しますRepository
。最初に、git
ユーザーに切り替えて、ユーザーがgit
ウェアハウスの所有権を持っていることを確認します。ベアウェアハウスに
なるように追加する必要があります --bare
。
su git
cd ~
git init --bare blog.git
5-2。git-hooksを使用してWebサイトのルートディレクトリを同期する
ここでは、post-receive
このフックを使用しています。 このフックは、gitが送受信しているときに呼び出されます。で ~/blog.git
裸のライブラリ hooks
フォルダ、
新しい作成しpost-receive
たファイルを。
vim ~/blog.git/hooks/post-receive
#!/bin/sh
git --work-tree=/path/to/www --git-dir=~/blog.git checkout -f
保存後、ファイルに実行権限を付与します
chmod +x post-receive
5-3。設定_config.yml
、完全な自動展開
次に、それを開いて _config.yml
見つけます deploy
deploy:
type: git
repo: git@SERVER:/home/git/blog.git //<repository url>
branch: master //这里填写分支 [branch]
message: 提交的信息 //自定义提交信息 (默认为 Site updated: {
{ now('YYYY-MM-DD HH:mm:ss') }})
保存した後、先ほど書いた「hello hexo」をサーバーにデプロイしてみます。
hexo clean
hexo generate --deploy
サーバーアドレスにアクセスすると、「Hello hexo」と書いた記事が表示されます。後で記事を書くだけで済みます。
hexo new "Blog article name"
···写文章
hexo clean && hexo generate --deploy
ブログを更新します!〜