Ubuntu 14.04 安装Node.js 和 Ghost的步骤

作者:袖梨 2022-06-30

这里我们介绍下在 Ubuntu 14.04 LTS 安装 Node.js 和 Ghost 的方法。

一、安装 Node.js

为了保持最新版本,我们采用 PPA 形式,可以直接用这个脚本导入 PPA:

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

导入完毕以后,直接安装 Node.js

sudo apt-get install nodejs

这个 Node.js 的包已经包含了 npm 所以你不用单独安装 npm,而有些 Node.js 程序还得单独安装 build-essentials 包,你也可以安装一下:

sudo apt-get install build-essential

安装完毕以后查看一下 Node.js 和 npm 的版本

root@example:~# node -v
v0.10.33
root@example:~# npm -v
1.4.28
Ghost 需要运行在 0.10.* 的 Node.js 版本,请注意。

二、下载 Ghost 程序

基于安全考虑,可以新建立个 ghost 用户,这里我们安装在 /var/www/ 目录下

useradd ghost
mkdir /var/www
cd /var/www
curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
unzip ghost.zip
chown -R ghost:ghost /var/www
这样就设置好权限并下载好 Ghost 了

三、安装配置 Ghost

首先用 npm 安装

npm install --production

注意有两个减号

npm 安装结束后,可以输入这个命令让 Ghost 以开发者模式启动

npm start

然后就可以本机从 http://127.0.0.1:2368/ 查看搭建好的 Ghost 博客了,由于我们是安装在服务器端,所以你本地浏览器是无法访问的,先按 Ctrl + C 停止一下,这时候就会生成一个 config.js,然后修改 config.js

把 url: 'http://my-ghost-blog.com', 这行改成你的域名,比如 url: 'http://example.com',

安装结束,然后我们需要让 Ghost 保持后台运行,并配置 Nginx 反向代理让外网可以访问。

四、让 Ghost 保持后台运行 + 开启启动

这里有两种方式

1、使用 forever 以后台任务运行 Ghost

安装 forever

npm install forever -g

运行 Ghost

NODE_ENV=production forever start index.js

然后可以通过 forever stop index.js 停止 Ghost

也可以通过 forever list 检查 Ghost 是否运行

2、使用 Supervisor 后台运行 Ghost 并开机启动

安装 Supervisor

sudo apt-get install supervisor

创建一个 Ghost 启动脚本文件,如 /etc/supervisor/conf.d/ghost.conf 编辑如下

[program:ghost]
command = node /var/www/index.js
directory = /var/www
user = ghost
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"

重启 Supervisor 即可生效

service supervisor restart

也可以使用 Supervisor 启动 Ghost

supervisorctl start ghost

然后我们开始安装 Nginx 配置反向代理让你本地可以访问。

四、安装 Nginx 配置反向代理

首先安装 Nginx

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx-extras
修改 /etc/nginx/sites-available/default

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:2368;
    }

    location ~* \.(?:ico|css|js|gif|jpe?g|png|ttf|woff)$ {
        access_log off;
        expires 30d;
        add_header Pragma public;
        add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
        proxy_pass http://127.0.0.1:2368;
    }

    location = /robots.txt { access_log off; log_not_found off; }
    location = /favicon.ico { access_log off; log_not_found off; }

    location ~ /\.ht {
            deny all;
    }
}

保存并重启 Nginx

sudo service nginx restart

相关文章

精彩推荐