Requisits previs
Crea el teu bloc Hexo
Utilitzant Git per desplegar el teu bloc
Hexo és una plataforma de blocs estàtica, construïda amb Node.js. És ràpid en comparació amb altres plataformes de blocs estàtiques, com ara Jekyll.
En aquest tutorial, explicaré com crear i desplegar un bloc Hexo. Els passos són bastant senzills, escrits per a CentOS 7, Node.js 4.4. La meva màquina local és Fedora 23.
Requisits previs
Comencem amb un sistema CentOS 7 recentment instal·lat. Es requereixen els següents paquets de programari:
- gcc-c i gcc-c++
- make i git
- nginx
- obertssl
- nodejs i npm
Haureu d'iniciar sessió com a root o com a usuari amb privilegis sudo.
Instal·lar utilitats
$ yum install -y gcc gcc-c++ make git openssl
Instal·leu Nginx
Podeu instal·lar nginxdes del dipòsit predeterminat:
$yum install -y nginx
... o instal·leu una versió estable del repositori oficial de Nginx, aquí triem la segona.
Creeu un fitxer repo anomenat nginx.repo, del qual el contingut és:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
... i copia-ho a /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
Instal·leu Node.js
Instal·lem el Node.js suportat durant molt de temps des del dipòsit oficial de Node.js.
$ curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
$ yum update and yum install -y nodejs
Crea un usuari nou
Normalment és millor crear un usuari normal per executar el vostre bloc, perquè root té permisos de superusuari.
Aquí creem un usuari anomenat vultri l'afegim al grup wheeli nginx:
$ useradd -d /home/vultr -m -r -U -s /bin/bash
$ passwd vultr
$ usermod -aG nginx vultr
$ usermod -aG wheel vultr
Genereu un parell de claus SSH
És útil i necessari iniciar sessió mitjançant una clau ssh.
$ ssh-keygen -b 4096 -C "vultr@example.com"
Després de crear el nostre parell de claus ssh, copieu la clau pública (normalment id_rsa.pub) al ~/.ssh/authorized_keysservidor:
ssh-copy-id -i ~/.ssh/id_rsa.pub vultr@example.com
I ara, tenim tots els paquets previs a la creació instal·lats.
Crea el teu bloc Hexo
Instal·leu Hexo
Inicieu sessió com a vultrusuari. A continuació, creeu ~/web/web/vultri ~/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
Introduïu ~/web/web/vultri instal·leu Hexo:
$ cd ~/web/web/vultr
$ sudo npm install -g hexo-cli hexo-server
$ hexo init && npm install --save
Ara només ens queda crear el nostre nou bloc.
Edita _config.yml, per canviar l'URL del teu blog. A continuació, executeu:
$ hexo g
El teu bloc ja s'ha generat. Els fitxers HTML es troben a ~/web/web/vultr/public.
Configura el teu servidor Nginx
En aquest moment, encara no podem accedir al nostre lloc web. Per tant, hem de configurar Nginx.
Nginx s'executa com un usuari anomenat nginxal nginxgrup, i és per això que hem d'afegir vultral grup nginx.
$ chown -R vultr:nginx ~/web
Crear un arxiu de configuració anomenat Nginx vultr.confsota ~/web/el contingut és més o menys així:
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;
}
}
Copiar vultr.confa /etc/nginx/config.d/i reiniciar Nginx:
$ sudo ln -sf ~/web/vultr.conf /etc/nginx/config.d/
$ sudo systemctl restart nginx
Ara el nostre bloc és accessible amb un navegador web.
Utilitzant Git per desplegar el teu bloc
Com que el bloc ja està configurat, aquesta part del tutorial és opcional.
En aquest punt, és una mica inconvenient escriure una entrada al bloc, perquè hauríem d'iniciar sessió i escriure al servidor. Una millor solució seria escriure a la nostra màquina local, empènyer la publicació al servidor i deixar que Hexo generi automàticament els fitxers estàtics. Tenint en compte que git té ganxos que poden fer moltes coses, podem utilitzar un ganxo git per aconseguir aquesta configuració.
Creeu un repositori nu al servidor
Torneu a iniciar sessió al servidor com a usuari vultr. Creeu un repositori nu:
$ cd ~/web/git/vultr
$ git init --bare
$ cd hooks
Escriu un fitxer bash anomenat post-receiveque desplegarà el nostre bloc després de cada empenta:
#!/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
Abans que el desplegament funcioni, també hem d'executar aquestes ordres al servidor:
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 el teu repositori git local
A la màquina local, també hem de crear un repositori. Aquests passos poden variar si utilitzeu un sistema operatiu d'escriptori diferent de Fedora.
Haureu de tenir git instal·lat.
Configura un repositori git local:
$ 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
És útil instal·lar Hexo a la vostra màquina local per escriure una publicació. Aquí configurem un directori Hexo per escriure.
$ 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"
La configuració s'ha completat. Podeu enviar una publicació al vostre servidor amb les ordres següents:
$ cd ~/vultr/git/vultr
$ git add . && git commit -m "new post"
$ git push production master
Quan tingui èxit, el bloc s'actualitzarà automàticament. Salutacions.