Installer Hexo på CentOS 7

Hexo er en statisk bloggplattform, bygget med Node.js. Det er raskt sammenlignet med andre statiske bloggplattformer, som Jekyll.

I denne opplæringen vil jeg forklare hvordan du bygger og distribuerer en Hexo-blogg. Trinnene er ganske enkle, skrevet for CentOS 7, Node.js 4.4. Min lokale maskin er Fedora 23.

Forutsetninger

Vi starter med et nyinstallert CentOS 7-system. Følgende programvarepakker kreves:

  • gcc-c og gcc-c++
  • lage og git
  • nginx
  • openssl
  • nodejs og npm

Du må logge inn som root, eller som bruker med sudo-rettigheter.

Installer verktøy

$ yum install -y gcc gcc-c++ make git openssl

Installer Nginx

Du kan installere nginxfra standard repo:

$yum install -y nginx

... eller installer en stabil versjon fra offisiell Nginx repo, Her velger vi sistnevnte.

Lag en repo-fil med navnet nginx.repo, hvorav innholdet er:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

... og kopier den til /etc/yum.repo.d/,

$ cp nginx.repo /etc/yum.repo.d/
$ yum update and yum install -y nginx
$ systemctl enable nginx and systemctl start nginx

Installer Node.js

Vi installerer den lenge støttede Node.js fra den offisielle Node.js-repoen.

$ curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
$ yum update and yum install -y nodejs

Opprett en ny bruker

Vanligvis er det bedre å opprette en vanlig bruker for å kjøre bloggen din, fordi root har superbrukertillatelser.

Her oppretter vi en bruker som heter vultrog legger den til i gruppen wheelog nginx:

$ useradd -d /home/vultr -m -r -U -s /bin/bash
$ passwd vultr
$ usermod -aG nginx vultr
$ usermod -aG wheel vultr

Generer et SSH-nøkkelpar

Det er nyttig og nødvendig å logge på via en ssh-nøkkel.

$ ssh-keygen -b 4096 -C "vultr@example.com"

Etter å ha opprettet vårt ssh-nøkkelpar, kopier den offentlige nøkkelen (vanligvis id_rsa.pub) til ~/.ssh/authorized_keyspå serveren:

ssh-copy-id -i ~/.ssh/id_rsa.pub vultr@example.com

Og nå har vi alle forhåndsbyggingspakkene installert.

Bygg din Hexo-blogg

Installer Hexo

Logg inn som vultrbruker. Deretter oppretter du ~/web/web/vultrog ~/web/git/vultr:

### This is our hexo blog root directory
$ mkdir -p ~/web/web/vultr
### This is our git repository directory on the server
$ mkdir -p ~/web/git/vultr
### This is our deploy directory
$ mkdir -p ~/web/git/hexo

Skriv inn ~/web/web/vultrog installer Hexo:

$ cd ~/web/web/vultr
$ sudo npm install -g hexo-cli hexo-server
$ hexo init && npm install --save

Nå må vi bare lage vår nye blogg.

Rediger for _config.ymlå endre webadressen til bloggen din. Kjør deretter:

$ hexo g

Bloggen din er nå generert. HTML-filene er plassert under ~/web/web/vultr/public.

Sett opp Nginx-serveren din

På dette tidspunktet har vi fortsatt ikke tilgang til nettstedet vårt. Derfor må vi konfigurere Nginx.

Nginx kjører som en bruker navngitt nginxi nginxgruppen, og det er derfor vi må legge vultrtil i gruppen nginx.

$ chown -R vultr:nginx ~/web

Opprett en Nginx-konfigurasjonsfil som er navngitt vultr.confunder ~/web/som innholdet er mer eller mindre slik:

server {
    listen 80;
    listen [::]:80;
    ## if https is desired, please uncomment the following lines
    #listen 443 ssl http2;
    #listen [::]:443 ssl http2;

    server_name example.com, www.example.com;

    ## if forcing https, please uncomment the following lines
    #if ($scheme = http) {
    #    return 301 https://$server_name$request_uri;
    #}

    location / {
    root /home/vultr/web/web/vultr/public;
    index index.html;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    ## if https is desired, please uncomment the following lines
    #proxy_set_header X-Forwarded-Proto https;
    }
}

Kopier vultr.conftil /etc/nginx/config.d/og start Nginx på nytt:

$ sudo ln -sf ~/web/vultr.conf /etc/nginx/config.d/
$ sudo systemctl restart nginx

Nå er bloggen vår tilgjengelig med en nettleser.

Bruker Git til å distribuere bloggen din

Siden bloggen allerede er satt opp, er denne delen av opplæringen valgfri.

På dette tidspunktet er det litt upraktisk å skrive et blogginnlegg, fordi vi må logge inn og skrive på serveren. En bedre løsning ville være å skrive på vår lokale maskin, skyve innlegget inn på serveren og la Hexo generere de statiske filene automatisk. Med tanke på at git har hooks som kan gjøre mange ting, kan vi bruke en git-hook for å oppnå dette oppsettet.

Opprett et bare depot på serveren

Logg på serveren igjen som bruker vultr. Opprett et bare depot:

$ cd ~/web/git/vultr
$ git init --bare
$ cd hooks

Skriv en bash-fil med navnet post-receivesom vil distribuere bloggen vår etter hvert trykk:

#!/bin/bash
deploy_to_dir="/home/vultr/web/git/hexo"

GIT_WORK_TREE=$deploy_to_dir git checkout -f master
echo "DEPLOY:   master  copied to  $deploy_to_dir"

hexo_dir="/home/vultr/web/web/vultr/"

cd $hexo_dir

hexo clean && hexo --silent g

if [[ $? == 0 ]]; then
    echo "Congratulations! Your blog has been correctly deployed"
else:
    echo "Unfortunately your blog has not been deployed correctly"
fi

Før distribusjonen vil fungere, må vi også kjøre disse kommandoene på serveren:

cd ~/web/web/vultr/
rm -rf source scaffolds _config.yml themes
ln -sf /home/vultr/web/git/hexo/themes/tranquilpeak  themes/
ln -sf /home/vultr/web/git/hexo/source .
ln -sf /home/vultr/web/git/hexo/scaffolds .
ln -sf /home/vultr/web/git/hexo/_config.yml .

Sett opp ditt lokale git-lager

På den lokale maskinen må vi også lage et depot. Disse trinnene kan variere hvis du bruker et annet operativsystem enn Fedora.

Du må ha git installert.

Sett opp et lokalt git-lager:

$ mkdir -p ~/vultr/git/vultr`
$ cd ~/vultr/git/vultr and git init
$ git remote add production ssh://vultr@example.com:/home/vultr/web/git/vultr

Det er nyttig å installere Hexo på din lokale maskin for å skrive et innlegg. Her setter vi opp en Hexo-katalog for skriving.

$ mkdir ~/vultr/vultr && cd ~/vultr/vultr
$ hexo init && npm install --save
$ mv  source  _config.yml themes scaffolds ~/vultr/git/vultr
$ ln -sf ~/vultr/git/vultr/source .
$ ln -sf ~/vultr/git/vultr/_config.yml .
$ ln -sf ~/vultr/git/vultr/scaffolds .
$ hexo new "Test Post"

Oppsettet er fullført. Du kan sende et innlegg til serveren din med følgende kommandoer:

$ cd ~/vultr/git/vultr
$ git add . && git commit -m "new post"
$ git push production master

Ved suksess oppdateres bloggen automatisk. Jubel.

Legg igjen en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer