Поиск по сайту:

Как развернуть Ghost Blog с Nginx в Ubuntu 18.04 LTS


Это руководство существует для этих версий ОС

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

На этой странице

  1. Требования
  2. Начальные шаги
  3. Шаг 1. Установите Node.js и npm
  4. Шаг 2. Установите сервер MariaDB.
  5. Шаг 3. Установите NGINX
  6. Шаг 4. Установите Yarn (необязательно)
  7. Шаг 5. Установка Ghost-CLI
  8. Шаг 6. Установите Ghost
  9. Шаг 7. Завершите настройку Ghost

Ghost – это платформа для ведения блогов с полностью открытым исходным кодом (лицензия MIT), которая с момента своего выпуска в 2013 году набирает популярность среди разработчиков и обычных пользователей. Исходный код Ghost общедоступен на GitHub. Обычно для нормальной работы Ghost требуется около 300 МБ ОЗУ, поэтому он может работать на скромном оборудовании. Основное внимание уделяется контенту и ведению блога. Самое привлекательное в Ghost — его простой, чистый, элегантный и отзывчивый дизайн. Вы можете писать сообщения в блоге с мобильного телефона. Контент для Ghost написан и отформатирован с использованием языка Markdown. Ghost идеально подходит для отдельных лиц или небольших групп писателей. Ghost также имеет встроенную поддержку проекта Accelerated Mobile Pages (AMP), что сделает загрузку вашего блога на мобильных телефонах молниеносной.


Недавно разработчики Ghost выпустили первый крупный стабильный выпуск Ghost — 1.0.0. В Ghost 1.0.0 представлено множество новых функций, наиболее заметными из которых являются: совершенно новый редактор Markdown, обновленный пользовательский интерфейс (UI), новый дизайн темы по умолчанию, новый и улучшенный процесс установки и обновления с помощью инструмента Ghost-CLI.


В этом руководстве мы собираемся настроить и развернуть безопасный блог Ghost с помощью инструмента Ghosts Ghost-CLI на сервере Ubuntu 18.04 LTS, используя Lets Encrypt, Acme.sh, Node.js, npm, Yarn, NGINX и MySQL/MariaDB.

Требования

  • Доменное имя. В этом руководстве будет использоваться домен example.com.
  • Сервер под управлением Ubuntu 18.04 LTS с 1 ГБ или ОЗУ.
  • Пользователь без полномочий root с привилегиями sudo.

Начальные шаги

Проверьте свою версию Ubuntu:

lsb_release -ds 
# Ubuntu 18.04 LTS

Настройте часовой пояс:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Обновите пакеты вашей операционной системы:

sudo apt update && sudo apt upgrade -y

Установите пакет build-essential:

sudo apt install -y build-essential

Шаг 1 — Установите Node.js и npm

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

Ghost построен на Node.js. Мы собираемся установить рекомендуемую версию для Ghost – v8 Carbon LTS  на момент написания этого руководства. В Linux у вас есть несколько вариантов установки: двоичные файлы Linux (x86/x64), исходный код или через менеджеры пакетов. Мы будем использовать метод диспетчера пакетов, используя репозиторий Nodesource.

Загрузите и установите последнюю версию (выпуск) Node.js с долгосрочной поддержкой (LTS):

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs

ПРИМЕЧАНИЕ. npm распространяется вместе с Node.js. Это означает, что при загрузке Node.js вы автоматически устанавливаете npm на свой компьютер.

Проверьте версию Node.js и npm:

node -v && npm -v
# v8.11.2
# 5.6.0

Npm — это отдельный от Node.js проект, который чаще обновляется. В результате, даже если вы только что загрузили Node.js (и, следовательно, npm), вам, вероятно, потребуется обновить файл npm. К счастью, npm умеет обновлять себя! Чтобы обновить npm, введите это в свой терминал:

sudo npm install -g 

Перепроверьте версию npm, это должна быть последняя версия:

npm -v
# 6.1.0

Шаг 2. Установите сервер MariaDB.

Ghost поддерживает базы данных MySQL/MariaDB и SQLite. Однако в этом руководстве мы будем использовать базу данных MariaDB. При желании вы можете использовать MySQL вместо MariaDB.

Загрузите и установите последнюю стабильную версию сервера MariaDB из репозитория MariaDB на свой компьютер:

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64] https://mirrors.nxthost.com/mariadb/repo/10.3/ubuntu bionic main'
sudo apt update
sudo apt install -y mariadb-server

В процессе установки MariaDB вам будет предложено ввести пароль пользователя root для MariaDB. Вы должны ввести надежный пароль.

Проверьте версию MariaDB:

mysql --version && sudo mysqld --version
# mysql  Ver 15.1 Distrib 10.3.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
# mysqld  Ver 10.3.7-MariaDB-1:10.3.7+maria~bionic-log for debian-linux-gnu on x86_64 (mariadb.org binary distribution)

Убедитесь, что демон MariaDB запущен и работает:

sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service

Запустите утилиту (скрипт) mysql_secure_installation, чтобы повысить безопасность установки MariaDB:

sudo mysql_secure_installation


# Enter current password for root (enter for none):

# Change the root password? [Y/n] N
# Remove anonymous users? [Y/n] Y
# Disallow root login remotely? [Y/n] Y
# Remove test database and access to it? [Y/n] Y
# Reload privilege tables now? [Y/n] Y
# Success.

# All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

# Thanks for using MariaDB!

Войдите (подключитесь) к командной строке MariaDB как пользователь MariaDB root :

mysql -u root -p

Создайте новую базу данных MariaDB и пользователя для установки Ghost. Этот шаг является необязательным, поскольку инструмент Ghost-CLI на более позднем этапе может создать для вас базу данных, вам просто нужно ввести учетные данные пользователя root MariaDB (имя пользователя и пароль) при запросе Ghost-CLI во время установки Ghost:

mysql> CREATE DATABASE dbname;
mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL ON dbname.* TO 'username'@'localhost';
mysql> FLUSH PRIVILEGES;

Выход (отключение) из MariaDB:

mysql> EXIT;

Шаг 3. Установите NGINX

NGINX (engine-x) – это высокопроизводительный веб-сервер, балансировщик нагрузки, кеш-сервер и прокси-сервер, который хорошо работает во всех средах: Bare Metal, общедоступном/частном/гибридном облаке и контейнерах. NGINX будет использоваться в качестве обратного прокси для нашего приложения Ghost.

NGINX можно установить по-разному, в зависимости от операционной системы. Для Linux можно использовать пакеты NGINX с nginx.org.

Загрузите и установите последний основной (рекомендуемый для большинства развертываний) выпуск 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 установлен, проверив его версию:

sudo nginx -v && sudo nginx -V
# nginx version: nginx/1.15.0
# nginx version: nginx/1.15.0

Запустите и включите NGINX:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Создайте /etc/nginx/snippets, /etc/nginx/ssl/etc/nginx/sites-available и /etc/nginx/sites-enabled каталоги. Эти каталоги необходимы для правильной работы инструмента Ghost-CLI:

sudo mkdir -p /etc/nginx/{snippets,ssl,sites-available,sites-enabled}

Добавьте директиву include /etc/nginx/sites-enabled/*.conf; в файл nginx.conf, запустите:

sudo vim /etc/nginx/nginx.conf

Сохраните файл и выйдите из редактора Vim.

Шаг 4. Установите Yarn (необязательно)

Загрузите и установите менеджер пакетов Yarn в своей системе:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install -y yarn

Проверить версию пряжи:

yarn --version
# 1.7.0

Шаг 5. Установка Ghost-CLI

Ghost-CLI – это инструмент с интерфейсом командной строки (CLI), который упрощает установку и обновление Ghost. Он настраивает базу данных, настраивает NGINX в качестве обратного прокси-сервера, включает безопасность TLS/SSL с помощью ЦС Let’s Encrypt, автоматически обновляет ваш SSL и инициализирует Ghost как системную службу. Ghost-CLI — это модуль npm, который можно установить с помощью npm или yarn.

Загрузите и установите инструмент Ghost-CLI:

sudo npm install -g 

Проверьте версию Ghost-CLI:

ghost version
# Ghost-CLI version: 1.8.1

Устраните в системе возможные проблемы при установке или обновлении Ghost:

ghost doctor install

Шаг 6. Установите Ghost

Далее мы установим Ghost с помощью инструмента Ghost-CLI.

Сначала создайте пустой корневой каталог документа:

sudo mkdir -p /var/www/example.com

Измените владельца каталога /var/www/example.com на пользователя без полномочий root с правами sudo , созданными вами. В этом примере johndoe:

sudo chown johndoe:johndoe /var/www/example.com

Ваша папка установки должна иметь правильные разрешения:

sudo chmod 755 /var/www/example.com

Перейдите в корневой каталог Ghost:

cd /var/www/example.com

Убедитесь, что каталог пуст, чтобы избежать конфликтов файлов:

ls -a

Установите Ghost в рабочем режиме, выполнив:

ghost install

Ответьте на каждый вопрос, как будет предложено:

? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: your_mysql_root_user_password_here
? Enter your Ghost database name: database_name_for_ghost
? Do you wish to set up "ghost" mysql user? yes ? Do you wish to set up Nginx? yes ? Do you wish to set up SSL? yes ? Enter your email (used for Let's Encrypt notifications) ? Do you wish to set up Systemd? yes ? Do you want to start Ghost? yes

После завершения установки запустите

ghost ls

для просмотра запущенных процессов Ghost.

В будущем, чтобы обновить свой блог Ghost, когда будет выпущена новая версия, вам просто нужно запустить

ghost update

из каталога установки Ghost, и Ghost-CLI позаботится обо всем за вас.

Шаг 7. Завершите настройку Ghost

Чтобы завершить процесс настройки, перейдите на страницу конфигурации Ghost, добавив /ghost в конец URL-адреса или IP-адреса вашего блога. В этом примере используется https://example.com/ghost.

На экране приветствия нажмите Создать аккаунт:

Введите адрес электронной почты, создайте пользователя, пароль и название блога:

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

Перейдите в область администрирования Ghost, чтобы создать свой первый пост, изменить тему своего сайта или настроить дополнительные параметры:

Поздравляем! Вы успешно установили и развернули платформу для ведения блогов Ghost на сервере Ubuntu 18.04 LTS.