如何安装Ghost博客软件与Apache和SSL在Ubuntu 16.04

Ghost是一款强大的开源出版和博客平台,设计精美,易于使用。 Ghost使用javascript编写,并使用node.js作为运行时环境。 第一个Ghost版本已于2013年在MIT许可下发布,并不断更新。 本教程将显示在Ubuntu 16.04上安装Ghost Blog软件,Node.js和Apache作为SSL代理服务器。

Nodejs是一个基于Chrome的V8 JavaScript引擎(v4)构建的开源JavaScript运行时,用于开发服务器端Web应用程序。 Nodejs是可以在OS X,Microsoft Windows,Linux和FreeBSD上运行的跨平台运行时。 它提供了一个事件驱动架构和非阻塞I / O模型,使其实时Web应用程序轻巧高效。 Node.js项目已于2009年由Ryan Dahl开始,截至今天已达到6.5.0(LTS)。

先决条件

  • Ubuntu 16.04
  • root权限

我们将在本教程中做什么:

  • 安装Node.js
  • 安装Ghost
  • 配置Ghost
  • 安装Apache并添加Ghost VirtualHost
  • 为Ghost启用SSL

第1步-在Ubuntu上安装Node.js

对于本教程,我们将使用nodejs v4.x. Nodejs可以以许多不同的方式安装,如从源安装或从Ubuntu存储库安装。 我将使用nodeecure的https://deb.nodesource.com/node_4.x的nodejs存储进行安装,它包含最新的软件和使用存储库,以便稍后更新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博客

我们将在目录“/ var / www /”中安装ghost,并使用最新版本的Ghost。 请在/ var中创建一个新的目录“www” ,并使用“cd”输入:

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

使用wget命令下载Ghost,然后将其解压缩到名为“ghostblog”的目录中

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

注意 :-d:自动创建目录。

然后转到ghostblog目录,并使用npm命令安装Ghost:

cd ghostblog/
sudo npm install --production

第3步 - 配置Ghost

请转到ghostblog目录,然后将配置示例文件复制到“config.js”

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

接下来,添加一个新用户“ghost” 。 该用户将被起诉运行Ghost:

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

注意:

-d =定义/ var / www /中ghost用户的主目录。

-s =定义ghost用户的shell。

现在将ghost安装目录的所有者更改为用户“ghost”

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

通过执行npm命令作为ghost用户来测试ghost博客。 请登录用户ghost:

su - ghost

并转到安装目录并启动Ghost:

cd ghostblog/
npm start --production

Ghost已安装并运行在localhost上,端口为2368.我们可以使用curl命令检查:

curl -I localhost:2368

你可以看到ghost正在运行 - HTTP / 1.1 200 OK

我们将运行ghost作为服务,使我们更容易启动鬼。 请通过键入“退出”返回到sudo / root用户,并在目录“/ lib / systemd / system /”中创建一个名为“ghost.service”的新文件。

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

然后在启动时添加ghost启动,并使用systemctl命令启动ghost:

systemctl enable ghost
systemctl start ghost

检查ghost正在运行,检查端口2368:

netstat -plntu

第4步 - 安装Apache和Ghost VirtualHost

使用apt-get命令安装apache:

sudo apt-get install apache2

安装完成后,在目录“/ etc / apache2 / sites-available /”中为ghost虚拟主机创建一个新文件。

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>

保存并退出。

使用命令a2enmod激活apache中的HTTP代理模块,如下所示:

sudo a2enmod proxy proxy_http

最后,我们必须激活Ghost虚拟主机,然后重新启动apache:

sudo a2ensite ghostblog
sudo systemctl restart apache2

重启鬼:

sudo systemctl restart ghost

访问域名测试: http : //ghostblog.me

第5步 - 为Ghost启用SSL

要在apache上启用SSL,请确保OpenSSL库已安装在系统上。 我们将在目录“/ etc / apache2 / certs”中生成新的密钥和crt文件。 首先,我们制作新的目录证书:

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 *

接下来,通过编辑“ghostblog.conf”文件将SSL配置添加到ghost virtualhost。

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。

激活OpenSSL apache模块并重新启动apache:

sudo a2enmod ssl headers
sudo systemctl restart apache2

测试

访问http://ghostblog.me ,您将被迫访问您博客的HTTPS / SSL站点。

Ghost与apache和SSL已成功安装。

结论

Nodejs是一个用于构建服务器端Web应用程序的开源多平台JavaScript运行时。 它对于实时Web应用程序是轻量级和高效的。 Ghost是一个用JavaScript.java编写的博客平台。 Ghost设计精美,用户友好。 直观的界面使这个博客系统易于使用。 Ghost可以独立安装,也可以像Apache或Nginx这样的Web服务器安装。 您可以使用OpenSSL保护Ghost。 使用Apache和OpenSSL配置Ghost很简单,您只需设置apache http_proxy模块并生成SSL证书。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏