HexoはアリクラウドECSに配備

7054 ワード

最初はGitHubにブログを構築していたが、ロード速度が遅すぎて我慢できなかったため、導入直後からブログのロードを加速させる方法を検討していた.GitHub+codingにブログの二重線を構築しようとしたが、速度がまだ理想的ではなく、他の方法が見つからないのでECSサーバーを買ってブログを構築し、Linuxを勉強した.
  • 阿里雲ECS Ubuntu 18.04 64ビット
  • Git Hooks

  • 要求

  • ドメイン名(国内登録が必要)
  • クラウドサーバECS
  • ドメイン名の購入


    ドメイン名は国内のいくつかの大手クラウドサービス業者に行って購入することができて、例えば:万網

    ECS購入


    ドメイン名を購入した後、トップページに戻ってECS購入サーバーに入ります.

    登録ドメイン名


    サーバーを購入してからドメイン名を登録することができ、提示に従って登録を完了して3~5日ほど待って、期間中にカスタマーサービスから電話で確認します.

    サーバシステムのインストール


    Ubuntu 18.04 64ビットを選択し、後で変更できるのが好きではありません.

    nvmのインストール


    nvmはnodejsのバージョン管理ツールで、nodejsのバージョンの更新をすばやく切り替えることができます.前にnodeをインストールします.js時に直接インストールされたnodeに遭遇した.jsバージョンが低すぎるため、nvmを使用してインストールします.curlダウンロード:
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
    

    wgetダウンロード:
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
    

    以上のいずれもエラーを報告した場合は、yumを使用して取り付けます.

    インストールNode.js


    実行:nvm install nginx入力nginx -V nginxバージョン情報が表示されると、インストールに成功します.

    インストールGit


    実行:yum install git、完了後git --versionでGitバージョンを表示し、バージョン情報を表示するとインストールに成功したことを示します.

    gitユーザーの作成


    実行:adduser git、プロンプトに従ってパスワードを設定します.

    gitユーザーsudo権限の付与


    実行:
    chmod 740 /etc/sudoers
    vim /etc/sudoers
    

    次のものが見つかりました.
    # User privilege specification
    root    ALL=(ALL:ALL) ALL
    
    root ALL=(ALL:ALL) ALL行の下にgit ALL=(ALL:ALL) ALLを追加
    保存が終了したら、ファイルに戻る権限を変更します.
    chmod 440 /etc/sudoers
    

    gitユーザーshell権限を閉じる


    次のこともできます.
    ssh git@VPS IP
    

    sshはサーバーに接続して、サーバーにログインして、サーバーに対して各種の操作を行って、これは通常とても安全ではありませんて、適切ではありませんて、私達は倉庫に対して操作することができるだけで、もっと大きい権限を必要としません.
    gitユーザーshell権限を閉じて実行します.
    vim /etc/passwd
    

    最後の行のgit:x:1001:1001:,,,:/home/git:/bin/bashgit:x:1001:1001:,,,:/home/git:/usr/bin/git-shellに変更

    git倉庫の初期化

    cd /home/git                // git 
    mkdir blog.git              // git , blog.git 
    cd blog.git                 // 
    git init --bare             // --bare , 
    

    注意:裸倉庫にはワークスペースがありません.サーバー上のGit倉庫は純粋に共有のためですから、ユーザーに直接サーバーにログインさせないでワークスペースを変更します.そして、サーバー上のGit倉庫は通常.gitエンディング.

    Webサイトカタログの作成

    cd /var/www/                // 
    mkdir blog                  // , blog 
    

    SSHの設定

    cd /home/git                // git 
    mkdir .ssh                  // .ssh 
    cd .ssh
    vim authorized_keys
    

    ローカルの公開鍵をauthorized_にコピーします.keysファイル(公開鍵はcat~/.ssh/id_rsa.pub表示をローカルで実行し、実行できない場合は作成する必要があります).
    注意:ログインする必要があるすべてのユーザーの公開鍵を収集するのは、彼ら自身のidです.rsa.pubファイルは、すべての公開鍵を/home/git/.にインポートする.ssh/authorized_keysファイルには、1行1つ.

    ユーザグループ管理


    ll/home/git/ll/var/www/blog.git.ssh、blogディレクトリのユーザー・グループ権限がgit:gitであることを確認し、そうでない場合は、次のコマンドを実行します.
    chown -R git.git /home/git/blog.git/
    chown -R git.git /home/git/.ssh/
    chown -R git.git /var/www/blog/
    

    nginxの構成

    cd /etc/nginx/sites-available               // 
    cp default default.bak                  // 
    vim default                     // 
    

    参照構成の変更:
    root /var/www/blog;		// 
    server_name guchcx.fun, www.guchcx.fun;  # 
    

    保存終了後、nginxを起動します.
    systemctl start nginx
    

    POSTの自動起動を設定するには、次の手順に従います.
    systemctl enable nginx
    

    実行ステータスの表示:
    systemctl status nginx
    

    runningが正常に実行されたことを示します.

    Git Hooksの設定


    post-receiveファイルの作成
    su git
    

    gitユーザーの下で実行します(ここでrootユーザーで上記のコマンドを実行し、ファイル所有者をgit.gitに変更しました):
    cd /home/git/blog.git/hooks     // hooks 
    vim post-receive            // 
    

    次の内容をpost-receiveファイルにコピーします.
    #!/bin/bash
    echo "post-receive hook is running..."
    
    GIT_REPO=/home/git/blog.git
    TMP_GIT_CLONE=/tmp/blog
    PUBLIC_WWW=/var/www/blog
    
    rm -rf ${TMP_GIT_CLONE}
    git clone $GIT_REPO $TMP_GIT_CLONE
    rm -rf ${PUBLIC_WWW}/*
    cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
    

    実行可能権限を付与:
    chmod +x post-receive
    

    ローカルアクション


    Git Bashをローカルで開いてみます.
    ssh git@VPS ip
    

    デフォルトのポートが22でない場合は、-pエンドのスローガンを追加する必要があります.
    ssh git@VPS ip -p 2022
    

    Hexoの設定


    ローカルブログのルートを開く_config.ymlファイル、最後のdeploy構成を見つけて、次のように変更します.
    # Deployment
    ## Docs: https://hexo.io/docs/deployment.html
    deploy:
        type: git
        # repo: git@VPS IP:/~/blog.git  #  
        # repo: ssh://git@VPS IP: /~/blog.git #  , 
        branch: master
    

    参考記事:


    HexoブログをVPSに配備