
Ghost — это современная платформа для публикации исходного кода, созданная на основе Node.js. Она полностью настраиваемая и простая в использовании, позволяя вам публиковать контент практически без необходимости обучения.
В этом руководстве мы покажем вам, как развернуть защищенный блог Ghost на сервере Ubuntu 18.04, используя Nginx в качестве прокси-сервера, бесплатный SSL-сертификат Let's Encrypt, последнюю версию LTS Node.js и MySQL/MariaDB в качестве бэкэнда базы данных.
Предпосылки
Для прохождения этого урока вам понадобятся следующие предварительные условия:
- Согласно официальным системным требованиям Ghost, вам потребуется не менее 1 ГБ оперативной памяти. Если у вас сервер с объёмом оперативной памяти менее 1 ГБ, вы можете создать файл подкачки .
- Доменное имя, указывающее на IP-адрес вашего публичного сервера. В этом руководстве мы будем использовать
example.com. - Nginx установлен следующим образом: Как установить Nginx в Ubuntu 18.04 .
- Настройте брандмауэр, следуя инструкциям в статье «Как настроить брандмауэр с UFW в Ubuntu 18.04» . Убедитесь, что порты
80и443открыты.
Прежде чем продолжить работу с этим руководством, убедитесь, что вы вошли в систему как пользователь с привилегиями 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 , который используется для проверки надёжности паролей пользователей 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.
Связанные руководства