Προαπαιτούμενα
Φτιάξτε το Hexo blog σας
Χρήση του Git για την ανάπτυξη του ιστολογίου σας
Το Hexo είναι μια στατική πλατφόρμα ιστολογίου, κατασκευασμένη με το Node.js. Είναι γρήγορο σε σύγκριση με άλλες στατικές πλατφόρμες ιστολογίου, όπως το Jekyll.
Σε αυτό το σεμινάριο, θα εξηγήσω πώς να δημιουργήσετε και να αναπτύξετε ένα ιστολόγιο Hexo. Τα βήματα είναι αρκετά απλά, γραμμένα για CentOS 7, Node.js 4.4. Το τοπικό μου μηχάνημα είναι το Fedora 23.
Προαπαιτούμενα
Ξεκινάμε με ένα πρόσφατα εγκατεστημένο σύστημα CentOS 7. Απαιτούνται τα ακόλουθα πακέτα λογισμικού:
- gcc-c και gcc-c++
- φτιάχνω και φτιάχνω
- nginx
- openssl
- nodejs και npm
Θα χρειαστεί να συνδεθείτε ως root ή ως χρήστης με δικαιώματα sudo.
Εγκαταστήστε βοηθητικά προγράμματα
$ yum install -y gcc gcc-c++ make git openssl
Εγκαταστήστε το Nginx
Μπορείτε να εγκαταστήσετε nginxαπό το προεπιλεγμένο αποθετήριο:
$yum install -y nginx
... ή εγκαταστήστε μια σταθερή έκδοση από το επίσημο αποθετήριο Nginx, Εδώ επιλέγουμε το δεύτερο.
Δημιουργήστε ένα αρχείο repo με το όνομα nginx.repo, του οποίου το περιεχόμενο είναι:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
... και αντιγράψτε το στο /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
Εγκαταστήστε το Node.js
Εγκαθιστούμε το Node.js που υποστηρίζεται για μεγάλο χρονικό διάστημα από το επίσημο αποθετήριο Node.js.
$ curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
$ yum update and yum install -y nodejs
Δημιουργήστε έναν νέο χρήστη
Συνήθως είναι καλύτερο να δημιουργήσετε έναν απλό χρήστη για να τρέξει το ιστολόγιό σας, επειδή το root έχει δικαιώματα υπερ-χρήστη.
Εδώ δημιουργούμε έναν χρήστη με το όνομα vultrκαι τον προσθέτουμε στην ομάδα wheelκαι nginx:
$ useradd -d /home/vultr -m -r -U -s /bin/bash
$ passwd vultr
$ usermod -aG nginx vultr
$ usermod -aG wheel vultr
Δημιουργήστε ένα ζεύγος κλειδιών SSH
Είναι χρήσιμο και απαραίτητο να συνδεθείτε μέσω ενός κλειδιού ssh.
$ ssh-keygen -b 4096 -C "vultr@example.com"
Αφού δημιουργήσουμε το ζεύγος κλειδιών ssh, αντιγράψτε το δημόσιο κλειδί (συνήθως id_rsa.pub) στο ~/.ssh/authorized_keysδιακομιστή:
ssh-copy-id -i ~/.ssh/id_rsa.pub vultr@example.com
Και τώρα, έχουμε εγκαταστήσει όλα τα πακέτα προκατασκευής.
Φτιάξτε το Hexo blog σας
Εγκαταστήστε το Hexo
Συνδεθείτε ως vultrχρήστης. Στη συνέχεια, δημιουργήστε ~/web/web/vultrκαι ~/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
Εισαγάγετε ~/web/web/vultrκαι εγκαταστήστε το Hexo:
$ cd ~/web/web/vultr
$ sudo npm install -g hexo-cli hexo-server
$ hexo init && npm install --save
Τώρα δεν έχουμε παρά να δημιουργήσουμε το νέο μας blog.
Επεξεργαστείτε _config.yml, για να αλλάξετε τη διεύθυνση url του ιστότοπου του ιστολογίου σας. Στη συνέχεια, τρέξτε:
$ hexo g
Το ιστολόγιό σας έχει πλέον δημιουργηθεί. Τα αρχεία HTML βρίσκονται κάτω από το ~/web/web/vultr/public.
Ρυθμίστε τον διακομιστή Nginx σας
Σε αυτό το σημείο, δεν μπορούμε ακόμα να έχουμε πρόσβαση στον ιστότοπό μας. Επομένως, πρέπει να ρυθμίσουμε το Nginx.
Το Nginx εκτελείται ως χρήστης με όνομα nginxστην nginxομάδα και γι' αυτό πρέπει να προσθέσουμε vultrστην ομάδα nginx.
$ chown -R vultr:nginx ~/web
Δημιουργήστε ένα αρχείο ρυθμίσεων Nginx ονομάζεται vultr.confσύμφωνα με ~/web/την οποία το περιεχόμενο είναι περισσότερο ή λιγότερο σαν αυτό:
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;
}
}
Αντιγραφή vultr.confσε /etc/nginx/config.d/και κάντε επανεκκίνηση Nginx:
$ sudo ln -sf ~/web/vultr.conf /etc/nginx/config.d/
$ sudo systemctl restart nginx
Τώρα το ιστολόγιό μας είναι προσβάσιμο με πρόγραμμα περιήγησης ιστού.
Χρήση του Git για την ανάπτυξη του ιστολογίου σας
Εφόσον το ιστολόγιο έχει ήδη ρυθμιστεί, αυτό το τμήμα του σεμιναρίου είναι προαιρετικό.
Σε αυτό το σημείο, είναι λίγο άβολο να γράψουμε μια ανάρτηση ιστολογίου, γιατί θα χρειαστεί να συνδεθούμε και να γράψουμε στον διακομιστή. Μια καλύτερη λύση θα ήταν να γράψουμε στον τοπικό μας υπολογιστή, να προωθήσουμε τη δημοσίευση στον διακομιστή και να αφήσουμε το Hexo να δημιουργήσει αυτόματα τα στατικά αρχεία. Λαμβάνοντας υπόψη ότι το git έχει άγκιστρα που μπορούν να κάνουν πολλά πράγματα, μπορούμε να χρησιμοποιήσουμε ένα git hook για να επιτύχουμε αυτήν τη ρύθμιση.
Δημιουργήστε ένα γυμνό αποθετήριο στον διακομιστή
Συνδεθείτε ξανά στο διακομιστή ως χρήστης vultr. Δημιουργήστε ένα γυμνό αποθετήριο:
$ cd ~/web/git/vultr
$ git init --bare
$ cd hooks
Γράψτε ένα αρχείο bash με το όνομα post-receiveπου θα αναπτύσσει το ιστολόγιό μας μετά από κάθε ώθηση:
#!/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
Για να λειτουργήσει η ανάπτυξη, πρέπει επίσης να εκτελέσουμε αυτές τις εντολές στον διακομιστή:
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 .
Ρυθμίστε το τοπικό σας αποθετήριο git
Στον τοπικό υπολογιστή, πρέπει επίσης να δημιουργήσουμε ένα αποθετήριο. Αυτά τα βήματα ενδέχεται να διαφέρουν εάν χρησιμοποιείτε λειτουργικό σύστημα επιτραπέζιου υπολογιστή διαφορετικό από το Fedora.
Θα χρειαστεί να έχετε εγκαταστήσει το git.
Ρυθμίστε ένα τοπικό αποθετήριο git:
$ 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
Είναι χρήσιμο να εγκαταστήσετε το Hexo στον τοπικό σας υπολογιστή για να γράψετε μια ανάρτηση. Εδώ ρυθμίζουμε έναν κατάλογο Hexo για γραφή.
$ 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"
Η ρύθμιση έχει ολοκληρωθεί. Μπορείτε να προωθήσετε μια ανάρτηση στον διακομιστή σας με τις ακόλουθες εντολές:
$ cd ~/vultr/git/vultr
$ git add . && git commit -m "new post"
$ git push production master
Μετά την επιτυχία, το ιστολόγιο θα ενημερωθεί αυτόματα. Στην υγειά σας.