Debian安装Nginx和Node.js以及Ghost博客

本教程适用于Debian和Ubuntu,域名以本站denpe.com为例,操作时注意换成自己的域名。按步骤一气呵成完成所有操作。 于2015年12月1日更新 ghost0.7.2支持node 4.2.0

安装和配置Nginx

1.通过apt-get安装Nginx并创建配置文件

apt-get install nginx  
cd /etc/nginx/  
rm sites-enabled/default  
nano /etc/nginx/sites-available/denpe.com  

2.在配置文件denpe.com内粘贴以下内容,注意网址替换.

server {  
    listen 80;
    server_name www.denpe.com;
    access_log /srv/www/logs/denpe.com.log;
    error_log  /srv/www/logs/error.log;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass         http://127.0.0.1:2368;
        proxy_redirect off;
    }
}

3.然后创建配置文件链接、日志相关文件夹和文件。并重启nginx。

ln -s /etc/nginx/sites-available/denpe.com /etc/nginx/sites-enabled/denpe.com

mkdir -p /srv/www/logs  
touch /srv/www/logs/denpe.com.log  
touch /srv/www/logs/error.log  
service nginx restart  

安装Nodejs

1.我们使用版本管理工具nvm(node version manager)来安装管理nodejs

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash  

注意:安装后记得断开SSH连接再重新登录使nvm命令生效

2.重新登陆vps后安装nodejs

nvm install 0.10  

ghost0.7.2开始支持nodejs 4.2版本,不用安装0.10 ,使用下面命令安装4.2.0

nvm install 4.2.0  
3.安装npm并将npm版本升至2.5.0
apt-get install npm  
npm install npm@2.5.0 -g  

安装node4.2.0后自带npm版本2.14.7,无需再手动安装npm 。

4.检查安装是否正确,如无误会返回版本号.

node -v                     //4.2.0  
npm -v                      //2.14.7  

5.为了避免重启终端后出现node、npm命令失效等问题,建议指定node版本号.

node -v  // 获取版本号   v4.2.0  
nvm use 4.2.0  
nvm alias default 4.2.0  

安装Ghost

1.进入要安装ghost的目录并下载ghost.

cd /srv/www/  
wget https://ghost.org/zip/ghost-latest.zip  

2.解压ghost压缩包,如果你的vps无法解压压缩包,则需要安装unzip.

apt-get install unzip  
unzip -d denpe.com ghost-latest.zip  
cd denpe.com/  

3.安装ghost

npm install --production  

到此Ghost已经安装完成,在使用前我们需要做一些完善配置工作.

配置Ghost

1.复制一份配置文件并编辑

cp config.example.js config.js  
nano config.js  

2.在第15行左右找到设置网址的地方,填入你的域名后保存退出.

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: {},
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
            debug: false
        },

3.然后在/srv/www/denpe.com目录下.启动ghost

npm start --production  

不出意外的话这时打开域名就可以访问了.在终端按CTRL+C可停止刚才启动的Ghost实例.接下来要安装forever让ghost在后台始终运行.推荐使用pm2来控制ghost后台运行,pm2相比forever除了功能更强大外还能很方便的设置开机自动运行Ghost 。

4.安装forever,并用forever启动ghost
npm install  forever -g  
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  
如果要停止运行ghost可用`forever stop index.js`命令.

4.安装pm2并用pm2后台运行ghost

npm install pm2 -g  
cd /srv/www/denpe.com  
echo "export NODE_ENV=production" >> ~/.profile  
source ~/.profile  
pm2 kill  
pm2 start index.js --name ghost  
pm2 dump  

可以使用pm2 stop ghost命令来停止,pm2 restart ghost命令来重启Ghost 。

开机自动运行Ghost

用pm2实现ghost在vps重启后自启。运行命令pm2 startup debian(根据系统来,如果是ubuntu则pm2 startup ubuntu)会出现如下内容。

[PM2] Generating system init script in /etc/init.d/pm2-init.sh
[PM2] Making script booting at startup...
[PM2] -debian- Using the command:
      su -c "chmod +x /etc/init.d/pm2-init.sh && update-rc.d pm2-init.sh defaults"
update-rc.d: using dependency based boot sequencing  
[PM2] Done.

复制并运行其中的命令

chmod +x /etc/init.d/pm2-init.sh && update-rc.d pm2-init.sh defaults  

继续命令

pm2 save  

终端显示

[PM2] Dumping processes

设置完毕。可重启VPS测试一下Ghost是否开机后自动启动。

更多阅读

配置Nginx提高Ghost性能
配置Nginx访问IP跳转域名
用Dropbox备份Ghost