Как установить Ghost на Ubuntu 18.04

Ghost — это современная платформа для публикации исходного кода, построенная на платформе Node.js. Он полностью настраивается и прост в использовании, что позволяет публиковать контент практически без необходимости обучения.

В этом руководстве мы покажем вам, как развернуть безопасный блог Ghost на сервере Ubuntu 18.04, используя Nginx в качестве прокси, бесплатный SSL-сертификат Let's Encrypt, последнюю LTS-версию Node.js и MySQL / MariaDB в качестве базы данных. .

Подготовка

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

Прежде чем продолжить это руководство, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .

Установка Node.js и Yarn

На момент написания этой статьи рекомендуемой версией Node.js для Ghost была версия v8 carbon LTS. Мы установим Node.js из репозитория NodeSource.

Включите репозиторий NodeSource для Node.js v8, используя следующую команду curl :

curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -

Установите Node.js, набрав:

sudo apt install nodejs
Чтобы узнать о других методах установки, ознакомьтесь с нашим руководством по установке Node.js в Ubuntu 18.04 .

Чтобы установить 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

Как только репозиторий включен, установите yarn с помощью:

sudo apt updatesudo apt-get -o Dpkg::Options::="--force-overwrite" install yarn

Установка MySQL

Ghost поддерживает базы данных MySQL , MariaDB и SQLite. В этом руководстве мы будем использовать MySQL, которая является рекомендуемой базой данных при запуске Ghost в производственном режиме.

Установите пакет MySQL с помощью следующей команды:

sudo apt install mysql-server

Выполните команду mysql_secure_installation чтобы повысить безопасность установки MySQL:

sudo mysql_secure_installation

Вам будет предложено настроить VALIDATE PASSWORD PLUGIN который используется для проверки VALIDATE PASSWORD PLUGIN паролей пользователей MySQL. Существует три уровня политики проверки пароля: низкий, средний и надежный. Нажмите ENTER если вы не хотите устанавливать плагин проверки пароля.

В следующем запросе вам будет предложено установить пароль для пользователя root MySQL.

После того, как вы установите пароль root, сценарий также попросит вас удалить анонимного пользователя, ограничить доступ пользователя root к локальному компьютеру и удалить тестовую базу данных. Вы должны ответить Y (да) на все вопросы.

Затем нам нужно изменить метод аутентификации с auth_socket на mysql_native_password , чтобы установщик Ghost мог получить доступ к нашему серверу MySQL. Для этого войдите на сервер MySQL как пользователь root:

sudo mysql

и выполните следующий запрос, который установит пароль для пользователя root MySQL при использовании метода mysql_native_password :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_pasword';FLUSH PRIVILEGES;

Убедитесь, что вы изменили very_strong_pasword пароль.

Установка Ghost-CLI

Мы установим Ghost с помощью официальной утилиты Ghost CLI. Эта утилита позволяет вам установить или обновить Ghost с помощью одной команды.

Ghost CLI доступен в виде пакета npm. Следующая команда установит Ghost CLI в вашу систему Ubuntu глобально:

sudo yarn global add ghost-cli

Создание места установки Ghost

Мы загрузим и установим Ghost в каталог /var/www/ghost , который является рекомендуемым местом для установки.

Чтобы создать каталог типа:

sudo mkdir -p /var/www/ghost

Измените владельца каталога на своего пользователя:

sudo chown $USER:$USER /var/www/ghost

$USER — это переменная среды, в которой хранится ваше имя пользователя.

Установите правильные разрешения для каталога:

sudo chmod 775 /var/www/ghost

Установка Ghost

Теперь, когда у вас установлен Ghost CLI и выполнены все предварительные требования, мы можем начать установку.

Перейдите в каталог /var/www/ghost .

cd /var/www/ghost

Чтобы начать установку, запустите ghost install , которая установит и настроит Ghost, настроит Nginx как обратный прокси-сервер и защитит сайт с помощью бесплатного SSL-сертификата Let's encrypt.

ghost install
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
System checks failed with message: 'Linux version is not Ubuntu 16'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using `ghost install local` instead.
? Continue anyway? (y/N) y

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

ℹ Checking operating system compatibility [skipped]
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.24.9
✔ Finishing install process

Затем вам будет предложено указать URL-адрес вашего блога и информацию MySQL. Укажите имя пользователя и пароль root, которые мы установили в разделе « Installing MySQL », и используйте имя базы данных по умолчанию ghost_prod .

? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod

Программа установки создаст системного пользователя с именем ghost и спросит вас, хотите ли вы создать пользователя MySQL-призрака, введите Yes .

✔ Configuring Ghost
✔ Setting up instance
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? Yes
✔ Setting up "ghost" mysql user

Затем установщик спросит вас, хотите ли вы настроить Nginx. Подтвердите, набрав Yes .

? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/example.com.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com.conf /etc/nginx/sites-available/example.com.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Running sudo command: nginx -s reload
✔ Setting up Nginx

После настройки Nginx установщик спросит вас, хотите ли вы настроить SSL. Подтвердите, набрав Yes и мастер настройки попросит вас ввести адрес электронной почты, а затем сгенерирует бесплатный SSL-сертификат Let's Encrypt для вашего домена и настроит Nginx.

? Do you wish to set up SSL? Yes
? Enter your email (used for Let's Encrypt notifications) admin@example.com
Running sudo command: mkdir -p /etc/letsencrypt
Running sudo command: ./acme.sh --install --home /etc/letsencrypt
Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain example.com --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail admin@example.com
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
✔ Creating ssl config file at /var/www/ghost/system/files/example.com-ssl.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com-ssl.conf /etc/nginx/sites-available/example.com-ssl.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com-ssl.conf /etc/nginx/sites-enabled/example.com-ssl.conf
Running sudo command: nginx -s reload
✔ Setting up SSL

Затем установщик спросит вас, хотите ли вы настроить службу systemd. Введите Y чтобы принять, и установщик создаст новую службу systemd с именем ghost_example-com и позволит ей запускаться при загрузке:

? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_example-com.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_example-com.service /lib/systemd/system/ghost_example-com.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd

Наконец, установщик настроит базу данных и спросит, хотите ли вы запустить Ghost, введите Yes .

Running sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? Yes
Running sudo command: systemctl is-active ghost_example-com
✔ Ensuring user is not logged in as ghost user
✔ Checking if logged in user is directory owner
✔ Checking current folder permissions
Running sudo command: systemctl is-active ghost_example-com
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
Running sudo command: systemctl start ghost_example-com
✔ Starting Ghost
Running sudo command: systemctl is-enabled ghost_example-com
Running sudo command: systemctl enable ghost_example-com --quiet
✔ Starting Ghost
You can access your publication at https://example.com
Next, go to your admin interface at https://example.com/ghost/ to complete the setup of your publication

Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config

Завершите настройку Ghost

Откройте браузер, перейдите в административный интерфейс Ghost по адресу https://example.com/ghost/ и вы увидите следующий экран:

Чтобы начать, нажмите кнопку « Create your account .

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

После того, как вы заполните детали и нажмите кнопку Invite your team .

На этом экране вам будет предложено ввести адреса электронной почты ваших сотрудников. Вы можете просто нажать на " I'll do this later, take me to my blog! ссылка, и вы будете перенаправлены на панель управления Ghost:

Отсюда вы можете создавать новые сообщения, добавлять пользователей и изменять конфигурацию Ghosts.

Выводы

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

Теперь вам следует посетить страницу справки Ghost и узнать больше о том, как управлять установкой Ghost. Вы также можете посетить Ghost Marketplace и познакомиться с темами Ghost.

Оставьте комментарий