Създаване на блог на Jekyll в Ubuntu 16.04
Използване на различна система? Jekyll е чудесна алтернатива на WordPress за блогове или споделяне на съдържание. Не изисква никакви бази данни и е много лесно i
Ghost е платформа за блогове с отворен код, която набира популярност сред разработчиците и обикновените потребители след пускането си през 2013 г. Той поставя фокус върху съдържанието и блоговете. Най-привлекателното нещо при Ghost е неговият прост, изчистен и отзивчив дизайн. Можете да пишете публикациите си в блога от мобилен телефон. Съдържанието за Ghost е написано с помощта на езика Markdown. Ghost е идеално подходящ за отделни лица или малки групи писатели.
В това ръководство ще настроим и внедрим защитен блог Ghost v0.11.x LTS на Debian 8 VPS, използвайки Let's Encrypt , Certbot , Node.js , NPM , NGINX и MySQL .
Проверете версията на Debian:
lsb_release -ds
# Debian GNU/Linux 8.9 (jessie)
Създайте нов потребителски акаунт, който не е root :
adduser johndoe --gecos "John Doe"
Направете го суперпотребител, като го добавите към sudo
групата:
usermod -aG sudo johndoe
Превключете към новия потребител:
su - johndoe
Актуализирайте софтуера на вашата операционна система:
sudo apt-get update && sudo apt-get upgrade -y
Настройте часовата зона:
sudo dpkg-reconfigure tzdata
Инсталирайте необходимите инструменти:
sudo apt-get install -y build-essential zip unzip git apt-transport-https
Рестартирайте системата, ако е необходимо:
sudo shutdown -r now
NOTE: Before starting this step, ensure that you have set DNS records for your domain.
Ние ще използваме Encrypt Нека Калифорния и EFF е Certbot клиент да получи SSL / TLS сертификат за нашия Ghost блог. Не забравяйте да замените всички екземпляри на blog.domain.tld
с името на вашия домейн.
Инсталирайте Certbot (по-рано Let's Encrypt client ) софтуер за управление на сертификати, направен с Python:
sudo -s
printf "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list.d/jessie-backports.list
exit
sudo apt-get update
sudo apt-get install -y certbot -t jessie-backports
Проверете версията на Certbot:
certbot --version
# certbot 0.10.2
Получете RSA сертификат, като използвате самостоятелен метод за удостоверяване (плъгин):
sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --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. . . .
# . . .
След като преминете през предишни стъпки, вашият сертификат и частният ключ ще бъдат в /etc/letsencrypt/live/blog.domain.tld
директорията.
NOTE: Ghost currently supports Node.js versions 4.5+ and 6.9+ only.
Ghost е изграден на Node.js. Ще инсталираме препоръчителната версия за Ghost, която е v6 Boron LTS
към момента на писане.
Изтеглете и инсталирайте Node.js v6 LTS:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
Проверете версията на Node.js и NPM:
node -v && npm -v
# v6.11.2
# 3.10.10
По подразбиране Ghost е конфигуриран да използва SQLite база данни, която не изисква конфигурация.
Алтернативно Ghost може да се използва и с MySQL база данни чрез промяна на конфигурацията на базата данни. Първо трябва да създадете база данни и потребител, след което можете да промените съществуващата конфигурация на sqlite3.
Изтеглете и инсталирайте MySQL:
sudo apt-get 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.
Проверете версията на MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.5.57, for debian-linux-gnu (x86_64) using readline 6.3
Проверете дали MySQL демонът е стартиран и работи:
sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service
Изпълнете mysql_secure_installation
скрипта, за да защитите малко вашата база данни:
sudo mysql_secure_installation
Влезте в MySQL като root потребител:
mysql -u root -p
# Enter password:
Създайте нова MySQL база данни и потребител:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Излезте от MySQL:
exit
Изтеглете и инсталирайте най-новата основна версия на NGINX от официалното хранилище на 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/debian/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/debian/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt-get update
sudo apt-get install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
Проверете дали е инсталиран, като проверите версията на NGINX:
sudo nginx -v
# nginx version: nginx/1.13.4
Проверете състоянието, активирайте и стартирайте услугата NGINX (демон):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Създайте /etc/nginx/ssl
директория и генерирайте нова група на Diffie-Hellman ( DH ):
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Създаване на директория на журнал за blog.domain.tld
виртуален хост:
sudo mkdir -p /var/log/nginx/blog.domain.tld
Конфигурирайте NGINX като HTTP ( S ) обратен прокси сървър:
sudo vim /etc/nginx/conf.d/ghost.conf
Поставете следното в /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; # Change to your domain/hostname
root /var/www/ghost; # Change to the path where Ghost is
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 "";
}
}
Запазете и тествайте конфигурацията на NGINX за синтактични грешки:
sudo nginx -t
Презаредете конфигурацията на 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.
Създайте основната директория на документа:
sudo mkdir -p /var/www/
Създайте нов ghost
потребител:
sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
Изтеглете Ghost:
curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
Разархивирайте Ghost в /var/www/ghost
директорията (препоръчително място за инсталиране):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Отидете до новата ghost
директория:
cd /var/www/ghost
Променете собствеността на /var/www/ghost
директорията:
sudo chown -R ghost:ghost .
Превключете към нов ghost
потребител:
sudo su - ghost
Придвижете се до корена на документа /var/www/ghost
:
cd /var/www/ghost
Инсталирайте Ghost само с производствени зависимости. Когато това приключи, Ghost се инсталира:
npm install --production
Конфигурирайте Ghost, като промените url
, mail
и database
свойството на производствения обект вътре във config.js
файла:
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 mail settings also. Consult the official Ghost documentation on how to do that.
Стартирайте Ghost в производствена среда:
npm start --production
Ghost сега ще бяга. И предния край на блога, и интерфейсът на администратора са защитени с HTTPS и HTTP/2 също работи. Можете да отворите браузъра си и да посетите сайта на адрес https://blog.domain.tld
. Не забравяйте да замените blog.domain.tld
с името на вашия домейн.
Изключете Ghost процеса, като натиснете CTRL
+ C
и излезте от ghost
потребителя обратно към root потребител:
exit
Ако затворите терминалната си сесия с вашия VPS, вашият блог също ще падне. Това не е добре. За да избегнем това, ще използваме Systemd. Това ще поддържа блога ни 24/7.
Създайте ghost.service
Systemd файл с единица. Стартирайте sudo vim /etc/systemd/system/ghost.service
и копирайте/поставете следното съдържание:
[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
Активирайте и стартирайте ghost.service
:
sudo systemctl enable ghost.service && sudo systemctl start ghost.service
Проверете ghost.service
състоянието:
sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
Отидете до https://blog.domain.tld/ghost/
и създайте потребител на Ghost администратор. Направете това възможно най-скоро!
Това е. Вече имаме напълно функционален Ghost блог. Вашият сървър доставя съдържание чрез HTTP/2, когато се поддържа от клиента. Ако искате да промените темата на Ghost по подразбиране, наречена Casper, на персонализирана, можете просто да изтеглите и разархивирате темата в /var/www/ghost/content/themes
папката и да я изберете чрез администраторски интерфейс на Ghost, намиращ се на https://blog.domain.tld/ghost
.
Използване на различна система? Jekyll е чудесна алтернатива на WordPress за блогове или споделяне на съдържание. Не изисква никакви бази данни и е много лесно i
Използване на различна система? MODX Revolution е бърза, гъвкава, мащабируема, безплатна и отворена система за управление на съдържанието (CMS) от корпоративен клас, написана i
Използване на различна система? MODX Revolution е бърза, гъвкава, мащабируема система за управление на съдържанието (CMS) от корпоративен клас, написана на PHP. То и
Въведение WordPress е доминиращата система за управление на съдържанието в интернет. Той захранва всичко от блогове до сложни уебсайтове с динамично съдържание
Използване на различна система? Jekyll е добра алтернатива на WordPress. Не изисква никакви бази данни и работи с език, който мнозина познават
Използване на различна система? MODX Revolution е бърза, гъвкава, мащабируема, безплатна и отворена система за управление на съдържанието (CMS) от корпоративен клас, написана i
Използване на различна система? Fork е CMS с отворен код, написан на PHP. Изходният код на Forks се хоства на GitHub. Това ръководство ще ви покаже как да инсталирате Fork CM
Neos е иновативна система за управление на съдържанието с отворен код, която е чудесна за създаване и редактиране на онлайн съдържание. Имайки предвид авторите и редакторите, Neo
Използване на различна система? Ghost е платформа за блогове с отворен код, която набира популярност сред разработчиците и обикновените потребители от 201 г.
Използване на различна система? SilverStripe е гъвкава и разширяема система за управление на съдържанието (CMS) с отворен код, написана на PHP. Това е лесно
Използване на различна система? Ghost е платформа за блогове с отворен код, която набира популярност сред разработчиците и обикновените потребители от 201 г.
Често срещано използване на виртуален сървър Vultr е за хостване на уебсайтове на Wordpress. Това ръководство ви показва как да автоматизирате конфигурацията на виртуален сървър от нулата
Ghost е най-новата и най-добрата нова, която да съперничи на WordPress. Разработването на теми е бързо и лесно за научаване, защото разработчиците на Ghost решиха да използват и двете
Ghost е модерна платформа за публикуване с отворен код, изградена на Node.js с администраторски клиент Ember.js, JSON API и API за тема, задвижван от Handlebars.js. Ghos
Използване на различна система? MODX Revolution е бърза, гъвкава, мащабируема, безплатна и отворена система за управление на съдържанието (CMS) от корпоративен клас, написана i
Използване на различна система? Dotclear е много прост двигател за блогове. Той е с отворен код и лесен за използване. Този урок ще премине през инсталацията
Използване на различна система? Fork е CMS с отворен код, написан на PHP. Изходният код на Forks се хоства на GitHub. Това ръководство ще ви покаже как да инсталирате Fork CM
Използване на различна система? Ghost е платформа за блогове с отворен код, която набира популярност сред разработчиците и обикновените потребители след пускането си през 2013 г. аз
Използване на различна система? Fork е CMS с отворен код, написан на PHP. Изходният код на Forks се хоства на GitHub. Това ръководство ще ви покаже как да инсталирате Fork CM
Typesetter е CMS с отворен код, написан на PHP, фокусиран върху лекотата на използване с True WYSIWYG редактиране и съхранение на плосък файл. В тази статия ще инсталираме
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече