介绍
Ghost是一个轻量级(〜7.5MB),开源的博客平台,这是真的很容易使用。 Ghost完全可定制。 在互联网上有很多主题可供Ghost使用,免费和付费。
在本教程中,我们将通过步骤获取Ghost设置并在Ubuntu 14.04系统上运行。 我们也将安装Nginx的代理端口,并安装forever
,节点包,以保持Ghost在后台运行。
先决条件
服务器没有运行Ghost的最小大小要求。 考虑在决定要创建的Droplet大小时,您的博客将获得多少访问者以及您计划共享多少内容。 本教程是在运行Ubuntu 14.04的最小尺寸的DigitalOcean Droplet上测试的。
开始之前,您需要以下内容:
- Ubuntu 14.04 Droplet
- 注册的域名指向您的Droplet的IP地址
- 具有sudo权限的非root用户
本教程将帮助您设置您的域名指向你的Droplet。
本教程中的所有命令都应以非root用户身份运行。 如果需要该命令的root访问权限,它会在前面加sudo
。 与Ubuntu 14.04初始服务器设置介绍了如何添加用户,并给他们sudo访问。
第1步 - 安装Node.js和Npm
您需要更新您的本地包指数和安装zip
和wget
包。 我们将在本教程后面使用它们。
sudo apt-get update
sudo aptitude install zip wget
Ghost需要Node.js v0.10.x(最新稳定版)。 节点的不稳定版本,像v0.12.x, 不被支持。 Node.js v0.10.36和npm v2.5.0是由Ghost.org推荐的。
从PPA的方法安装Node.js的本教程 。
一旦安装了Node.js,通过运行以下命令来检查安装的版本:
node -v
输出应类似于:
v0.10.38
检查npm
安装:
npm -v
如果安装了npm,它应该输出安装的版本:
1.4.28
如果输出的错误没有安装npm,请使用以下命令安装:
sudo apt-get install npm
更新npm
通过运行以下命令2.5.0版本:
sudo npm install npm@2.5.0 -g
检查的版本npm
安装:
npm -v
输出应为:
2.5.0
第2步 - 安装Ghost
接下来我们需要安装Ghost。 Ghost.org建议安装在Ghostvar/www/ghost
,所以这就是我们将安装它。
首先,我们将创建一个目录/var/www/
然后从Ghost的GitHub的库下载最新版本的Ghost:
sudo mkdir -p /var/www/
cd /var/www/
sudo wget https://ghost.org/zip/ghost-latest.zip
现在我们已经获得了最新版本的Ghost,我们必须解压缩它。 我们也将改变我们的目录/var/www/ghost/
:
sudo unzip -d ghost ghost-latest.zip
cd ghost/
现在我们可以安装Ghost依赖项和节点模块(仅限生产依赖项):
sudo npm install --production
完成后安装Ghost。 我们需要设置Ghost,我们才能启动它。
第3步 - 设置Ghost
Ghost的配置文件应位于/var/www/ghost/config.js
。 但是,没有这样的文件与Ghost安装。 相反,安装包括config.example.js
。
将示例配置文件复制到正确的位置。 请确保复制而不是移动,以便您拥有原始配置文件的副本,以便在需要还原更改时使用。
sudo cp config.example.js config.js
您的网址和邮件设置,这是在production
部分,都是需要修改信息的关键领域。 URL是必需的。 否则,链接将带你到默认http://my-ghost-blog.com
页面。 Ghost可以在没有邮件设置的情况下运行,但是建议您添加它们。 在撰写本文时,Ghost只需要邮件正常工作,以防用户忘记其帐户密码,因此不会对配置邮件造成太大的损害。
打开文件进行编辑:
sudo nano config.js
你必须改变价值url
到任何您的域名是(或者你可以的情况下,使用您的服务器的IP地址,你不希望立即使用域)。 此值必须采用URL的形式。 例如, http://example.com/或http://45.55.76.126/ 。 如果此值格式不正确,Ghost将无法启动。
同时改变的值host
的server
部分0.0.0.0
。
以下显示需要更改为红色的值:
var path = require('path'),
config;
config = {
// ### Production
// When running Ghost in the wild, use the production environment
// Configure your URL and mail settings here
production: {
url: 'http://my-ghost-blog.com',
mail: {
// Your mail settings
},
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost.db')
},
debug: false
},
server: {
// Host to be passed to node's `net.Server#listen()`
host: '127.0.0.1',
// Port to be passed to node's `net.Server#listen()`, for iisnode s$
port: '2368'
}
},
(...)
保存文件,然后按退出纳米文本编辑器CTRL+X
然后Y
最后ENTER
。
同时还在/var/www/ghost
目录,用下面的命令启动Ghost:
sudo npm start --production
输出应类似于:
> ghost@0.6.4 start /var/www/ghost
> node index
Migrations: Database initialisation required for version 003
Migrations: Creating tables...
Migrations: Creating table: posts
[...]
如果一切顺利,你应该能够使用端口2368来访问你的博客: http://your_domain._name :2368
(或http://your_servers_ip:2368
)。
按CTRL+C
在终端关机Ghost实例。
注:Ghost可以进一步定制Ghost.org详细解释了每个配置选项。
第4步 - 安装Nginx
下一步是安装Nginx。 基本上,它将允许端口80上的连接连接到运行Ghost的端口。 在简单的话,你就可以访问你的博客Ghost不加:2368
。
使用以下命令安装它:
sudo apt-get install nginx
接下来,我们将不得不改变我们的目录来进行配置的Nginx /etc/nginx
和删除默认文件/etc/nginx/sites-enabled
:
cd /etc/nginx/
sudo rm sites-enabled/default
我们将创建一个新的文件/etc/nginx/sites-available/
称为ghost
,并打开它nano
对其进行编辑:
sudo touch /etc/nginx/sites-available/ghost
sudo nano /etc/nginx/sites-available/ghost
在文件中粘贴以下代码并以红色突出显示的代码更改为您的域名,或者您的服务器的IP地址,如果你不希望现在添加域:
server {
listen 80;
server_name your_domain.tld;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
现在,我们将符号链接我们的配置sites-enabled
:
sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost
我们将重新启动Nginx:
sudo service nginx restart
接下来,我们将创建一个新用户。 该用户将被授予唯一的特权做的东西在目录/var/www/ghost
。 这是一种安全措施。 如果Ghost被破坏,你的系统将是安全的。 这可以通过运行以下命令来完成:
sudo adduser --shell /bin/bash --gecos 'Ghost application' ghost
我们将授予权限:
sudo chown -R ghost:ghost /var/www/ghost/
现在,您可以登录为ghost
的用户:
su - ghost
现在我们需要启动Ghost:
cd /var/www/ghost
npm start --production
您应该可以通过端口80访问您的博客,网址为http:// <your_server_ip> /或http:// <your_domain_name> /。
第5步-保持Ghost与运行forever
下一步骤是使Ghost的运行在后台执行。 forever
是一个节点的模块可用于在后台启动Ghost和监视,以确保它保持向上。 如果Ghost崩溃,永远会自动启动另一个Ghost实例。
安装forever
从你的Ghost目录中的以下命令,即/var/www/ghost
。 但在运行命令注销之前ghost
用户,并登录到你的非root用户:
exit
sudo npm install -g forever
启动Ghost的ghost
用户。 它也必须从Ghost目录运行:
su - ghost
cd /var/www/ghost
forever start index.js
输出应类似于:
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: index.js
默认情况下,它在开发环境中加载。 这可以通过运行以下命令来更改:
NODE_ENV=production forever start index.js
forever
可以从Ghost目录中运行这个被停止:
forever stop index.js
可能的错误
对于以下错误消息:
Error: SQLITE_READONLY: attempt to write a readonly database
开始forever
作为root
用户(类型exit
注销当前用户):
sudo forever start index.js
如果最后一个命令说它找不到“永远”,请使用命令的完整路径:
sudo /usr/local/bin/forever start index.js
如果您看到以下错误:
error: Cannot start forever
error: script /home/ghost/index.js does not exist.
你是不是在/var/www/ghost
目录。 切换到此目录并再次执行命令。
结论
恭喜! 你已经安装了Ghost,并学习了如何用Nginx代理端口。 您还学会了如何保持与正在运行的任务forever
节点程序包。
有很多你可以做的Ghost。 例如,受密码保护的博客是最新的功能之一。
查看其他DigitalOcean上的Ghost教程:
也请访问以下内容了解更多: