Vytvoření blogu Jekyll na Ubuntu 16.04
Používáte jiný systém? Jekyll je skvělá alternativa k WordPressu pro blogování nebo sdílení obsahu. Nevyžaduje žádné databáze a je velmi snadné i
Ghost je open source platforma pro blogování, která si od svého vydání v roce 2013 získává na popularitě mezi vývojáři i běžnými uživateli. Klade důraz na obsah a blogování. Nejatraktivnější věcí na Ghost je jeho jednoduchý, čistý a citlivý design. Příspěvky na svůj blog můžete psát z mobilního telefonu. Obsah pro Ghost je napsán pomocí jazyka Markdown. Ghost se perfektně hodí pro jednotlivce nebo malé skupiny spisovatelů.
V této příručce se chystáme nastavit a nasadit zabezpečený blog Ghost v0.11.x LTS na Ubuntu 16.04 LTS VPS pomocí Let's Encrypt , Certbot , Node.js , NPM , NGINX a MySQL .
Vytvořte nový uživatelský účet bez oprávnění root :
adduser johndoe --gecos "John Doe"
Udělejte z něj superuživatele přidáním do sudo
skupiny:
usermod -aG sudo johndoe
Přepnout na nového uživatele:
su - johndoe
Aktualizujte software svého operačního systému:
sudo apt update && sudo apt upgrade -y
Nastavte časové pásmo:
sudo dpkg-reconfigure tzdata
Nainstalujte požadované nástroje:
sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
V případě potřeby restartujte systém:
sudo shutdown -r now
NOTE: Before starting this step, ensure that you have set DNS records for your domain.
K získání certifikátu SSL/TLS pro náš blog Ghost použijeme Let's Encrypt CA a EFF 's Certbot . Nezapomeňte nahradit všechny instance názvem vaší domény.blog.domain.tld
Nainstalujte software pro správu certifikátů Certbot (dříve klienta Let's Encrypt ) vytvořený v Pythonu:
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
Zkontrolujte verzi Certbot:
certbot --version
# certbot 0.14.2
Získejte certifikát RSA pomocí samostatné autentizační metody (pluginu):
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. . . .
# . . .
Po provedení předchozích kroků bude váš certifikát a soukromý klíč v /etc/letsencrypt/live/blog.domain.tld
adresáři.
NOTE: Ghost currently supports Node.js versions 4.5+ and 6.9+ only.
Ghost je postaven na Node.js. Chystáme se nainstalovat doporučenou verzi pro Ghost, která je v6 Boron LTS
v době psaní tohoto článku.
Stáhněte a nainstalujte Node.js v6 LTS:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Zkontrolujte verzi Node.js a NPM:
node -v && npm -v
# v6.11.1
# 3.10.10
Ve výchozím nastavení je Ghost nakonfigurován pro použití databáze SQLite, která nevyžaduje žádnou konfiguraci.
Alternativně lze Ghost použít také s databází MySQL změnou konfigurace databáze. Nejprve musíte vytvořit databázi a uživatele, poté můžete změnit stávající konfiguraci sqlite3.
Stáhněte a nainstalujte 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.
Zkontrolujte verzi MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
Zkontrolujte, zda se spustil a běží démon MySQL:
sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service
Spusťte mysql_secure_installation
skript, abyste trochu zabezpečili databázi:
sudo mysql_secure_installation
Přihlaste se do MySQL jako uživatel root:
mysql -u root -p
# Enter password:
Vytvořte novou databázi MySQL a uživatele:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Ukončete MySQL:
exit
Stáhněte si a nainstalujte nejnovější hlavní verzi NGINX z oficiálního úložiště NGINX:
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
Ověřte, zda je nainstalován, zkontrolováním verze NGINX:
sudo nginx -v
# nginx version: nginx/1.13.3
Zkontrolujte stav, povolte a spusťte službu NGINX (démon):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Vytvořte /etc/nginx/ssl
adresář a vygenerujte novou skupinu Diffie-Hellman ( DH ):
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Vytvořte adresář protokolu pro blog.domain.tld
virtuálního hostitele:
sudo mkdir -p /var/log/nginx/blog.domain.tld
Nakonfigurujte NGINX jako HTTP ( S ) reverzní proxy server:
sudo vim /etc/nginx/conf.d/ghost.conf
Vložte následující /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 "";
}
}
Uložte a otestujte konfiguraci NGINX na chyby syntaxe:
sudo nginx -t
Znovu načíst konfiguraci NGINX:
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.
Vytvořte kořenový adresář dokumentu:
sudo mkdir -p /var/www/
Vytvořit nového ghost
uživatele:
sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
Stáhnout Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
Rozbalte Ghost do /var/www/ghost
adresáře (doporučené umístění instalace):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Přesunout do nového ghost
adresáře:
cd /var/www/ghost
Změňte vlastnictví /var/www/ghost
adresáře:
sudo chown -R ghost:ghost .
Přepnout na nového ghost
uživatele:
sudo su - ghost
Přejděte do kořenového adresáře dokumentu /var/www/ghost
:
cd /var/www/ghost
Nainstalujte Ghost pouze s produkčními závislostmi. Po dokončení se Ghost nainstaluje:
npm install --production
Konfigurace Duch změnou url
, mail
a database
vlastnost production
objektu dovnitř config.js
souboru:
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
Spusťte Ghost v produkčním prostředí:
npm start --production
Ghost nyní poběží. Front-end blogu i administrátorské rozhraní jsou zabezpečeny HTTPS a HTTP/2 funguje také. Můžete otevřít svůj prohlížeč a navštívit stránky na adrese https://blog.domain.tld
. Nezapomeňte nahradit blog.domain.tld
názvem vaší domény.
Vypněte proces Ghost stisknutím CTRL
+ C
a ukončete z ghost uživatele zpět na uživatele root:
exit
Pokud zavřete relaci terminálu se svým VPS, váš blog také skončí. To není dobré. Abychom tomu zabránili, použijeme systemd. Náš blog bude fungovat 24/7.
Vytvořte ghost.service
soubor systemd unit. Spusťte sudo vim /etc/systemd/system/ghost.service
a zkopírujte/vložte níže uvedený obsah:
[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
Povolit a spustit ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
Zkontrolujte ghost.service
stav:
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
Přejděte https://blog.domain.tld/ghost/
a vytvořte uživatele Ghost admin. Udělejte to co nejdříve!
A je to. Nyní máme plně funkční blog Ghost. Váš server doručuje obsah prostřednictvím HTTP/2, pokud to klient podporuje. Pokud chcete změnit výchozí téma Ghost s názvem Casper na vlastní, stačí si stáhnout a rozbalit motiv do /var/www/ghost/content/themes
složky a vybrat jej prostřednictvím administrátorského rozhraní Ghost na adrese https://blog.domain.tld/ghost
.
Používáte jiný systém? Jekyll je skvělá alternativa k WordPressu pro blogování nebo sdílení obsahu. Nevyžaduje žádné databáze a je velmi snadné i
Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, bezplatný a open source podnikový systém správy obsahu (CMS) napsaný i
Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, open source podnikový systém správy obsahu (CMS) napsaný v PHP. To i
Úvod WordPress je dominantním redakčním systémem na internetu. Pohání vše od blogů po složité webové stránky s dynamickým obsahem
Používáte jiný systém? Jekyll je dobrou alternativou k WordPressu. Nevyžaduje žádné databáze a pracuje s jazykem, který mnozí zná
Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, bezplatný a open source podnikový systém správy obsahu (CMS) napsaný i
Používáte jiný systém? Fork je open source CMS napsaný v PHP. Zdrojový kód Forks je hostován na GitHubu. Tato příručka vám ukáže, jak nainstalovat Fork CM
Neos je inovativní open source systém pro správu obsahu, který je skvělý pro vytváření a úpravy online obsahu. S ohledem na autory a editory, Neo
Používáte jiný systém? Ghost je open source platforma pro blogování, která si od roku 201 získává oblibu mezi vývojáři i běžnými uživateli.
Používáte jiný systém? SilverStripe je flexibilní a rozšiřitelný, open source, podnikový systém správy obsahu (CMS) napsaný v PHP. Je to snadné
Používáte jiný systém? Ghost je open source platforma pro blogování, která si od roku 201 získává oblibu mezi vývojáři i běžnými uživateli.
Běžným využitím virtuálního serveru Vultr je hostování webových stránek Wordpress. Tato příručka vám ukáže, jak automatizovat konfiguraci virtuálního serveru od nuly
Ghost je nejnovější a největší nováček konkurenčního WordPressu. Vývoj tématu je rychlý a snadno se učí, protože vývojáři Ghost se rozhodli použít oba th
Ghost je moderní platforma pro publikování s otevřeným zdrojovým kódem postavená na Node.js s administračním klientem Ember.js, rozhraním JSON API a tematickým API založeným na Handlebars.js. Ghos
Používáte jiný systém? MODX Revolution je rychlý, flexibilní, škálovatelný, bezplatný a open source podnikový systém správy obsahu (CMS) napsaný i
Používáte jiný systém? Dotclear je velmi jednoduchý blogovací engine. Je to open source a snadno se používá. Tento tutoriál projde instalací na
Používáte jiný systém? SilverStripe je flexibilní a rozšiřitelný bezplatný a open source podnikový systém správy obsahu (CMS) napsaný v PHP. já
Používáte jiný systém? Fork je open source CMS napsaný v PHP. Zdrojový kód Forks je hostován na GitHubu. Tato příručka vám ukáže, jak nainstalovat Fork CM
Používáte jiný systém? Ghost je open source platforma pro blogování, která si od svého vydání v roce 2013 získává na popularitě mezi vývojáři i běžnými uživateli. já
Používáte jiný systém? Fork je open source CMS napsaný v PHP. Zdrojový kód Forks je hostován na GitHubu. Tato příručka vám ukáže, jak nainstalovat Fork CM
Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.
Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.
Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.
Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.
Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…
Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.
Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.
Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.
V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.
Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více