Απαιτήσεις
Ας κρυπτογραφήσουμε
Εγκαταστήστε το NodeJS
Εγκαταστήστε το Nginx
Εγκαταστήστε το Ghost
Εγκαταστήστε το PM2
συμπέρασμα
Το Ghost είναι μια πλατφόρμα blogging ανοιχτού κώδικα που κερδίζει δημοτικότητα μεταξύ των προγραμματιστών και των απλών χρηστών από την κυκλοφορία της το 2013. Δίνει έμφαση στο περιεχόμενο και το blogging . Το πιο ελκυστικό πράγμα για το Ghost είναι ο απλός, καθαρός και ανταποκρινόμενος σχεδιασμός του. Μπορείτε να γράψετε τις αναρτήσεις του ιστολογίου σας από ένα κινητό τηλέφωνο. Το περιεχόμενο για το Ghost γράφεται χρησιμοποιώντας τη γλώσσα Markdown. Το Ghost είναι ιδανικό για άτομα ή μικρές ομάδες συγγραφέων.
Σε αυτόν τον οδηγό πρόκειται να δημιουργήσουμε και να αναπτύξουμε ένα ασφαλές ιστολόγιο Ghost σε ένα Fedora 25 VPS χρησιμοποιώντας Let's Encrypt , Certbot , Node.js , Nginx και PM2 .
Απαιτήσεις
- Περίπτωση διακομιστή Fedora 25 με ελάχιστο 1 GB RAM .
- Μάλλον θα πρέπει να ανοίξετε τη θύρα 2368 με
semanage port -a -t http_port_t -p tcp 2368.
Ας κρυπτογραφήσουμε
Πριν ξεκινήσετε αυτό το βήμα, βεβαιωθείτε ότι έχετε ορίσει εγγραφές DNS για τον τομέα σας.
Θα χρησιμοποιήσουμε το Let's Encrypt CA και τον πελάτη Certbot του EFF για να αποκτήσουμε πιστοποιητικό TLS για το ιστολόγιό μας Ghost. Μην ξεχάσετε να αντικαταστήσετε όλες τις εμφανίσεις του example.comμε το όνομα τομέα σας.
Σύστημα ενημέρωσης:
dnf check-update || dnf upgrade -y
Εγκαταστήστε τα απαραίτητα εργαλεία:
dnf install @development-tools -y
Εγκαταστήστε το Certbot (γνωστό και ως πελάτης Let's Encrypt):
dnf install certbot -y
Ελέγξτε την έκδοση Certbot:
certbot --version
# certbot 0.12.0
Λάβετε πιστοποιητικό χρησιμοποιώντας τη λειτουργία αυτόνομης λειτουργίας:
certbot certonly --standalone --domains example.com,www.example.com --email john.doe@example.com --agree-tos --rsa-key-size 2048
Αφού ολοκληρώσετε τα προηγούμενα βήματα, το πιστοποιητικό και το ιδιωτικό κλειδί σας θα βρίσκονται στον /etc/letsencrypt/live/example.comκατάλογο.
Εγκαταστήστε το NodeJS
Ghost currently supports Node versions 0.12.x, 4.2+, and 6.9+ only.
Θα εγκαταστήσουμε την υποστηριζόμενη έκδοση για το Ghost που βρίσκεται v6 Boron LTSτη στιγμή που γράφεται αυτό το άρθρο.
Κατεβάστε και εγκαταστήστε την πιο πρόσφατη έκδοση LTS του Node.js:
dnf install nodejs -y
Ελέγξτε την έκδοση Node και NPM:
node -v && npm -v
# v6.10.2
# 3.10.10
Εγκαταστήστε το Nginx
Κατεβάστε και εγκαταστήστε το Nginx:
dnf install nginx -y
Ελέγξτε την έκδοση Nginx:
nginx -v
# nginx version: nginx/1.10.2
Εκκίνηση και ενεργοποίηση της υπηρεσίας Nginx:
systemctl start nginx.service && systemctl enable nginx.service
Διαμορφώστε το Nginx ως αντίστροφο διακομιστή μεσολάβησης:
vi /etc/nginx/conf.d/ghost.conf
Επικολλήστε τα ακόλουθα στο /etc/nginx/conf.d/ghost.conf:
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:2368;
}
}
Ελέγξτε τη σύνταξη Nginx:
nginx -t
Επαναφόρτωση της διαμόρφωσης Nginx:
systemctl reload nginx.service
Εγκαταστήστε το Ghost
Εάν θέλετε να φιλοξενήσετε πολλά ιστολόγια Ghost στο ίδιο VPS , κάθε παρουσία Ghost πρέπει να εκτελείται σε ξεχωριστή θύρα.
Δημιουργία webrootκαταλόγου:
mkdir -p /var/www/
Δημιουργήστε έναν νέο χρήστη φάντασμα:
useradd -c "Ghost Application" ghost
Λήψη Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.8/Ghost-0.11.8.zip -o ghost.zip
Αποσυμπιέστε το Ghost:
unzip -uo ghost.zip -d /var/www/ghost
rm -f ghost.zip
Μεταβείτε στο webroot:
cd /var/www/ghost
Αλλάξτε την ιδιοκτησία του καταλόγου webroot:
chown -R ghost:ghost .
Μετάβαση σε νέο χρήστη φάντασμα:
su - ghost
Μεταβείτε στο webroot:
cd /var/www/ghost
Εγκαταστήστε το Ghost:
npm install --production
Διαμορφώστε το Ghost με αλλαγή urlκαι την mailιδιότητα του productionαντικειμένου μέσα στο config.jsαρχείο:
cp config.example.js config.js
vi config.js
var path = require('path'),
config;
config = {
// ### Production
// When running Ghost in the wild, use the production environment.
// Configure your URL and mail settings here
production: {
url: 'https://example.com',
mail: {
options: {
service: '',
auth: {
user: '',
pass: ''
}
}
},
. . .
. . .
},
}
. . .
. . .
NOTE: You should configure mail also. Consult the official Ghost documentation on how to do that.
Start Ghost:
npm start --production
Το Ghost θα τρέχει τώρα. Τόσο το front-end ιστολογίου όσο και η διεπαφή διαχειριστή είναι ασφαλισμένα με HTTPS και το HTTP/2 λειτουργεί επίσης. Μπορείτε να ανοίξετε το πρόγραμμα περιήγησής σας και να επισκεφτείτε τον ιστότοπο στη διεύθυνση https://example.com. Μην ξεχάσετε να αντικαταστήσετε example.comμε το όνομα τομέα σας.
Τερματίστε τη διαδικασία Ghost πατώντας CTRL+ Cκαι πραγματοποιήστε έξοδο από τον χρήστη ghost πίσω στον χρήστη root:
exit
Εγκαταστήστε το PM2
Εάν κλείσετε την περίοδο σύνδεσης του τερματικού σας με το VPS σας, το ιστολόγιό σας θα σβήσει επίσης. Αυτό δεν είναι καλό. Για να αποφευχθεί αυτό, θα χρησιμοποιήσουμε τον διαχειριστή διεργασιών PM2 . Θα κρατήσει το blog μας ανοιχτό 24/7.
Εγκαταστήστε την τελευταία σταθερή έκδοση του διαχειριστή διεργασιών PM2:
npm install -g pm2@latest
Ελέγξτε την έκδοση PM2:
pm2 -v
# 2.4.6
Μετάβαση σε χρήστη φάντασμα ξανά:
su - ghost
Ορισμός NODE_ENVμεταβλητής περιβάλλοντος στην παραγωγή:
echo "export NODE_ENV=production" >> ~/.bashrc && source ~/.bashrc
Ξεκινήστε (δαιμονοποίηση) την εφαρμογή Ghost με PM2:
pm2 start /var/www/ghost/index.js --name "Ghost Blog"
Πλοηγηθείτε https://example.com/ghost/και δημιουργήστε χρήστη διαχειριστή Ghost. Κάντε αυτό το συντομότερο δυνατό.
συμπέρασμα
Αυτό είναι. Τώρα έχουμε ένα πλήρως λειτουργικό ιστολόγιο Ghost. Εάν θέλετε να αλλάξετε το προεπιλεγμένο θέμα Ghost που ονομάζεται Casper σε προσαρμοσμένο, μπορείτε απλώς να κάνετε λήψη και να αποσυμπιέσετε το θέμα στο /var/www/ghost/content/themesφάκελο και να το επιλέξετε μέσω της διεπαφής διαχειριστή Ghost, που βρίσκεται στη διεύθυνση https://example.com/ghost.