Створення блогу Jekyll в Ubuntu 16.04
Використання іншої системи? Jekyll — чудова альтернатива WordPress для ведення блогів або обміну вмістом. Для цього не потрібні ніякі бази даних, і це дуже легко i
Ghost — це платформа для ведення блогів з відкритим кодом, яка набирає популярності серед розробників і звичайних користувачів з моменту її випуску в 2013 році. Він акцентує увагу на контенті та веденні блогів. Найпривабливішим у Ghost є його простий, чистий та чуйний дизайн. Ви можете писати свої дописи в блозі з мобільного телефону. Вміст для Ghost написаний мовою Markdown. Ghost ідеально підходить для окремих осіб або невеликих груп письменників.
У цьому посібнику ми збираємося налаштувати та розгорнути захищений блог Ghost v0.11.x LTS на Fedora 25 VPS за допомогою Let's Encrypt , Certbot , Node.js , NPM , NGINX і MySQL .
semanage port -a -t http_port_t -p tcp 2368
.Перевірте версію Fedora:
cat /etc/fedora-release
# Fedora release 25 (Twenty Five)
Створіть нового користувача без права root :
useradd -c "John Doe" johndoe && passwd johndoe
Зробіть його суперкористувачем, додавши його до wheel
групи:
usermod -aG wheel johndoe
Перейти до нового користувача:
su - johndoe
Оновіть програмне забезпечення операційної системи:
sudo dnf check-update || sudo dnf upgrade -y
Налаштуйте часовий пояс:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Встановіть інструменти розробки:
sudo dnf install @development-tools -y
Встановіть текстовий редактор Vim і Wget:
sudo dnf install -y vim wget
Перезавантажте систему, якщо потрібно:
sudo shutdown -r now
NOTE: Before starting this step, ensure that you have set DNS records for your domain.
Ми збираємося використовувати Let's Encrypt CA і клієнт Certbot EFF , щоб отримати сертифікат SSL/TLS для нашого блогу Ghost. Не забудьте замінити всі екземпляри на blog.domain.tld
ім’я вашого домену.
Встановіть програмне забезпечення для керування сертифікатами Certbot (раніше Let's Encrypt client ), створене за допомогою Python:
sudo dnf install -y certbot
Перевірте версію Certbot:
certbot --version
# certbot 0.14.1
Отримати сертифікат RSA за допомогою окремого методу аутентифікації (плагін):
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. . . .
# . . .
Після виконання попередніх кроків ваш сертифікат і закритий ключ будуть у /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 --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo dnf install -y nodejs
Перевірте версію Node.js і NPM:
node -v && npm -v
# v6.11.2
# 3.10.10
За замовчуванням Ghost налаштований на використання бази даних SQLite, яка не потребує налаштування.
Крім того, Ghost також можна використовувати з базою даних MySQL, змінивши конфігурацію бази даних. Спочатку потрібно створити базу даних і користувача, а потім змінити існуючу конфігурацію sqlite3.
Завантажте та встановіть останню версію MySQL (наразі 5.7 ) з офіційного репозиторію MySQL Dnf:
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
Перевірте версію MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
Запустіть MySQL Server і перевірте його статус:
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service
MySQL версії 5.7 або вище генерує тимчасовий випадковий пароль для root
користувача MySQL після встановлення, а пароль зберігається у файлі журналу помилок MySQL, розташованому за адресою /var/log/mysqld.log
. Щоб розкрити його, скористайтеся такою командою:
sudo grep 'temporary password' /var/log/mysqld.log
Запустіть mysql_secure_installation
сценарій, щоб трохи захистити свою базу даних:
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
Увійдіть в MySQL як користувач root:
mysql -u root -p
# Enter password:
Створіть нову базу даних MySQL і користувача:
create database dbname;
grant all on dbname.* to 'user' identified by 'password';
Вийти з MySQL:
exit
Завантажте та встановіть NGINX:
sudo dnf install -y nginx
Verify that it is installed by checking the NGINX version:
sudo nginx -v
# nginx version: nginx/1.10.2
Check status, enable and start NGINX service (daemon):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Create /etc/nginx/ssl
directory and generate a new Diffie-Hellman (DH) parameters:
sudo mkdir -p /etc/nginx/ssl
sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
Create log directory for blog.domain.tld
virtual host:
sudo mkdir -p /var/log/nginx/blog.domain.tld
Configure NGINX as a HTTP(S) reverse proxy server:
sudo vim /etc/nginx/conf.d/ghost.conf
Paste the following in /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 "";
}
}
Save and test NGINX configuration for syntax errors:
sudo nginx -t
Reload NGINX configuration:
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.
Create document root directory:
sudo mkdir -p /var/www/
Create a new ghost user:
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
Unzip Ghost into the /var/www/ghost
directory (recommended install location):
sudo unzip -uo ghost.zip -d /var/www/ghost
rm ghost.zip
Move to the new ghost directory:
cd /var/www/ghost
Change the ownership of the /var/www/ghost
directory:
sudo chown -R ghost:ghost .
Switch to new ghost
user:
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
Запустіть Ghost у виробничому середовищі:
npm start --production
Тепер привид буде бігати. І інтерфейс блогу, і інтерфейс адміністратора захищені HTTPS, а також працює HTTP/2. Ви можете відкрити свій браузер і відвідати сайт за адресою https://blog.domain.tld
. Не забудьте замінити blog.domain.tld
на своє доменне ім’я.
Вимкніть процес Ghost, натиснувши CTRL
+, C
і вийдіть із користувача ghost назад до користувача без root, якого ви створили на початку:
exit
Якщо ви закриєте термінальний сеанс за допомогою VPS, ваш блог також зникне. Це не добре. Щоб уникнути цього, ми збираємося використовувати systemd. Завдяки цьому наш блог буде працювати цілодобово.
Створіть ghost.service
файл модуля systemd. Запустіть sudo 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) корпоративного рівня з відкритим кодом.
Використання іншої системи? Jekyll — хороша альтернатива WordPress. Він не вимагає жодних баз даних і працює з мовою, знайомою багатьом
Використання іншої системи? MODX Revolution — це швидка, гнучка, масштабована, безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом.
Використання іншої системи? Fork — це CMS з відкритим кодом, написана на PHP. Вихідний код Forks розміщено на GitHub. Цей посібник покаже вам, як встановити Fork CM
Neos – це інноваційна система керування вмістом із відкритим кодом, яка чудово підходить для створення та редагування онлайн-контенту. Маючи на увазі авторів і редакторів, Neo
Використання іншої системи? Ghost — це платформа для ведення блогів з відкритим кодом, яка набирає популярності серед розробників і звичайних користувачів з 201 року.
Використання іншої системи? Ghost — це платформа для ведення блогів з відкритим кодом, яка набирає популярності серед розробників і звичайних користувачів з 201 року.
Поширеним використанням віртуального сервера Vultr є розміщення веб-сайтів Wordpress. У цьому посібнику показано, як автоматизувати налаштування віртуального сервера з нуля
Ghost — найновіша і найкраща вискочка, яка конкурує з WordPress. Розробка теми швидка та проста в освоєнні, тому що розробники Ghost вирішили використовувати обидва
Ghost — це сучасна видавнича платформа з відкритим вихідним кодом, побудована на Node.js з клієнтом адміністратора Ember.js, API JSON та API тем, що працює на основі Handlebars.js. Ghos
Використання іншої системи? MODX Revolution — це швидка, гнучка, масштабована, безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом.
Використання іншої системи? Fork — це CMS з відкритим кодом, написана на PHP. Вихідний код Forks розміщено на GitHub. Цей посібник покаже вам, як встановити Fork CM
Використання іншої системи? Ghost – це платформа для ведення блогів з відкритим кодом, яка набирає популярності серед розробників і звичайних користувачів з моменту її випуску в 2013 році. я
Використання іншої системи? Fork — це CMS з відкритим кодом, написана на PHP. Вихідний код Forks розміщено на GitHub. Цей посібник покаже вам, як встановити Fork CM
Typesetter — це CMS з відкритим вихідним кодом, написана на PHP, зосереджена на простоті використання з редагуванням True WYSIWYG і зберіганням плоских файлів. У цій статті ми будемо встановлювати
Примірники Vultr – це чудовий спосіб вести свій блог WordPress, але більш помітним розширенням WordPress є WooCommerce, плагін електронної комерції, який розширює
Використання іншої системи? Fork — це CMS з відкритим кодом, написана на PHP. Вихідний код Forks розміщено на GitHub. Цей посібник покаже вам, як встановити Fork CM
Використання іншої системи? MODX Revolution — це швидка, гнучка, масштабована, безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом.
Використання іншої системи? SilverStripe — це гнучка та розширювана безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом, написана на PHP. я
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше