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证书。