分类 默认分类 下的文章

Install Nginx


添加ppa

sudo -s
nginx=stable # use nginx=development for latest development version
add-apt-repository ppa:nginx/$nginx
apt-get update
apt-get install nginx

运行add-apt-repository ppa:nginx/$nginx时,如果提示:

The program 'add-apt-repository' is currently not installed. You can install it by typing:
apt-get install software-properties-common

根据提示,安装software-properties-common

apt-get install software-properties-common

为Ubuntu和Debian安装最新版本的nodejs


运行Ghost必须安装Node.js。但是Ubuntu或Debian的软件仓库中的Node.js版本更新比较慢,这里我们选择安装最新版的Node.js。

支持Ubuntu版本

  • Ubuntu 12.04 LTS(Precise Pangolin)
  • Ubuntu 14.04 LTS (Trusty Tahr)
  • Ubuntu 15.04 (Vivid Vervet)

支持的Debian版本

  • Debian 7 (wheezy)
  • Debian 8 / stable (jessie)
  • Debian testing (stretch, aliased to jessie)
  • Debian unstable (sid)

安装步骤

Ghost目前支持0.10.*0.12.*>=4.2 <=5.* (LTS)版本的Node.js,推荐使用>0.10.40(latest),详细说明参考:http://support.ghost.org/supported-node-versions
我们选择安装Node.js v4.x,执行下面的命令:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

注意:Ghost不支持Node.js v5.x

在Ubuntu上安装并运行Ghost


ssh登陆到远程服务器

  • 运行一下命令下载最新版本的Ghost
curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
  • 使用以下命令解压
unzip -uo ghost.zip -d ghost
  • 切换到解压的ghost目录下
cd /你的ghost解压目录
  • 输入以下命令安装Ghost
cp config.example.js config.js
npm install --production
  • 在npm安装结束后,输入以下命令让Ghost以开发模式启动
npm start
  • Ghost将会运行在127.0.0.1:2368

可以在config.js中修改IP地址和端口

  • 在浏览器中,访问127.0.0.1:2368即可查看最新搭建的Ghost博客
  • 访问127.0.0.1:2368/ghost并设置管理员账号并登录Ghost

部署Ghost


前面提到的启动 Ghost 使用npm start 命令。这是一个在开发模式下启动和测试的不错的选择,但是通过这种命令行启动的方式有个缺点,即当你关闭终端窗口或者从 SSH 断开连接时,Ghost 就停止了。为了防止 Ghost 停止工作,选择supervisor保持Ghost运行。

Supervisor

流行的 Linux 发行版——例如 Fedora, Debian 和 Ubuntu,都包含一个 Supervisor 包:一个进程控制系统,允许在启动的时候无需初始化脚本就能运行 Ghost。不像初始化脚本一样,Supervisor 可以移植到不同的发行版和版本。

  • 安装supervisor
sudo apt-get install supervisor
  • 启动supervisor服务
service supervisor start
  • Ghost创建启动脚本,通常为/etc/supervisor/conf.d/ghost.conf,例如:
[program:ghost]
command = node /path/to/ghost/index.js
directory: /path/to/ghost
user = user
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"
  • 使用Supervisor启动Ghost
sudo supervisorctl start ghost
  • 停止Ghost
sudo supervisorctl stop ghost

配置域名


配置站点

  • /etc/nginx/site-available/目录下创建ghost文件
  • 编辑ghost文件(例如:sudo vim /etc/nginx/site-available/ghost),内容如下:
server {
    listen 80;
    server_name example.com;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}
  • ghost文件软连接到/etc/nginx/site-enabled/目录下
sudo ln -s /etc/nginx/site-avaliable/ghost /etc/nginx/site-enabled/ghost
  • 重启nginx
sudo service nginx restart

参考资料

https://www.nginx.com/resources/wiki/start/topics/tutorials/install
https://nodejs.org/en/download/package-manager
http://www.ghostchina.com/install-nodejs-of-latest-version-in-ubuntu-and-debian