Alibaba Cloud ServerはHexoの個人ブログをどのように構築しますか?

1.ブログの構造

Hexoブログの構築から自動公開までの構造を理解するために、各ステップで実行する操作をよりよく理解できます。
それ以外の場合は、手順を1回だけ実行しますが、理由はわかりません。

まず、このアーキテクチャ図を見てください。


image.png

プロセス全体では、ローカル*.md で静的ファイルに  レンダリングしてから、Gitをサーバーにプッシュし、サーバー がWebサイトのルートディレクトリを同期しrepositoryます  git-hooks

2.全体の建設プロセス

前提条件:Alibaba Cloud Server

最初の部分:インストールGit 、Nginx構成、およびgit ユーザーの作成  を含むサーバー環境の構築 

パート2Hexoインストールを含むローカル初期化  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

ブログを更新します!

おすすめ

転載: blog.csdn.net/wx_15323880413/article/details/108266185