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 guide skal vi opsætte og implementere en sikker Ghost v0.11.x LTS- blog på en Fedora 25 VPS ved hjælp af Let's Encrypt , Certbot , Node.js , NPM , NGINX og MySQL .
semanage port -a -t http_port_t -p tcp 2368
.Tjek Fedora version:
cat /etc/fedora-release
# Fedora release 25 (Twenty Five)
Opret en ny ikke-rootbruger :
useradd -c "John Doe" johndoe && passwd johndoe
Gør det til superbruger ved at tilføje det til wheel
gruppen:
usermod -aG wheel johndoe
Skift til ny bruger:
su - johndoe
Opdater dit operativsystems software:
sudo dnf check-update || sudo dnf upgrade -y
Indstil tidszonen:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Installer udviklingsværktøjer:
sudo dnf install @development-tools -y
Installer Vim-teksteditor og Wget:
sudo dnf install -y vim wget
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 dnf install -y certbot
Tjek Certbot version:
certbot --version
# certbot 0.14.1
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 --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo dnf install -y nodejs
Tjek Node.js og NPM version:
node -v && npm -v
# v6.11.2
# 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 den seneste version af MySQL (i øjeblikket 5.7 ) fra det officielle MySQL Dnf-lager:
cd /tmp
# Adding the MySQL dnf Repository
wget https://dev.mysql.com/get/mysql57-community-release-fc25-10.noarch.rpm
sudo dnf install -y mysql57-community-release-fc25-10.noarch.rpm
# Installing MySQL
sudo dnf install -y mysql-community-server
Tjek MySQL version:
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
Start MySQL Server og kontroller dens status:
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
MySQL version 5.7 eller nyere genererer en midlertidig tilfældig adgangskode til MySQL- root
bruger efter installationen, og adgangskoden er gemt i MySQL fejllogfilen, som er placeret på /var/log/mysqld.log
. For at afsløre det, brug følgende kommando:
sudo grep 'temporary password' /var/log/mysqld.log
Kør mysql_secure_installation
scriptet for at sikre din database en smule:
NOTE: Password Validation Plugin is installed and enabled, so your new password for
root
user needs to be strong (one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters). If you want to relax that or disable plugin completely (not recommended) consult the official MySQL documentation for how to do that.
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 NGINX:
sudo dnf install -y nginx
Bekræft, at det er installeret ved at kontrollere NGINX-versionen:
sudo nginx -v
# nginx version: nginx/1.10.2
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 nye Diffie-Hellman ( DH ) parametre:
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;
listen 80;
listen [::]:443 ssl http2;
listen 443 ssl http2;
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;
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 spøgelsesbruger:
sudo useradd -c 'Ghost application' ghost
Download Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.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 spøgelsesmappe:
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 produktionen 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 ikke-root- bruger, som du har oprettet i begyndelsen:
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 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.11/docs
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