Hexo este o platformă de bloguri statice, construită cu Node.js. Este rapid comparativ cu alte platforme statice de bloguri, cum ar fi Jekyll.
În acest tutorial, vă voi explica cum să construiți și să implementați un blog Hexo. Etapele sunt destul de simple, scrise pentru CentOS 7, Node.js 4.4. Mașina mea locală este Fedora 23.
Cerințe preliminare
Începem cu un sistem proaspăt instalat CentOS 7. Următoarele pachete software sunt necesare:
- gcc-c și gcc-c ++
- make and git
- Nginx
- OpenSSL
- nodejs și npm
Va trebui să vă autentificați ca root sau ca utilizator cu privilegii sudo.
Instalați utilitățile
$ yum install -y gcc gcc-c++ make git openssl
Instalați Nginx
Puteți instala nginxdin repo implicit:
$yum install -y nginx
... sau instalați o versiune stabilă din repertoriul oficial Nginx, Aici îl alegem pe acesta din urmă.
Creați un fișier repo numit nginx.repo, din care conținut este:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
... și copiați-l pe /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
Instalați Node.js
Instalăm Node.js-ul acceptat de mult timp din repo-ul oficial Node.js.
$ curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
$ yum update and yum install -y nodejs
Creați un utilizator nou
De obicei este mai bine să creezi un utilizator obișnuit pentru a-ți rula blogul, deoarece root are permisiuni super-utilizator.
Aici creăm un utilizator numit vultrși îl adăugăm în grup wheelși nginx:
$ useradd -d /home/vultr -m -r -U -s /bin/bash
$ passwd vultr
$ usermod -aG nginx vultr
$ usermod -aG wheel vultr
Generați o pereche de chei SSH
Este util și necesar să vă autentificați printr-o cheie ssh.
$ ssh-keygen -b 4096 -C "[email protected]"
După crearea perechii noastre de chei ssh, copiați cheia publică (de obicei id_rsa.pub) ~/.ssh/authorized_keyspe server:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Și acum, avem toate pachetele pre-construite instalate.
Construiește-ți blogul Hexo
Instalați Hexo
Conectați-vă ca vultrutilizator. Apoi, creați ~/web/web/vultrși ~/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
Introduceți ~/web/web/vultrși instalați Hexo:
$ cd ~/web/web/vultr
$ sudo npm install -g hexo-cli hexo-server
$ hexo init && npm install --save
Acum trebuie doar să ne creăm noul blog.
Modificați _config.yml, pentru a schimba adresa URL a site-ului dvs. de blog. Apoi executați:
$ hexo g
Blogul dvs. a fost acum generat. Fișierele HTML sunt localizate sub ~/web/web/vultr/public.
Configurați serverul dvs. Nginx
În acest moment, încă nu putem accesa site-ul nostru web. Prin urmare, trebuie să configuram Nginx.
Nginx rulează ca utilizator numit nginxîn nginxgrup și de aceea trebuie să adăugăm vultrla grup nginx.
$ chown -R vultr:nginx ~/web
Creați un fișier de configurare Nginx numit vultr.confsub ~/web/care conținutul este mai mult sau mai puțin astfel:
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;
}
}
Copiați vultr.confsă /etc/nginx/config.d/și reporniți Nginx:
$ sudo ln -sf ~/web/vultr.conf /etc/nginx/config.d/
$ sudo systemctl restart nginx
Acum blogul nostru este accesibil cu un browser web.
Folosind Git pentru a implementa blogul dvs.
Deoarece blogul este deja configurat, această porțiune a tutorialului este opțională.
În acest moment, este puțin incomod să scrii o postare pe blog, pentru că ar trebui să ne autentificăm și să scriem pe server. O soluție mai bună ar fi să scriem pe mașina noastră locală, să împingem postarea pe server și să lăsăm Hexo să genereze automat fișierele statice. Având în vedere că git are cârlige care pot face multe lucruri, putem utiliza un cârlig git pentru a realiza această configurare.
Creați un depozit gol pe server
Conectați-vă la server din nou ca utilizator vultr. Creați un depozit gol:
$ cd ~/web/git/vultr
$ git init --bare
$ cd hooks
Scrieți un fișier bash numit post-receivecare va implementa blogul nostru după fiecare apăsare:
#!/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
Înainte ca implementarea să funcționeze, trebuie să rulăm și aceste comenzi pe server:
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 .
Configurați-vă depozitul local de git
Pe mașina locală, trebuie să creăm și un depozit. Acești pași pot varia dacă utilizați un sistem de operare desktop altul decât Fedora.
Va trebui să aveți git instalat.
Configurați un depozit local de git:
$ mkdir -p ~/vultr/git/vultr`
$ cd ~/vultr/git/vultr and git init
$ git remote add production ssh://[email protected]:/home/vultr/web/git/vultr
Este util să instalați Hexo pe mașina dvs. locală pentru a scrie o postare. Aici setăm un director Hexo pentru scriere.
$ 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"
Configurarea este completă. Puteți împinge o postare pe serverul dvs. cu următoarele comenzi:
$ cd ~/vultr/git/vultr
$ git add . && git commit -m "new post"
$ git push production master
După succes, blogul va fi actualizat automat. Noroc.