VPS 에 HEXO 블 로 그 를 설치 하 다

7049 단어
행 사 를 틈 타 1 핵 1G 텐 센트 클 라 우 드 CVM 을 구 했 는데 양심 가 는 64 개 월 에 360 위안 이다.첫 번 째 시간 에 nginx + git + hexo 를 설치 합 니 다. 과정 구덩이 가 많 습 니 다. Mark 하 세 요.
  • 서버 에 nginx 와 git 설치
  • 로 컬 에 hexo 를 설치 하고 서버 에 사 이 트 를 배치 합 니 다
  • 서버 운영 체 제 는 Centos 7.4 로 SELinux, Firewalld 를 열 고 SSH 가 암호 로그 인, 루트 로그 인 을 금지 하고 기본 22 포트 를 수정 하도록 설정 합 니 다.(참조:)
    첫 번 째 설치 nginx
    ===   nginx rpm ===
    [root@localhost ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    
    === yum  nginx ===
    [root@localhost ~]# yum install -y nginx
    
    ===   nginx ===
    [root@localhost ~]# systemctl start nginx.service
    
    ===      ===
    [root@localhost ~]# systemctl enable nginx.service
    
    ===       ===
    [root@localhost ~]# firewall-cmd --add-service=http --permanent
    
    ===         ===
    [root@localhost ~]# firewall-cmd --reload
    

    이 때 브 라 우 저 를 통 해 서버 IP 에 접근 하면 nginx 환영 정보 가 나 올 것 입 니 다.기본 사이트 루트 디 렉 터 리 /usr/share/nginx/html, 기본 사이트 프로필 /etc/nginx/conf.d/default.conf 은 기본 사이트 로 HEXO 배 치 된 디 렉 터 리 를 직접 만 들 려 면 두 번 째 단 계 를 건 너 뛸 수 있 습 니 다.
    두 번 째 단계 nginx 사이트 설정
    포트 가 8008 이 고 루트 디 렉 터 리 가 /var/www/hexo 인 웹 사 이 트 를 사용자 정의 합 니 다.
  • SELinux 와 Firewalld 가 8008 포트
  • 를 열 었 음 을 확인 합 니 다.
    ===   SELinux http   ===
    [root@localhost ~]# semanage port -l | grep http
    ...
    http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
    ...
    
    ===     SElinux    http  , 8007 ===
    [root@localhost ~]# semanage port -a -t http_port_t -p tcp 8007
    
    ===   Firewalld        http ===
    [root@localhost ~]# firewall-cmd --list-all
    ...
    services:  ssh dhcpv6-client http
    ...
    
    ===  8008       http   ===
    [root@localhost ~]# firewall-cmd --service=http --add-port=8008/tcp --permanent
    
    ===         ===
    [root@localhost ~]# firewall-cmd --reload
    
    ===   firewall http     
    [root@localhost ~]# firewall-cmd --info-service=http
    ...
    http
      ports: 80/tcp 8008/tcp
    ...
    
  • 새 디 렉 터 리 를 만 들 고 디 렉 터 리 권한 을 확인 합 니 다.
  • ===           ===
    [root@localhost ~]# mkdir /var/www
    [root@localhost ~]# cd /var/www
    [root@localhost www]# mkdir hexo
    [root@localhost www]# cd hexo
    [root@localhost hexo]# nano index.html
    ...
    hello world!
    ...
    
    ===          ===
    [root@localhost hexo]# ls -al
    ...
    drwxr-xr-x. 7 root root 4096 Mar 8 16:04 .
    drwxr-xr-x. 3 root root 4096 Mar 8 15:15 ..
    -rw-r--r--. 1 root root 6557 Mar 8 16:04 index.html
    ...
    # .       hexo
    # drwxr-xr-x          755
    # -rw-r--r--       644
    #   755   644        
    
    ===        ===
    [root@localhost hexo]# chmod -R 755 /var/www/hexo
    [root@localhost hexo]# chmod -R 644 /var/www/hexo/index.html
    
  • 프로필
  • ===       hexo.conf ===
    [root@localhost ~]# nano /etc/nginx/conf.d/hexo.conf
    ...
    server {
        listen       8008;
        server_name  localhost;
        location / {
            root   /var/www/hexo;
            index  index.html index.htm;
        }
    }
    ...
    
    ===   nginx === 
    [root@localhost ~]# nginx -s reload
    

    이 경우 브 라 우 저가 8008 포트 를 통 해 서버 에 접근 하면 403 오류 가 발생 할 수 있 습 니 다.
  • SELinux 접근 제한 수정
  • ===  SELinux   Permissive    (   ,    ) ===
    [root@localhost ~]# setenforce 0
    [root@localhost ~]# getenforce
    Permissive
    

    이 럴 때 브 라 우 저 는 Hello World 가 나타 나 면 8008 포트 기 를 통 해 서버 에 접근 합 니 다!SELinux 로 인해 사이트 에 403 오류 가 발생 한 것 이 확실 하 다 는 것 을 증명 합 니 다. 다음은 저희 가 해결 하 겠 습 니 다.
    ===   SELinux     ===
    [root@localhost ~]# yum install selinux-policy-doc
    
    ===   SELinux   ===
    [root@localhost ~]# grep nginx /var/log/audit/audit.log | audit2allow -m nginx
    
    ====        ===
    ......
    module nginx 1.0;
    
    require {
            type httpd_t;
            type var_t;
            class file { getattr open read };
    }
    
    #============= httpd_t ==============
    
    #!!!! WARNING: 'var_t' is a base type.
    #!!!! The file '/var/www/hexo/index.html' is mislabeled on your system.
    #!!!! Fix with $ restorecon -R -v /var/www/hexo/index.html
    allow httpd_t var_t:file { getattr open read };
    ......
    
    ====       ===
    #        /var/www/hexo/index.html  http_t    
    #        /var/www/hexo        http_t    
    [root@localhost ~]# restorecon -R -v /var/www/hexo
    
    ===  SELinux        ===
    [root@localhost ~]# setenforce 1
    [root@localhost ~]# getenforce
    Enforcing
    

    이 럴 때 브 라 우 저 는 Hello World 가 나타 나 면 8008 포트 기 를 통 해 서버 에 접근 합 니 다!SELinux 의 nginx 권한 문 제 를 해결 했다 는 뜻 입 니 다.
    3 단계 git 서버 설치
    ===   git ===
    [root@localhost ~]# yum install git
    
    ===   git   ===
    [root@localhost ~]# adduser git
    
    ===    ~/.ssh/       authorized_keys   ===
    [root@localhost ~]# cd /home/git/
    [root@localhost ~]# mkdir .ssh
    [root@localhost ~]# touch /home/git/.ssh/authorized_keys
    
    ===            ===
    [root@localhost ~]# chmod 700 /home/git/.ssh
    [root@localhost ~]# chmod 600 /home/git/.ssh/authorized_keys
    [root@localhost ~]# chown -R git:git /home/git/.ssh
    
    ===       authorized_keys ===
    [root@localhost ~]# nano /home/git/.ssh/authorized_keys
    
    ===        git       ===
    #     ,  /etc/ssh/sshd_config  ,        
     1.RSAAuthentication yes  
     2.PubkeyAuthentication yes
     3.AuthorizedKeysFile  .ssh/authorized_keys
    #      git      ,  git   shell  
    [root@localhost ~]# nano /etc/passwd
    #   git    ,    /bin/bash    /usr/bin/git-shell
    

    기타 면 밀 설정 은 '신규 구 매 VPS SSH 안전 조치 메모' 3 시 를 참고 하면 된다.
    네 번 째 단계 서버 창 고 를 만 들 고 git 자동 스 크 립 트 를 설정 합 니 다.
    ===   git   ===
    [root@localhost ~]# mkdir /home/git/repo
    [root@localhost ~]# cd /home/git/repo
    
    ===         ===
    [root@localhost repo]# git init --bare hexo.git
    
    ===        ===
    [root@localhost repo]# cd hexo.git/hooks
    [root@localhost hooks] nano post-receive
    # post-receive   :
    ......
    #!/bin/sh
    git --work-tree=/var/www/hexo --git-dir=/home/git/repo/hexo.git checkout -f
    ......
    #   ,   /var/www/hexo            ,
    # /home/git/repo/hexo.git              ,
    #           push /home/git/repo/hexo.git  ,     /var/www/hexo 
    ===           ===
    [root@localhost hooks]# chmod +x post-receive
    
    ===   hexo.git       git  : ===
    [root@localhost hooks]# chown -R git:git /home/git/repo/hexo.git
    
    ===            git  : ===
    [root@localhost hooks]# chown -R git:git /var/www/hexo
    

    5 단계 로 컬 설치 및 HEXO 설정
  • 로 컬 설치 git
  • 로 컬 설치 node. js
  • 로 컬 설치 hexo
  • hexo 사 이 트 를 새로 만 듭 니 다 (예 를 들 어 Windows 에 서 는 git - bash 를 사용 할 수 있 습 니 다)
  • $ hexo init 
    $ cd 
    $ npm install
    
  • 호스트 별명 설정
  • git push 때 비밀 키 로 서버 에 로그 인 할 수 있 도록 SSH 호스트 별명 을 설정 해 야 합 니 다.MAC / Linux 편집 ~/.ssh/config 파일, Windows 는 /.ssh/config 에서 내용 이 모두 같 습 니 다.
    Host alias
      Hostname 
      User git
      Port 
      IdentityFile ~/.ssh/
    
  • 배치 옵션 설정
  • 그리고 hexo 사이트 의 프로필 _config.yaml 의 배치 옵션 을 편집 합 니 다. repo 하 나 는 이전 단계 에 설 치 된 별명 alias 이 고 그 다음은 서버 의 git 버 전 라 이브 러 리 입 니 다.
    deploy:
      type: git
      repo: alias:/home/git/repo/hexo.git
      branch: master
    
  • 사이트 배치
  • $ hexo g -d
    

    이때 브 라 우 저가 8008 포트 기 를 통 해 서버 에 접근 하면 Hexo 사이트 기본 홈 페이지 가 나타 납 니 다.

    좋은 웹페이지 즐겨찾기