Preduvjeti
Izgradite svoj Hexo blog
Korištenje Gita za implementaciju vašeg bloga
Hexo je statična blog platforma, izgrađena s Node.js. Brz je u usporedbi s drugim statičnim blog platformama, kao što je Jekyll.
U ovom vodiču objasnit ću kako napraviti i implementirati Hexo blog. Koraci su prilično jednostavni, napisani za CentOS 7, Node.js 4.4. Moj lokalni stroj je Fedora 23.
Preduvjeti
Počinjemo sa svježe instaliranim CentOS 7 sustavom. Potrebni su sljedeći softverski paketi:
- gcc-c i gcc-c++
- make i git
- nginx
- openssl
- nodejs i npm
Morat ćete se prijaviti kao root ili kao korisnik s sudo privilegijama.
Instalirajte uslužne programe
$ yum install -y gcc gcc-c++ make git openssl
Instalirajte Nginx
Možete instalirati nginxiz zadanog repo-a:
$yum install -y nginx
... ili instalirajte stabilnu verziju iz službenog Nginx repo-a, ovdje biramo potonje.
Napravite repo datoteku pod nazivom nginx.repo, čiji je sadržaj:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
... i kopiraj ga na /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
Instalirajte Node.js
Instaliramo dugotrajno podržan Node.js iz službenog repoa Node.js.
$ curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
$ yum update and yum install -y nodejs
Stvorite novog korisnika
Obično je bolje stvoriti običnog korisnika za pokretanje vašeg bloga, jer root ima dopuštenja super-korisnika.
Ovdje kreiramo korisnika s imenom vultri dodajemo ga u grupu wheeli nginx:
$ useradd -d /home/vultr -m -r -U -s /bin/bash
$ passwd vultr
$ usermod -aG nginx vultr
$ usermod -aG wheel vultr
Generirajte par SSH ključeva
Korisno je i potrebno se prijaviti putem ssh ključa.
$ ssh-keygen -b 4096 -C "vultr@example.com"
Nakon što kreirate naš par ssh ključeva, kopirajte javni ključ (obično id_rsa.pub) ~/.ssh/authorized_keysna poslužitelj:
ssh-copy-id -i ~/.ssh/id_rsa.pub vultr@example.com
A sada imamo instalirane sve pakete prije izgradnje.
Izgradite svoj Hexo blog
Instalirajte Hexo
Prijavite se kao vultrkorisnik. Zatim kreirajte ~/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
Unesite ~/web/web/vultri instalirajte Hexo:
$ cd ~/web/web/vultr
$ sudo npm install -g hexo-cli hexo-server
$ hexo init && npm install --save
Sada samo trebamo stvoriti naš novi blog.
Uredi _config.yml, da promijenite URL web-mjesta svog bloga. Zatim pokrenite:
$ hexo g
Vaš blog je sada generiran. HTML datoteke se nalaze pod ~/web/web/vultr/public.
Postavite svoj Nginx poslužitelj
U ovom trenutku još uvijek ne možemo pristupiti našoj web stranici. Stoga moramo konfigurirati Nginx.
Nginx radi kao korisnik imenovan nginxu nginxgrupi i zato moramo dodati vultrgrupi nginx.
$ chown -R vultr:nginx ~/web
Napravite Nginx konfiguracijsku datoteku vultr.confpod ~/web/čijim je sadržajem više-manje ovakav:
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;
}
}
Kopiranje vultr.confna /etc/nginx/config.d/i ponovno Nginx:
$ sudo ln -sf ~/web/vultr.conf /etc/nginx/config.d/
$ sudo systemctl restart nginx
Sada je naš blog dostupan putem web preglednika.
Korištenje Gita za implementaciju vašeg bloga
Budući da je blog već postavljen, ovaj dio vodiča nije obavezan.
U ovom trenutku, malo je nezgodno pisati blog post, jer bismo se morali prijaviti i pisati na poslužitelju. Bolje rješenje bilo bi pisati na našem lokalnom računalu, gurnuti objavu na poslužitelj i pustiti Hexo-u da automatski generira statičke datoteke. S obzirom na to da git ima kuke koje mogu učiniti mnoge stvari, možemo koristiti git hook da postignemo ovu postavku.
Napravite goli repozitorij na poslužitelju
Ponovno se prijavite na poslužitelj kao korisnik vultr. Napravite goli repozitorij:
$ cd ~/web/git/vultr
$ git init --bare
$ cd hooks
Napišite bash datoteku pod nazivom post-receivekoja će postaviti naš blog nakon svakog pusha:
#!/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
Prije nego što će implementacija funkcionirati, također moramo pokrenuti ove naredbe na poslužitelju:
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 .
Postavite svoje lokalno git spremište
Na lokalnom računalu također moramo stvoriti spremište. Ovi koraci mogu se razlikovati ako koristite desktop OS koji nije Fedora.
Morat ćete imati instaliran git.
Postavite lokalno git spremište:
$ 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
Korisno je instalirati Hexo na vaš lokalni stroj za pisanje objave. Ovdje postavljamo Hexo direktorij za pisanje.
$ 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"
Postavljanje je dovršeno. Možete gurnuti objavu na svoj poslužitelj pomoću sljedećih naredbi:
$ cd ~/vultr/git/vultr
$ git add . && git commit -m "new post"
$ git push production master
Nakon uspjeha, blog će se automatski ažurirati. Živjeli.