Установите WordPress на OpenBSD 6.2
Введение WordPress является доминирующей системой управления контентом в Интернете. Он поддерживает все, от блогов до сложных сайтов с динамическим контентом
Ghost - это платформа для ведения блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. Это делает акцент на контент и блоги. Самое привлекательное в Ghost - это простой, чистый и отзывчивый дизайн. Вы можете написать свои сообщения в блоге с мобильного телефона. Контент для Ghost написан с использованием языка Markdown. Призрак идеально подходит для отдельных людей или небольших групп писателей.
В этом руководстве мы собираемся настроить и развернуть безопасный блог Ghost v0.11.x LTS на VPS Ubuntu 16.04 LTS, используя Let's Encrypt , Certbot , Node.js , NPM , NGINX и MySQL .
Создайте новую учетную запись пользователя без полномочий root :
adduser johndoe --gecos "John Doe"
Сделайте его суперпользователем, добавив его в sudo
группу:
usermod -aG sudo johndoe
Переключиться на нового пользователя:
su - johndoe
Обновите программное обеспечение вашей операционной системы:
sudo apt update && sudo apt upgrade -y
Установите часовой пояс:
sudo dpkg-reconfigure tzdata
Установите необходимые инструменты:
sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
Перезагрузите систему, если требуется:
sudo shutdown -r now
ПРИМЕЧАНИЕ . Перед началом этого шага убедитесь, что вы установили записи DNS для своего домена.
Мы будем использовать Let's Encrypt CA и клиент EFF Certbot для получения сертификата SSL / TLS для нашего блога Ghost. Не забудьте заменить все экземпляры на blog.domain.tld
ваше доменное имя.
Установите программу управления сертификатами Certbot (ранее - Let's Encrypt ), сделанную на Python:
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
Проверьте версию Certbot:
certbot --version
# certbot 0.14.2
Получить серти��икат 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
каталоге.
ПРИМЕЧАНИЕ . В настоящее время Ghost поддерживает только версии Node.js 4.5+ и 6.9+ .
Призрак построен на Node.js. Мы собираемся установить рекомендуемую версию для Ghost, которая была v6 Boron LTS
на момент написания этой статьи.
Загрузите и установите Node.js v6 LTS:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Проверьте Node.js и версию NPM:
node -v && npm -v
# v6.11.1
# 3.10.10
По умолчанию Ghost настроен на использование базы данных SQLite, которая не требует настройки.
В качестве альтернативы Ghost также можно использовать с базой данных MySQL, изменив конфигурацию базы данных. Сначала вы должны создать базу данных и пользователя, затем вы можете изменить существующую конфигурацию sqlite3.
Загрузите и установите MySQL:
sudo apt install -y mysql-server
ПРИМЕЧАНИЕ . Во время установки вам будет предложено ввести пароль пользователя root «MySQL». Вы должны установить безопасный пароль для пользователя «root» MySQL.
Проверьте версию MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
Проверьте, запущен ли демон 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/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
Убедитесь, что он установлен, проверив версию NGINX:
sudo nginx -v
# nginx version: nginx/1.13.3
Проверьте состояние, включите и запустите службу NGINX (демон):
sudo systemctl status nginx.service # inactive (dead)
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Создайте /etc/nginx/ssl
каталог и сгенерируйте новую группу Диффи-Хеллмана ( 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;
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 "";
}
}
Сохраните и проверьте конфигурацию NGINX на наличие синтаксических ошибок:
sudo nginx -t
Перезагрузите конфигурацию NGINX:
sudo systemctl reload nginx.service
ПРИМЕЧАНИЕ . Если вы хотите разместить несколько блогов Ghost на одном VPS, каждый экземпляр Ghost должен работать на отдельном порту.
Создать корневой каталог документов:
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.10/Ghost-0.11.10.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
Настройка Призрачный путем изменения url
, mail
и database
свойство production
объекта внутри 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
},
// . . .
// . . .
ПРИМЕЧАНИЕ . Необходимо также настроить
Запустите Ghost в производственной среде:
npm start --production
Призрак теперь будет работать. Интерфейс блога и интерфейс администратора защищены HTTPS, также работает HTTP / 2. Вы можете открыть свой браузер и посетить сайт по адресу https://blog.domain.tld
. Не забудьте заменить blog.domain.tld
на ваше доменное имя.
Завершите процесс Ghost, нажав CTRL
+, C
и выйдите из пользователя-призрака обратно пользователю root:
exit
Если вы закроете сеанс терминала с вашим VPS, ваш блог также будет закрыт. Это не хорошо. Чтобы избежать этого, мы будем использовать systemd. Это будет держать наш блог вверх 24/7.
Создать ghost.service
системный файл модуля. Запустите sudo vim /etc/systemd/system/ghost.service
и скопируйте / вставьте содержимое ниже:
[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
Включить и запустить 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
.
Введение WordPress является доминирующей системой управления контентом в Интернете. Он поддерживает все, от блогов до сложных сайтов с динамическим контентом
Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая система управления контентом (CMS) корпоративного уровня с открытым исходным кодом, написанная на PHP. Это я
Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i
Используете другую систему? Ghost - это платформа для блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. я
Используете другую систему? Dotclear - очень простой движок для блогов. Это с открытым исходным кодом и прост в использовании. Этот учебник будет проходить установку на
Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM
Typesetter - это CMS с открытым исходным кодом, написанная на PHP, ориентированная на простоту использования с редактированием True WYSIWYG и хранением плоских файлов. В этой статье мы будем устанавливать
Ghost - новейшая и самая лучшая выскочка для конкурента WordPress. Разработка тем быстро и легко изучается, потому что разработчики Ghost решили использовать оба
Используете другую систему? Ghost - это блог-платформа с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с 201 года.
Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i
Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM
Используете другую систему? Ghost - это платформа для блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. я
Используете другую систему? Jekyll - хорошая альтернатива WordPress. Он не требует каких-либо баз данных и работает с языком, знакомым многим
Используете другую систему? Ghost - это блог-платформа с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с 201 года.
Введение Чем ближе вы устанавливаете вашу OpenBSD к установке по умолчанию и без того, чтобы было добавлено столько пакетов, тем безопаснее она будет. Пока более комм
Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i
Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM
Используете другую систему? Dotclear - это очень простой движок для блогов, который построен на основе PHP. В этом уроке мы установим Dotclear на Ubunt
Обычно виртуальный сервер Vultr используется для размещения веб-сайтов Wordpress. В этом руководстве показано, как автоматизировать настройку виртуального сервера с нуля.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше