Oprettelse af en Jekyll-blog på Ubuntu 16.04
Bruger du et andet system? Jekyll er et godt alternativ til WordPress til at blogge eller dele indhold. Det kræver ingen databaser, og det er meget nemt, dvs
Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden udgivelsen i 2013. Det sætter fokus på indhold og blogging. Det mest attraktive ved Ghost er dets enkle, rene og responsive design. Du kan skrive dine blogindlæg fra en mobiltelefon. Indhold til Ghost er skrevet ved hjælp af Markdown-sproget. Ghost passer perfekt til enkeltpersoner eller små grupper af forfattere.
I denne vejledning skal vi opsætte og implementere en sikker Ghost v0.11.x LTS- blog på en Ubuntu 16.04 LTS VPS ved hjælp af Let's Encrypt , Certbot , Node.js , NPM , NGINX og MySQL .
Opret en ny ikke-root brugerkonto:
adduser johndoe --gecos "John Doe"
Gør det til superbruger ved at tilføje det til sudo
gruppen:
usermod -aG sudo johndoe
Skift til ny bruger:
su - johndoe
Opdater dit operativsystems software:
sudo apt update && sudo apt upgrade -y
Indstil tidszonen:
sudo dpkg-reconfigure tzdata
Installer nødvendige værktøjer:
sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
Genstart systemet, hvis det kræves:
sudo shutdown -r now
NOTE: Before starting this step, ensure that you have set DNS records for your domain.
Vi kommer til at bruge Let's Encrypt CA og EFF 's Certbot-klient til at opnå SSL/TLS- certifikat til vores Ghost-blog. Glem ikke at erstatte alle forekomster af blog.domain.tld
med dit domænenavn.
Installer Certbot (tidligere Let's Encrypt client ) certifikatstyringssoftware lavet med Python:
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:certbot/certbot
sudo apt update
sudo apt install -y certbot
Tjek Certbot version:
certbot --version
# certbot 0.14.2
Få et RSA- certifikat ved at bruge selvstændig godkendelsesmetode (plugin):
sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --no-eff-email --agree-tos
# IMPORTANT NOTES:
# - Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/blog.domain.tld/fullchain.pem.
# Your cert will expire on YYYY-MM-DD. . . .
# . . .
Efter at have gennemgået tidligere trin, vil dit certifikat og din private nøgle være i /etc/letsencrypt/live/blog.domain.tld
biblioteket.
NOTE: Ghost currently supports Node.js versions 4.5+ and 6.9+ only.
Ghost er bygget på Node.js. Vi skal installere den anbefalede version til Ghost, som er v6 Boron LTS
på tidspunktet for dette skrivende.
Download og installer Node.js v6 LTS:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Tjek Node.js og NPM version:
node -v && npm -v
# v6.11.1
# 3.10.10
Som standard kommer Ghost konfigureret til at bruge en SQLite-database, som ikke kræver nogen konfiguration.
Alternativt kan Ghost også bruges med en MySQL-database ved at ændre databasekonfigurationen. Du skal først oprette en database og bruger, du kan derefter ændre den eksisterende sqlite3-konfiguration.
Download og installer MySQL:
sudo apt install -y mysql-server
NOTE: During the installation, you will be prompted for MySQL "root" user password. You should set a secure password for the MySQL "root" user.
Tjek MySQL version:
mysql --version
# mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
Tjek, om MySQL-dæmonen er startet og kører:
sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service
Kør mysql_secure_installation
scriptet for at sikre din database en smule:
sudo mysql_secure_installation
Log ind på MySQL som root-bruger:
mysql -u root -p
# Enter password:
Opret en ny MySQL-database og bruger:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Afslut MySQL:
exit
Download og installer den seneste mainline- version af NGINX fra det officielle NGINX-lager:
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
Bekræft, at det er installeret ved at kontrollere NGINX-versionen:
sudo nginx -v
# nginx version: nginx/1.13.3
Tjek status, aktiver og start NGINX-tjenesten (dæmon):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Opret /etc/nginx/ssl
bibliotek og generer en ny Diffie-Hellman ( DH ) gruppe:
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Opret log-mappe til blog.domain.tld
virtuel vært:
sudo mkdir -p /var/log/nginx/blog.domain.tld
Konfigurer NGINX som en HTTP ( S ) omvendt proxyserver:
sudo vim /etc/nginx/conf.d/ghost.conf
Indsæt følgende i /etc/nginx/conf.d/ghost.conf
:
# domain: blog.domain.tld
# public: /var/www/ghost
upstream ghost_app {
server 127.0.0.1:2368;
keepalive 32;
}
server {
listen [::]:80 default_server;
listen 80 default_server;
listen [::]:443 ssl http2 default_server;
listen 443 ssl http2 default_server;
server_name blog.domain.tld;
root /var/www/ghost;
error_log /var/log/nginx/blog.domain.tld/error.log;
access_log /var/log/nginx/blog.domain.tld/access.log;
client_max_body_size 100M;
ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.pem;
ssl_dhparam ssl/dhparams-2048.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_buffer_size 4K;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50M;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
location / {
proxy_pass http://ghost_app;
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_hide_header X-Powered-By;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
Gem og test NGINX-konfigurationen for syntaksfejl:
sudo nginx -t
Genindlæs NGINX-konfiguration:
sudo systemctl reload nginx.service
NOTE: If you want to host multiple Ghost blogs on same VPS, each Ghost instance must be running on a separate port.
Opret dokumentets rodmappe:
sudo mkdir -p /var/www/
Opret en ny ghost
bruger:
sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
Download Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
Pak Ghost ud i /var/www/ghost
mappen (anbefalet installationsplacering):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Flyt til den nye ghost
mappe:
cd /var/www/ghost
Skift ejerskab af /var/www/ghost
mappen:
sudo chown -R ghost:ghost .
Skift til ny ghost
bruger:
sudo su - ghost
Naviger til dokumentets rod /var/www/ghost
:
cd /var/www/ghost
Installer kun Ghost med produktionsafhængigheder. Når dette er fuldført, er Ghost installeret:
npm install --production
Indstil Ghost ved at ændre url
, mail
og database
ejendom af production
objekt inde i config.js
fil:
cp config.example.js config.js
vim /var/www/ghost/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://blog.domain.tld',
mail: {
transport: 'SMTP',
options: {
service: 'Mailgun',
auth: {
user: '',
pass: ''
}
}
},
database: {
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'your_database_user',
password: 'your_database_password',
database: 'your_database_name',
charset: 'utf8'
},
debug: false
},
// . . .
// . . .
NOTE: You should configure
Start Ghost i produktionsmiljø:
npm start --production
Ghost vil nu køre. Både blogfront-end og admin-grænseflade er sikret med HTTPS, og HTTP/2 fungerer også. Du kan åbne din browser og besøge webstedet på https://blog.domain.tld
. Glem ikke at erstatte blog.domain.tld
med dit domænenavn.
Luk Ghost-processen ned ved at trykke på CTRL
+ C
og afslut fra ghost-bruger tilbage til root-bruger:
exit
Hvis du lukker din terminalsession med din VPS, vil din blog også gå ned. Det er ikke godt. For at undgå dette vil vi bruge systemd. Det vil holde vores blog oppe 24/7.
Opret ghost.service
systemd enhedsfil. Kør sudo vim /etc/systemd/system/ghost.service
og kopier/indsæt nedenstående indhold:
[Unit]
Description=Ghost - the professional publishing platform
Documentation=https://docs.ghost.org/v0.11.9
After=network.target
[Service]
Type=simple
# Edit WorkingDirectory, User and Group as needed
WorkingDirectory=/var/www/ghost
User=ghost
Group=ghost
ExecStart=/usr/bin/npm start --production
ExecStop=/usr/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost
[Install]
WantedBy=multi-user.target
Aktiver og start ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
Tjek ghost.service
status:
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
Naviger til https://blog.domain.tld/ghost/
og opret en Ghost-administratorbruger. Gør dette så hurtigt som muligt!
Det er det. Vi har nu en fuldt funktionel spøgelsesblog. Din server leverer indhold via HTTP/2, når det understøttes af klienten. Hvis du vil ændre standard Ghost-temaet kaldet Casper til et brugerdefineret, kan du bare downloade og pakke temaet ud i /var/www/ghost/content/themes
mappen og vælge det via Ghost-admin-grænsefladen, som er placeret på https://blog.domain.tld/ghost
.
Bruger du et andet system? Jekyll er et godt alternativ til WordPress til at blogge eller dele indhold. Det kræver ingen databaser, og det er meget nemt, dvs
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg
Introduktion WordPress er det dominerende content management system på internettet. Det driver alt fra blogs til komplekse websteder med dynamisk indhold
Bruger du et andet system? Jekyll er et godt alternativ til WordPress. Det kræver ingen databaser, og det fungerer med et sprog, som mange kender til
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i
Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM
Neos er et innovativt open source-indholdsstyringssystem, som er fantastisk til at skabe og redigere onlineindhold. Med forfattere og redaktører i tankerne, Neo
Bruger du et andet system? Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden dens 201
Bruger du et andet system? SilverStripe er et fleksibelt og udvidelsesvenligt, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det er let
Bruger du et andet system? Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden dens 201
En almindelig brug af en Vultr virtuel server er at være vært for Wordpress-websteder. Denne guide viser dig, hvordan du automatiserer konfigurationen af en virtuel server fra bunden
Ghost er den seneste og bedste opkomling til at konkurrere med WordPress. Temaudvikling er hurtig og nem at lære, fordi Ghost-udviklerne besluttede at bruge både th
Ghost er en moderne, open source publiceringsplatform bygget på Node.js med en Ember.js admin-klient, en JSON API og en tema-API drevet af Handlebars.js. Ghos
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i
Bruger du et andet system? Dotclear er en meget simpel blogging-motor. Det er open source og nemt at bruge. Denne tutorial vil gennemgå installationen på
Bruger du et andet system? SilverStripe er et fleksibelt og udvidelsesvenligt gratis og open source enterprise-grade Content Management System (CMS) skrevet i PHP. jeg
Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM
Bruger du et andet system? Ghost er en open source-blogplatform, der er ved at vinde popularitet blandt udviklere og almindelige brugere siden udgivelsen i 2013. jeg
Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere