Как развернуть Ghost v0.11 LTS на Fedora 25

Ghost - это платформа для ведения блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. Это делает акцент на контент и блоги. Самое привлекательное в Ghost - это простой, чистый и отзывчивый дизайн. Вы можете написать свои сообщения в блоге с мобильного телефона. Контент для Ghost написан с использованием языка Markdown. Призрак идеально подходит для отдельных людей или небольших групп писателей.

В этом руководстве мы собираемся настроить и развернуть безопасный блог Ghost v0.11.x LTS на VPS Fedora 25, используя Let's Encrypt , Certbot , Node.js , NPM , NGINX и MySQL .

Требования

  • Зарегистрируйте (купите) доменное имя.
  • Экземпляр сервера Fedora 25 с минимум 1 ГБ ОЗУ .
  • Пользователь Sudo.
  • Возможно, вам придется открыть порт 2368 с semanage port -a -t http_port_t -p tcp 2368.

Прежде чем вы начнете

  1. Проверьте версию Fedora:

    cat /etc/fedora-release
    # Fedora release 25 (Twenty Five)
    
  2. Создайте нового пользователя без полномочий root :

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. Сделайте его суперпользователем, добавив его в wheelгруппу:

    usermod -aG wheel johndoe
    
  4. Переключиться на нового пользователя:

    su - johndoe
    
  5. Обновите программное обеспечение вашей операционной системы:

    sudo dnf check-update || sudo dnf upgrade -y
    
  6. Установите часовой пояс:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. Установите инструменты разработки:

    sudo dnf install @development-tools -y
    
  8. Установите текстовый редактор Vim и Wget:

    sudo dnf install -y vim wget
    
  9. Перезагрузите систему, если требуется:

    sudo shutdown -r now
    

Установить Certbot

ПРИМЕЧАНИЕ . Перед началом этого шага убедитесь, что вы установили записи DNS для своего домена.

Мы будем использовать Let's Encrypt CA и клиент EFF Certbot для получения сертификата SSL / TLS для нашего блога Ghost. Не забудьте заменить все экземпляры на blog.domain.tldваше доменное имя.

  1. Установите программу управления сертификатами Certbot (ранее - Let's Encrypt ), сделанную на Python:

    sudo dnf install -y certbot
    
  2. Проверьте версию Certbot:

    certbot --version
    # certbot 0.14.1
    
  3. Получить сертификат 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каталоге.

Установите Node.js и NPM

ПРИМЕЧАНИЕ . В настоящее время Ghost поддерживает только версии Node.js 4.5+ и 6.9+.

Призрак построен на Node.js. Мы собираемся установить рекомендуемую версию для Ghost, которая была v6 Boron LTSна момент написания этой статьи.

  1. Загрузите и установите Node.js v6 LTS:

    curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    sudo dnf install -y nodejs
    
  2. Проверьте Node.js и версию NPM:

    node -v && npm -v
    # v6.11.2
    # 3.10.10
    

Установите MySQL

По умолчанию Ghost настроен на использование базы данных SQLite, которая не требует настройки.

В качестве альтернативы Ghost также можно использовать с базой данных MySQL, изменив конфигурацию базы данных. Сначала вы должны создать базу данных и пользователя, затем вы можете изменить существующую конфигурацию sqlite3.

  1. Загрузите и установите последнюю версию 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
    
  2. Проверьте версию MySQL:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. Запустите MySQL Server и проверьте его статус:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL версии 5.7 или выше генерирует временный случайный пароль для rootпользователя MySQL после установки, и пароль сохраняется в файле журнала ошибок MySQL, расположенном по адресу /var/log/mysqld.log. Чтобы выявить это, используйте следующую команду:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. Запустите mysql_secure_installationскрипт, чтобы немного защитить свою базу данных:

    ПРИМЕЧАНИЕ . Плагин для проверки пароля установлен и включен, поэтому новый пароль для rootпользователя должен быть надежным ( одна заглавная буква, одна строчная буква, одна цифра и один специальный символ, а общая длина пароля должна быть не менее 8 символов). ). Если вы хотите ослабить это или полностью отключить плагин ( не рекомендуется ), обратитесь к официальной документации MySQL, чтобы узнать, как это сделать.

    sudo mysql_secure_installation
    
  6. Войдите в MySQL как пользователь root:

    mysql -u root -p
    # Enter password:
    
  7. Создайте новую базу данных MySQL и пользователя:

    create database dbname;
    grant all on dbname.* to 'user' identified by 'password';
    
  8. Выход из MySQL:

    exit
    

Установить NGINX

  1. Загрузите и установите NGINX:

    sudo dnf install -y nginx
    
  2. Убедитесь, что он установлен, проверив версию NGINX:

    sudo nginx -v
    # nginx version: nginx/1.10.2
    
  3. Проверьте состояние, включите и запустите службу NGINX (демон):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Создайте /etc/nginx/sslкаталог и сгенерируйте новые параметры Диффи-Хеллмана ( DH ):

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Создайте каталог журналов для blog.domain.tldвиртуального хоста:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Настройте NGINX как обратный прокси-сервер HTTP ( S ):

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Вставьте следующее в /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 "";
        }
    }
    
  8. Сохраните и проверьте конфигурацию NGINX на наличие синтаксических ошибок:

    sudo nginx -t
    
  9. Перезагрузите конфигурацию NGINX:

    sudo systemctl reload nginx.service
    

Установить призрак

ПРИМЕЧАНИЕ . Если вы хотите разместить несколько блогов Ghost на одном VPS, каждый экземпляр Ghost должен работать на отдельном порту.

  1. Создать корневой каталог документов:

    sudo mkdir -p /var/www/
    
  2. Создайте нового пользователя-призрака:

    sudo useradd -c 'Ghost application' ghost
    
  3. Скачать Ghost:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
    
  4. Разархивируйте Ghost в /var/www/ghostкаталог (рекомендуемое место установки):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Перейдите в новый каталог Ghost:

    cd /var/www/ghost
    
  6. Изменить владельца /var/www/ghostкаталога:

    sudo chown -R ghost:ghost .
    
  7. Переключиться на нового ghostпользователя:

    sudo su - ghost
    
  8. Перейдите к корню документа /var/www/ghost:

    cd /var/www/ghost
    
  9. Установите Ghost только с производственными зависимостями. Когда это завершится, Ghost будет установлен:

    npm install --production
    
  10. Настройка Призрачный путем изменения 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
        },
        // . . .
        // . . .
    

    ПРИМЕЧАНИЕ . Необходимо также настроить mailпараметры. Обратитесь к официальной документации Ghost о том, как это сделать.

  11. Запустите Ghost в производственной среде:

    npm start --production
    

    Призрак теперь будет работать. Интерфейс блога и интерфейс администратора защищены HTTPS, также работает HTTP / 2. Вы можете открыть свой браузер и посетить сайт по адресу https://blog.domain.tld. Не забудьте заменить blog.domain.tldна ваше доменное имя.

  12. Завершите процесс Ghost, нажав CTRL+, Cи выйдите из пользователя-призрака обратно к пользователю без полномочий root, который вы создали в начале:

    exit
    

Запуск Ghost в качестве системного сервиса

Если вы закроете сеанс терминала с вашим VPS, ваш блог также будет закрыт. Это не хорошо. Чтобы избежать этого, мы будем использовать systemd. Это будет держать наш блог вверх 24/7.

  1. Создать 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=/usr/bin/npm start --production
    ExecStop=/usr/bin/npm stop --production
    Restart=always
    SyslogIdentifier=Ghost
    
    [Install]
    WantedBy=multi-user.target
    
  2. Включить и запустить ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Проверьте ghost.serviceстатус:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Найдите https://blog.domain.tld/ghost/и создайте пользователя-администратора Ghost. Сделайте это как можно скорее!

Вывод

Вот и все. Теперь у нас есть полностью функциональный блог Ghost. Ваш сервер доставляет контент через HTTP / 2, когда поддерживается клиентом. Если вы хотите изменить тему Ghost по умолчанию, называемую Casper, на собственную, вы можете просто скачать и разархивировать тему в /var/www/ghost/content/themesпапку и выбрать ее через интерфейс администратора Ghost, расположенный по адресу https://blog.domain.tld/ghost.



Leave a Comment

Установите WordPress на OpenBSD 6.2

Установите WordPress на OpenBSD 6.2

Введение WordPress является доминирующей системой управления контентом в Интернете. Он поддерживает все, от блогов до сложных сайтов с динамическим контентом

Как установить MODX Revolution на FreeBSD 11 FAMP VPS

Как установить MODX Revolution на FreeBSD 11 FAMP VPS

Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая система управления контентом (CMS) корпоративного уровня с открытым исходным кодом, написанная на PHP. Это я

Как установить MODX Revolution на Debian 9 LAMP VPS

Как установить MODX Revolution на Debian 9 LAMP VPS

Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i

Как развернуть Ghost на Debian 8.7

Как развернуть Ghost на Debian 8.7

Используете другую систему? Ghost - это платформа для блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. я

Как установить Dotclear на Debian 9 (Stretch)

Как установить Dotclear на Debian 9 (Stretch)

Используете другую систему? Dotclear - очень простой движок для блогов. Это с открытым исходным кодом и прост в использовании. Этот учебник будет проходить установку на

Установка Fork CMS на CentOS 7

Установка Fork CMS на CentOS 7

Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM

Как установить Typesetter CMS на CentOS 7

Как установить Typesetter CMS на CentOS 7

Typesetter - это CMS с открытым исходным кодом, написанная на PHP, ориентированная на простоту использования с редактированием True WYSIWYG и хранением плоских файлов. В этой статье мы будем устанавливать

Настройка Ghost Professional Publishing Platform на OpenBSD 6

Настройка Ghost Professional Publishing Platform на OpenBSD 6

Ghost - новейшая и самая лучшая выскочка для конкурента WordPress. Разработка тем быстро и легко изучается, потому что разработчики Ghost решили использовать оба

Как установить MODX Revolution на CentOS 7 LAMP VPS

Как установить MODX Revolution на CentOS 7 LAMP VPS

Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i

Установка Fork CMS на Debian 9

Установка Fork CMS на Debian 9

Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM

Как развернуть Ghost v0.11 LTS в Ubuntu 16.04

Как развернуть Ghost v0.11 LTS в Ubuntu 16.04

Используете другую систему? Ghost - это блог-платформа с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с 201 года.

Как развернуть Ghost на Ubuntu 16.04

Как развернуть Ghost на Ubuntu 16.04

Используете другую систему? Ghost - это платформа для блогов с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с момента ее выпуска в 2013 году. я

Создание блога Jekyll на CentOS 7

Создание блога Jekyll на CentOS 7

Используете другую систему? Jekyll - хорошая альтернатива WordPress. Он не требует каких-либо баз данных и работает с языком, знакомым многим

Как развернуть Ghost v0.11 LTS на CentOS 7.3

Как развернуть Ghost v0.11 LTS на CentOS 7.3

Используете другую систему? Ghost - это блог-платформа с открытым исходным кодом, которая завоевывает популярность среди разработчиков и обычных пользователей с 201 года.

Запуск WordPress на OpenBSD 6.5 с использованием OpenBSDs HTTPD

Запуск WordPress на OpenBSD 6.5 с использованием OpenBSDs HTTPD

Введение Чем ближе вы устанавливаете вашу OpenBSD к установке по умолчанию и без того, чтобы было добавлено столько пакетов, тем безопаснее она будет. Пока более комм

Как установить MODX Revolution на Fedora 26 LAMP VPS

Как установить MODX Revolution на Fedora 26 LAMP VPS

Используете другую систему? MODX Revolution - это быстрая, гибкая, масштабируемая, бесплатная и с открытым исходным кодом корпоративная система управления контентом (CMS), написанная i

Установка Fork CMS на Fedora 28

Установка Fork CMS на Fedora 28

Используете другую систему? Fork - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Forks размещен на GitHub. Это руководство покажет вам, как установить Fork CM

Как установить Dotclear на Ubuntu 16.04

Как установить Dotclear на Ubuntu 16.04

Используете другую систему? Dotclear - это очень простой движок для блогов, который построен на основе PHP. В этом уроке мы установим Dotclear на Ubunt

Как развернуть несколько сайтов Wordpress с использованием VirtualMin и Ansible в Ubuntu 16.04

Как развернуть несколько сайтов Wordpress с использованием VirtualMin и Ansible в Ubuntu 16.04

Обычно виртуальный сервер Vultr используется для размещения веб-сайтов Wordpress. В этом руководстве показано, как автоматизировать настройку виртуального сервера с нуля.

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше