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

Как установить программное обеспечение Ghost Blog с Apache и SSL на Ubuntu 16.04


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

  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 15.10 (Wily Werewolf)

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

  1. Предпосылки
  2. Шаг 1. Установите Node.js в Ubuntu
  3. Шаг 2. Установите Ghost Blog
  4. Шаг 3. Настройка Ghost
  5. Шаг 4. Установите Apache и Ghost VirtualHost
  6. Шаг 5. Включите SSL для Ghost
  7. Тестирование
  8. Заключение

Ghost — это мощная платформа для публикаций и блогов с открытым исходным кодом, красиво оформленная и простая в использовании. Ghost написан на JavaScript и использует node.js в качестве среды выполнения. Первая версия Ghost была выпущена в 2013 году по лицензии MIT и постоянно обновляется. В этом руководстве показана установка ПО Ghost Blog, Node.js и Apache в качестве прокси-сервера SSL в Ubuntu 16.04.

Nodejs – это среда выполнения JavaScript с открытым исходным кодом, созданная на базе JavaScript-движка Chromes V8 (v4) для разработки серверных веб-приложений. Nodejs — это кроссплатформенная среда выполнения, которая может работать в OS X, Microsoft Windows, Linux и FreeBSD. Он обеспечивает управляемую событиями архитектуру и неблокирующую модель ввода-вывода, что делает его легким и эффективным для веб-приложений в реальном времени. Проект Node.js был запущен в 2009 году Райаном Далом и на сегодняшний день достиг версии 6.5.0 (LTS).

Предпосылки

  • Убунту 16.04
  • привилегии root

Что мы будем делать в этом уроке:

  • Установите Node.js
  • Установить призрак
  • Настроить призрак
  • Установите Apache и добавьте Ghost VirtualHost.
  • Включить SSL для Ghost

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

В этом уроке мы будем использовать nodejs v4.x. Nodejs можно установить разными способами, например, из исходного кода или из репозитория Ubuntu. Я буду использовать репозиторий nodejs nodesecure https://deb.nodesource.com/node_4.x для установки, он содержит новейшее программное обеспечение и использование репозитория позволяет легко обновлять node.js потом.

Установите ключ репозитория nodesource с помощью следующей команды:

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

Затем добавьте репозиторий nodejs, выполнив следующие команды:

sudo echo 'deb https://deb.nodesource.com/node_4.x xenial main' > /etc/apt/sources.list.d/nodesource.list
sudo echo 'deb-src https://deb.nodesource.com/node_4.x xenial main' >> /etc/apt/sources.list.d/nodesource.list

Обновите репозиторий:

sudo apt-get update

Теперь мы можем установить пакет «nodejs», который установит node.js и его зависимости на сервер:

sudo apt-get install -y nodejs

Теперь проверьте версию nodejs, чтобы убедиться, что установка прошла успешно:

node --version

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

npm --version

npm — это менеджер пакетов для установки, публикации и управления программами узла.

Шаг 2 — Установите Ghost Blog

Мы установим Ghost в каталог \/var/www/\ и будем использовать последнюю версию Ghost. Пожалуйста, создайте новый каталог \www\ в /var и введите его с помощью \cd\:

mkdir -p /var/www/
cd /var/www/

Загрузите Ghost с помощью команды wget, а затем извлеките его в каталог с именем «ghostblog»:

wget https://ghost.org/zip/ghost-latest.zip
unzip -d ghostblog ghost-latest.zip

ПРИМЕЧАНИЕ. -d: автоматически создает каталог.

Затем перейдите в каталог ghostblog и установите Ghost с помощью команды npm:

cd ghostblog/
sudo npm install --production

Шаг 3. Настройка призрака

Перейдите в каталог ghostblog, а затем скопируйте файл примера конфигурации в \config.js\

cd /var/www/ghostblog/
cp config.example.js config.js

Далее добавляем нового пользователя \призрак\. На этого пользователя подадут в суд за запуск Ghost :

useradd -d /var/www -s /bin/bash ghost
passwd ghost
TYPE NEW PASSWORD FOR ghost USER

Примечание:

-d=Определяет домашний каталог для пользователя-призрака в /var/www/.

-s=определяет оболочку для пользователя-призрака.

Теперь измените владельца каталога установки призрака на пользователя \призрак\.

chown -R ghost:ghost /var/www/ghostblog

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

su - ghost

и перейдите в каталог установки и запустите Ghost:

cd ghostblog/
npm start --production

Ghost установлен и работает на локальном хосте с портом 2368. Мы можем проверить это с помощью команды curl:

curl -I localhost:2368

Вы можете видеть, что призрак запущен — HTTP/1.1 200 OK.

Мы будем запускать призрак как сервис, чтобы нам было проще запустить призрак. Вернитесь к пользователю sudo/root, введя \exit\ и создайте новый файл с именем \ghost.service\ в каталоге \/lib/systemd/system/\.

cd /lib/systemd/system/
vim ghost.service

Вставьте скрипт systemd ниже:

[Unit]
Description=ghost
After=network.target

[Service]
Type=simple
# Ghost installation Directory
WorkingDirectory=/var/www/ghostblog
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

Затем перезагрузите демон systemd:

systemctl daemon-reload

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

systemctl enable ghost
systemctl start ghost

Убедитесь, что Ghost запущен, проверив порт 2368:

netstat -plntu

Шаг 4 — Установите Apache и Ghost VirtualHost

Установите apache с помощью команды apt-get:

sudo apt-get install apache2

После завершения установки создайте новый файл для виртуального хоста-призрака в каталоге \/etc/apache2/sites-available/\.

sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf

Вставьте конфигурацию ниже:

<VirtualHost *:80>
    #Domain Name
    ServerName ghostblog.me
    ServerAlias www.ghostblog.me

    #HTTP proxy/gateway server
    ProxyRequests off 
    ProxyPass / http://127.0.0.1:2368/ 
    ProxyPassReverse / http:/127.0.0.1:2368/     
</VirtualHost>

Сохранить и выйти.

Активируйте модуль прокси-сервера HTTP в apache с помощью команды a2enmod, как показано ниже:

sudo a2enmod proxy proxy_http

Наконец, нам нужно активировать виртуальный хост Ghost, а затем перезапустить apache:

sudo a2ensite ghostblog
sudo systemctl restart apache2

Перезапустите призрак:

sudo systemctl restart ghost

Протестируйте, посетив домен: http://ghostblog.me.

Шаг 5. Включите SSL для Ghost

Чтобы включить SSL в Apache, убедитесь, что в системе установлена библиотека OpenSSL. Мы создадим новый ключ и файл crt в каталоге \/etc/apache2/certs\. Во-первых, мы создаем новые сертификаты каталогов:

sudo mkdir -p /etc/apache2/certs

И сгенерируйте ключ сертификата с помощью команды ниже:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/certs/ghostblog.key -out /etc/apache2/certs/ghostblog.crt

Пожалуйста, измените разрешение файла сертификата:

sudo cd /etc/apache2/certs/
sudo chmod 600 *

Затем добавьте конфигурацию SSL для виртуального хоста-призрака, отредактировав файл \ghostblog.conf\.

sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf

Вставьте новый скрипт конфигурации ниже:

<VirtualHost *:80>
    ServerName ghostblog.me
    ServerAlias www.ghostblog.me

    # Force http to https
    Redirect permanent / https://ghostblog.me/
#    ProxyRequests off 
#    ProxyPass / http://127.0.0.1:2368/ 
#    ProxyPassReverse / http:/127.0.0.1:2368/     
</VirtualHost>

<VirtualHost *:443>

   ServerName ghostblog.me

   SSLEngine on
   SSLCertificateFile /etc/apache2/certs/ghostblog.crt
   SSLCertificateKeyFile /etc/apache2/certs/ghostblog.key

   ProxyPass / http://127.0.0.1:2368/
   ProxyPassReverse / http:/127.0.0.1:2368/
   ProxyPreserveHost   On

   RequestHeader set X-Forwarded-Proto "https"

</VirtualHost>

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

Активируйте модуль apache OpenSSL и перезапустите apache:

sudo a2enmod ssl headers
sudo systemctl restart apache2

Тестирование

Посетите http://ghostblog.me, и вы будете вынуждены перейти на HTTPS/SSL-сайт своего блога.

Ghost с apache и SSL успешно установлен.

Заключение

Nodejs — это многоплатформенная среда выполнения javascript с открытым исходным кодом для создания серверных веб-приложений. Он легкий и эффективный для веб-приложений в реальном времени. Ghost — это платформа для ведения блогов, написанная на Javascript для Node.js. Ghost красиво оформлен и удобен для пользователя. Интуитивно понятный интерфейс упрощает использование этой системы блогов. Ghost можно установить отдельно или с веб-сервером, таким как Apache или Nginx. Вы можете защитить Ghost с помощью OpenSSL. Настроить Ghost с помощью Apache и OpenSSL очень просто, вам просто нужно настроить модуль apache http_proxy и сгенерировать SSL-сертификат.