Установите WordPress на OpenBSD 6.2
Введение WordPress является доминирующей системой управления контентом в Интернете. Он поддерживает все, от блогов до сложных сайтов с динамическим контентом
Ghost - это платформа для ведения блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. Это делает акцент на контент и блоги. Самое привлекательное в Ghost - это простой, чистый и отзывчивый дизайн. Вы можете написать свои сообщения в блоге с мобильного телефона. Контент для Ghost написан с использованием языка Markdown. Призрак идеально подходит для отдельных людей или небольших групп писателей.
В этом руководстве мы собираемся настроить и развернуть безопасный блог Ghost v0.11.x LTS на VOS CentOS 7.3 с использованием Let's Encrypt , Certbot , Node.js , NPM , NGINX и MySQL .
Проверьте версию CentOS:
cat /etc/centos-release
# CentOS Linux release 7.3.1611 (Core)
Создайте нового пользователя без полномочий root :
useradd -c "John Doe" johndoe && passwd johndoe
Сделайте его суперпользователем, добавив его в wheel
группу:
usermod -aG wheel johndoe
Переключиться на нового пользователя:
su - johndoe
Обновите программное обеспечение вашей операционной системы:
sudo yum check-update || sudo yum update -y
Установите часовой пояс:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Установите инструменты разработки:
sudo yum groupinstall -y 'Development Tools'
Установите текстовый редактор Vim:
sudo yum install -y vim
Перезагрузите систему, если требуется:
sudo shutdown -r now
ПРИМЕЧАНИЕ . Перед началом этого шага убедитесь, что вы установили записи DNS для своего домена.
Мы будем использовать Let's Encrypt CA и клиент EFF Certbot для получения сертификата SSL / TLS для нашего блога Ghost. Не забудьте заменить все экземпляры на blog.domain.tld
ваше доменное имя.
Включите репозиторий дополнительных пакетов для 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
Установите программу управления сертификатами Certbot (ранее - Let's Encrypt ), сделанную на Python:
sudo yum 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
каталоге.
ПРИМЕЧАНИЕ . В настоящее время Ghost поддерживает только версии Node.js 4.5+ и 6.9+.
Призрак построен на Node.js. Мы собираемся установить рекомендуемую версию для Ghost, которая была v6 Boron LTS
на момент написания этой статьи.
Загрузите и установите Node.js v6 LTS:
sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum 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 Yum:
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
Проверьте версию 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
скрипт, чтобы немного защитить свою базу данных:
ПРИМЕЧАНИЕ . Плагин для проверки пароля установлен и включен, поэтому новый пароль для
root
пользователя должен быть надежным ( одна заглавная буква, одна строчная буква, одна цифра и один специальный символ, а общая длина пароля должна быть не менее 8 символов). ). Если вы хотите ослабить это или полностью отключить плагин ( не рекомендуется ), обратитесь к официальной документации MySQL, чтобы узнать, как это сделать.
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:
# 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
Убедитесь, что он установлен, проверив версию 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/
Создайте нового пользователя-призрака:
sudo useradd -c 'Ghost application' 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
Настройка Призрачный путем изменения 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
},
// . . .
// . . .
ПРИМЕЧАНИЕ . Необходимо также настроить
Запустите 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 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=/bin/npm start --production
ExecStop=/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 - это блог-платформа с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с 201 года.
Используете другую систему? Ghost - это платформа для блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. я
Используете другую систему? Jekyll - хорошая альтернатива WordPress. Он не требует каких-либо баз данных и работает с языком, знакомым многим
Введение Чем ближе вы устанавливаете вашу 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. Прочтите эту статью, чтобы узнать больше