Opprette en Jekyll-blogg på Ubuntu 16.04
Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg
Ghost er en bloggplattform med åpen kildekode som har blitt populær blant utviklere og vanlige brukere siden utgivelsen i 2013. Det setter fokus på innhold og blogging. Det mest attraktive med Ghost er dens enkle, rene og responsive design. Du kan skrive blogginnleggene dine fra en mobiltelefon. Innhold for Ghost er skrevet med Markdown-språket. Ghost passer perfekt for enkeltpersoner eller små grupper av forfattere.
I denne guiden skal vi sette opp og distribuere en sikker Ghost v0.11.x LTS- blogg på en CentOS 7.3 VPS ved å bruke Let's Encrypt , Certbot , Node.js , NPM , NGINX og MySQL .
Sjekk CentOS-versjonen:
cat /etc/centos-release
# CentOS Linux release 7.3.1611 (Core)
Opprett en ny ikke-rootbruker :
useradd -c "John Doe" johndoe && passwd johndoe
Gjør den til superbruker ved å legge den til i wheel
gruppen:
usermod -aG wheel johndoe
Bytt til ny bruker:
su - johndoe
Oppdater operativsystemets programvare:
sudo yum check-update || sudo yum update -y
Sett opp tidssonen:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Installer utviklingsverktøy:
sudo yum groupinstall -y 'Development Tools'
Installer Vim-tekstredigerer:
sudo yum install -y vim
Start systemet på nytt om nødvendig:
sudo shutdown -r now
NOTE: Before starting this step, ensure that you have set DNS records for your domain.
Vi skal bruke Let's Encrypt CA og EFF sin Certbot-klient for å få SSL/TLS- sertifikat for Ghost-bloggen vår. Ikke glem å erstatte alle forekomster av blog.domain.tld
med ditt domenenavn.
Aktiver depotet for ekstrapakker for Enterprise Linux (EPEL):
# Certbot is packaged in Extra Packages for Enterprise Linux (EPEL) repository. To use Certbot, you must first enable the EPEL repository.
sudo yum install -y epel-release
Installer Certbot (tidligere Let's Encrypt Client ) programvare for sertifikatbehandling laget med Python:
sudo yum install -y certbot
Sjekk Certbot-versjonen:
certbot --version
# certbot 0.14.1
Skaff RSA- sertifikat ved å bruke frittstående autentiseringsmetode (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. . . .
# . . .
Etter å ha gått gjennom tidligere trinn, vil sertifikatet og den private nøkkelen din være i /etc/letsencrypt/live/blog.domain.tld
katalogen.
NOTE: Ghost currently supports Node.js versions 4.5+ and 6.9+ only.
Ghost er bygget på Node.js. Vi skal installere den anbefalte versjonen for Ghost som er v6 Boron LTS
i skrivende stund.
Last ned og installer Node.js v6 LTS:
sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum install -y nodejs
Sjekk Node.js og NPM-versjonen:
node -v && npm -v
# v6.11.2
# 3.10.10
Som standard kommer Ghost konfigurert til å bruke en SQLite-database, som ikke krever noen konfigurasjon.
Alternativt kan Ghost også brukes med en MySQL-database ved å endre databasekonfigurasjonen. Du må opprette en database og bruker først, du kan deretter endre den eksisterende sqlite3-konfigurasjonen.
Last ned og installer den nyeste versjonen av MySQL (for øyeblikket 5.7 ) fra det offisielle MySQL Yum-depotet:
cd /tmp
# Adding the MySQL Yum Repository
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo yum localinstall -y mysql57-community-release-el7-11.noarch.rpm
# Installing MySQL
sudo yum install -y mysql-community-server
Sjekk MySQL-versjonen:
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
Start MySQL Server og sjekk statusen:
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
MySQL versjon 5.7 eller høyere genererer et midlertidig tilfeldig passord for MySQL- root
bruker etter installasjon og passord er lagret i MySQL-feilloggfilen, som ligger på /var/log/mysqld.log
. For å avsløre det, bruk følgende kommando:
sudo grep 'temporary password' /var/log/mysqld.log
Kjør mysql_secure_installation
skriptet for å sikre databasen din litt:
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
Logg på MySQL som root-bruker:
mysql -u root -p
# Enter password:
Opprett en ny MySQL-database og bruker:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Avslutt MySQL:
exit
Last ned og installer den nyeste hovedlinjeversjonen av NGINX fra det offisielle NGINX-depotet:
# Add the NGINX Yum Repository
sudo vim /etc/yum.repos.d/nginx_mainline.repo
# Copy/paste the following into /etc/yum.repos.d/nginx_mainline.repo
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1
wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
rm nginx_signing.key
sudo yum install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
Bekreft at den er installert ved å sjekke NGINX-versjonen:
sudo nginx -v
# nginx version: nginx/1.13.3
Sjekk status, aktiver og start NGINX-tjenesten (demon):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Opprett /etc/nginx/ssl
katalog og generer nye Diffie-Hellman ( DH ) parametere:
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Opprett loggkatalog for blog.domain.tld
virtuell vert:
sudo mkdir -p /var/log/nginx/blog.domain.tld
Konfigurer NGINX som en HTTP ( S ) omvendt proxy-server:
sudo vim /etc/nginx/conf.d/ghost.conf
Lim inn 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 "";
}
}
Lagre og test NGINX-konfigurasjonen for syntaksfeil:
sudo nginx -t
Last inn NGINX-konfigurasjonen på nytt:
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.
Opprett dokumentrotkatalog:
sudo mkdir -p /var/www/
Opprett en ny spøkelsesbruker:
sudo useradd -c 'Ghost application' ghost
Last ned Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
Pakk ut Ghost i /var/www/ghost
katalogen (anbefalt installasjonssted):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Flytt til den nye spøkelseskatalogen:
cd /var/www/ghost
Endre eierskapet til /var/www/ghost
katalogen:
sudo chown -R ghost:ghost .
Bytt til ny ghost
bruker:
sudo su - ghost
Naviger til dokumentroten /var/www/ghost
:
cd /var/www/ghost
Installer Ghost kun med produksjonsavhengigheter. Når dette er fullført, er Ghost installert:
npm install --production
Konfigurer Ghost ved å endre url
, mail
og database
egenskapen til produksjonsobjektet inne i config.js
filen:
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 produksjonsmiljø:
npm start --production
Ghost vil nå kjøre. Både blogggrensesnitt og administrasjonsgrensesnitt er sikret med HTTPS og HTTP/2 fungerer også. Du kan åpne nettleseren og besøke nettstedet på https://blog.domain.tld
. Ikke glem å erstatte blog.domain.tld
med ditt domenenavn.
Slå av Ghost-prosessen ved å trykke CTRL
+ C
og gå ut fra Ghost-bruker tilbake til ikke-rootbruker som du har opprettet i begynnelsen:
exit
Hvis du lukker terminaløkten med VPS-en din, vil også bloggen din gå ned. Det er ikke bra. For å unngå dette skal vi bruke systemd. Det vil holde bloggen vår oppe 24/7.
Opprett ghost.service
systemd enhetsfil. Kjør sudo sudo vim /etc/systemd/system/ghost.service
og kopier/lim inn innholdet nedenfor:
[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=/bin/npm start --production
ExecStop=/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
Sjekk ghost.service
status:
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
Naviger til https://blog.domain.tld/ghost/
og opprett en Ghost-administratorbruker. Gjør dette så snart som mulig!
Det er det. Vi har nå en fullt funksjonell Ghost-blogg. Serveren din leverer innhold via HTTP/2 når den støttes av klienten. Hvis du vil endre standard Ghost-tema kalt Casper til et tilpasset, kan du bare laste ned og pakke ut temaet i /var/www/ghost/content/themes
mappen og velge det via Ghost-administrasjonsgrensesnittet, som ligger på https://blog.domain.tld/ghost
.
Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg
Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i
Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg
Introduksjon WordPress er det dominerende innholdsstyringssystemet på internett. Den driver alt fra blogger til komplekse nettsteder med dynamisk innhold
Bruker du et annet system? Jekyll er et godt alternativ til WordPress. Det krever ingen databaser, og det fungerer med et språk mange er kjent med
Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i
Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM
Neos er et innovativt innholdsstyringssystem med åpen kildekode som er flott for å lage og redigere innhold på nettet. Med forfattere og redaktører i tankene, Neo
Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt populær blant utviklere og vanlige brukere siden 201
Bruker du et annet system? SilverStripe er et fleksibelt og utvidbart, åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i PHP. Det er lett
Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt populær blant utviklere og vanlige brukere siden 201
En vanlig bruk av en Vultr virtuell server er å være vert for Wordpress-nettsteder. Denne guiden viser deg hvordan du automatiserer konfigurasjonen av en virtuell server fra bunnen av
Ghost er den nyeste og beste oppkomlingen til å konkurrere med WordPress. Temautvikling er rask og enkel å lære fordi Ghost-utviklerne bestemte seg for å bruke både th
Ghost er en moderne, åpen kildekode-publiseringsplattform bygget på Node.js med en Ember.js admin-klient, en JSON API og en tema-API drevet av Handlebars.js. Ghos
Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i
Bruker du et annet system? Dotclear er en veldig enkel bloggingmotor. Den er åpen kildekode og enkel å bruke. Denne opplæringen vil gå gjennom installasjonen på
Bruker du et annet system? SilverStripe er et fleksibelt og utvidbart gratis og åpen kildekode for enterprise-grade Content Management System (CMS) skrevet i PHP. Jeg
Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM
Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt mer populær blant utviklere og vanlige brukere siden utgivelsen i 2013. Jeg
Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM
Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.
Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.
Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.
Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.
Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...
Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.
Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.
Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.
I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.
Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer