Как установить программное обеспечение Ghost Blog с Apache и SSL на Ubuntu 16.04
Это руководство существует для этих версий ОС
- Ubuntu 16.04 (Xenial Xerus)
- Ubuntu 15.10 (Wily Werewolf)
На этой странице
- Предпосылки
- Шаг 1. Установите Node.js в Ubuntu
- Шаг 2. Установите Ghost Blog
- Шаг 3. Настройка Ghost
- Шаг 4. Установите Apache и Ghost VirtualHost
- Шаг 5. Включите SSL для Ghost
- Тестирование
- Заключение
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-сертификат.