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

如何在Ubuntu 15.10上使用Apache和SSL安装Ghost博客软件

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

Ghost是一款强大的开源出版和博客平台,设计精美,易于使用。 Ghost使用javascript编写,并使用node.js作为运行时环境。 Ghost于2013年被MIT许可证发布。

先决条件

  • Ubuntu 15.10
  • root权限

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

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

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

对于本教程,我们将使用node.js v0.12。 Node.js可以从source或nodesource.com存储库安装。 我们将使用node.js存储库https://deb.nodesource.com/node_0.12进行安装。

请通过执行以下命令来添加和更新存储库:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

接下来使用apt安装node.js:

sudo apt-get install -y nodejs

现在检查node.js版本:

node --version

v0.12.7

并检查npm版本:

npm --version

2.11.3

Npm是用于安装,发布和管理节点程序的node.js包管理器。

第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命令以root / sudo安装Ghost:

cd ghostblog/
npm install --production

第3步 - 配置Ghost

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

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

现在使用vim编辑器打开配置文件:

vim config.js

在服务器块( 第27行)中 ,将主机值更改为0.0.0.0

host = 0.0.0.0

允许从外部访问博客。 保存并退出。

然后添加新用户“ghost” 。 这个用户将被用来运行ghost:

sudo adduser --shell /bin/bash ghost
ENTER YOUR PASSWORD

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

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

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

su - ghost

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

cd /var/www/ghostblog
npm start --production

在我的情况下,访问端口2368上的服务器IP: 192.168.1.104 : 2368


为了使我们更容易启动ghost,我们将创建一个运行Ghost的系统服务。 请返回到sudo / root用户,并在目录“/ lib / systemd / system /”中创建一个名为“ghost.service”的新文件。

sudo cd /lib/systemd/system/
sudo 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守护进程:

sudo systemctl daemon-reload

将Ghost服务添加到启动时自动启动,并使用systemctl命令启动Ghost:

sudo systemctl enable ghost
sudo systemctl start ghost

第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>

保存并退出。

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

sudo a2enmod ssl headers
sudo systemctl restart apache2

测试

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

Ghost与apache和SSL现在已成功安装。

结论

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

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

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

支付宝扫一扫打赏

微信扫一扫打赏