目录

推荐使用 Debian 7 x64 的系统, VPS 内存大于 256M

1、 安装 Node.js

目前 Node.js 稳定版的版本号为 v4.2.4 ,安装方法如下:

以下命令均需 root 权限,若您不是以 root 用户登录 VPS 的,请在执行命令前运行 su。若是你不知道 root 用户密码,你可以试试运行 sudo passwd root 来设置一个

For Debian/Ubuntu

apt-get update && apt-get install curl wget unzip vim -y && curl -sL https://deb.nodesource.com/setup_4.x | bash - && apt-get install -y nodejs build-essential

For Centos

yum update && yum install curl wget unzip vim -y && curl --silent --location https://rpm.nodesource.com/setup_4.x | bash - && yum install gcc-c++ make nodejs -y

2、 安装 Ghost

目前 Ghost 版本为 v0.7.5 ,安装方法如下:

进入 /home 目录,下载 Ghost 安装包并安装:

cd /home && mkdir ghost && cd ghost && curl -L https://github.com/TryGhost/Ghost/releases/download/0.7.5/Ghost-0.7.5.zip -o ghost.zip && unzip ghost.zip && npm install --production

然后修改 config.js

cp config.example.js config.js && vim config.js

i ,修改相应内容:

production: {
        url: 'http://my-ghost-blog.com', // 修改为您自己的域名
        mail: {},
        database: {
            client: 'sqlite3', // 若您是国外小内存 VPS 推荐使用默认sqlite3数据库
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
            debug: false
        },

        server: {
            host: '127.0.0.1', // 修改为 0.0.0.0
            port: '2368' // 推荐修改为大于5000的端口
        }
    },

使用 Mysql 数据库请查看此

修改完后,按 esc 键,并输入 :wq 回车保存并关闭

然后运行 npm start

若出现:

Listening on 0.0.0.0:8080
Url configured as: http://yourdomain
Ctrl+C to shut down

则代表运行成功,按 Ctrl + C 键退出运行

安装 PM2 :

npm install -g pm2

用 PM2 来守护 Ghost 运行:

NODE_ENV=production pm2 start index.js

再运行 pm2 startup 0 使它开机运行

这样 Ghost 博客变安装并运行成功了

3、安装 Nginx

For Debian/Ubuntu

curl -L http://nginx.org/keys/nginx_signing.key -o nginx_signing.key && apt-key add nginx_signing.key && vim /etc/apt/sources.list

i 新增两行:

// For Debian
deb http://nginx.org/packages/mainline/debian/ *codename* nginx
deb-src http://nginx.org/packages/mainline/debian/ *codename* nginx

// For Ubuntu
deb http://nginx.org/packages/mainline/ubuntu/ *codename* nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ *codename* nginx

//将上方 *codename* 替换成对应系统的代号: Debian7: wheezy; Debian8: jessie; Ubuntu12.04: precise; Ubuntu14.04: trusty; Ubuntu15.04: vivid; Ubuntu15.10: wily;

按 esc 键,输入 :wq 回车,并继续运行:

apt-get update && apt-get install nginx -y

For Centos

vim /etc/yum.repos.d/nginx.repo

i 粘贴下方内容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/*OSRELEASE*/$basearch/ 
gpgcheck=0
enabled=1

// 修改上方 *OSRELEASE* 为您系统版本: centos 5.x: 5; centos 6.x: 6; centos 7.x: 7;

按 esc 键,输入 :wq 回车,并继续运行:

yum update && yum install -y nginx

运行 nginx -v 若出现 Nginx 版本号 则代表安装成功

然后新建一个 Nginx 配置文件:

vim /etc/nginx/conf.d/ghost.conf

i 粘贴下方内容:

server {
    listen 0.0.0.0:80;
    # 将 *your-domain-name* 更换为您的域名
    server_name *your-domain-name*; 
    access_log /var/log/nginx/*your-domain-name*.log; 

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;
        # 若您之前更改过 Ghost 运行端口,则将 2368 改为您更改过后的端口
        proxy_pass http://127.0.0.1:2368; 
        proxy_redirect off;
    }

按 esc 键,输入 :wq 回车,并继续运行:

service nginx restart

若出现 Restarting nginx: nginx. 则代表 Nginx 配置成功

将您的域名的 A 记录指向您 VPS 的 IP ,然后访问您的域名,出现 Ghost 默认首页即代表您的 Ghost 博客安装成功了,访问 http://yourdomain/ghost 注册成为您博客的主人吧。


高级配置


4、配置 SSL

首先你需要为你的域名签发一个 SSL 证书,这里推荐 StartSSL 它可以为你签订免费的受信任的 SSL 证书(但不支持 XP 系统)

获取了 SSL 证书后,将 crt 及 key 文件放入 /etc/nginx/ssl 中,然后编辑 Nginx 配置文件

vim /etc/nginx/conf.d/ghost.conf

更新为以下配置

server {
    listen 80;
    # 将 *yourdomain* 更换为你自己的域名
    server_name *yourdomain* ;

    return 301 https://$server_name$request_uri;
}

server {
    # Nginx 1.9.5 以上支持 http2 协议,若您的 Nginx 版本低于此请将 http2 去掉
    listen 443 ssl http2;
    # 将 *yourdomain* 更换为你自己的域名
    server_name *yourdomain* ;

    ssl on;
    # 更换成你证书的名称
    ssl_certificate /etc/nginx/ssl/yourdomain.crt;
    ssl_certificate_key /etc/nginx/ssl/yourdomain.key;

    # enables all versions of TLS, but not SSLv2 or 3 which are weak and now deprecated.
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    # disables all weak ciphers
    ssl_ciphers 'AES128+EECDH:AES128+EDH';

    ssl_prefer_server_ciphers on;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:5000/;
        # 将 5000 端口换成你设置的端口
        proxy_redirect off;
    }

    # 让 Nginx 直接分发 Ghost 中的静态文件
    location /content/images {  
       alias /home/ghost/content/images;
       expires max;
    }
    
    #将 *your theme name* 更换成你主题名称
    location /assets {  
       alias /home/ghost/content/themes/*your theme name*/assets;
       expires max;
    }

    location /shared {  
       alias /home/ghost/core/shared;
       expires max;
    }

    location /ghost/scripts {  
       alias /home/ghost/core/built/scripts;
       expires max;
    }
}

然后重启 Nginx

service nginx restart

5、配置 Mysql 数据库

若您之前已经在 sqlite 模式下书写了博客,请访问博客后台 - Labs - Export 按钮来导出博客数据,配置完 mysql 数据库后再在 Labs 内导入之前的博客数据


For Debian/Ubuntu

同理,若使用非 root 帐号登录,先运行 su 获取 root 权限再执行以下操作:

apt-get install mysql-server mysql-client  -y

安装过程中,系统会提示你给 root 用户(这里的 root 是 MySQL 数据库的管理账号) 设置个密码,建议设置足够复杂的密码(例如:cqmylightysdss / 床前明月光疑是地上霜)

MySQL 安装成功后,执行以下指令进一步加强 MySQL 的安全设置:

mysql_secure_installation  

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL  SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current  
password for the root user.  If you've just installed MySQL, and  
you haven't set the root password yet, the password will be blank,  
so you should just press enter here.

//输入安装 MySQL 时为 root 账户设置的密码
Enter current password for root (enter for none):  
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL  
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

//是否修改 root 账户的密码?前面设置过 root 账户的密码了,如果不打算修改密码的话,输入 'n'
Change the root password? [Y/n] n  
 ... skipping.

By default, a MySQL installation has an anonymous user, allowing anyone  
to log into MySQL without having to have a user account created for  
them.  This is intended only for testing, and to make the installation  
go a bit smoother.  You should remove them before moving into a  
production environment.

//是否删除匿名用户?
Remove anonymous users? [Y/n] y  
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This  
ensures that someone cannot guess at the root password from the network.

//是否禁止 root 账户远程登录?
Disallow root login remotely? [Y/n] y  
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can  
access.  This is also intended only for testing, and should be removed  
before moving into a production environment.

//是否删除 MySQL 默认创建的 test 数据库,并删除所有对 test 数据库的权限设置?
Remove test database and access to it? [Y/n] y  
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far  
will take effect immediately.

//是否重新加载权限表?
Reload privilege tables now? [Y/n] y  
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL  
installation should now be secure.

Thanks for using MySQL!

为 MySQL 设置默认字符集:

vim /etc/mysql/my.cnf

[mysqld] 添加如下设置:

[mysqld]
collation-server = utf8_unicode_ci  
init-connect='SET NAMES utf8'  
character-set-server = utf8  

重启 MySQL:

service mysqld restart

创建一个 MySQL 数据库:

mysql -uroot -p -e 'create database ghost;'  

系统会提示你输入 MySQL 数据库的 root 账户密码,然后编辑 Ghost 博客的配置文件:

cd /home/ghost/ //进入之前安装 Ghost 博客的目录
vim config.js  

i ,修改 production 中数据库的配置:

production: {
        url: '*yourdomain', // 替换为你自己的域名。
        mail: {},
        database: {
             // client: 'sqlite3', // 若您是国外小内存 VPS 推荐使用默认sqlite3数据库
             // connection: {
             //      filename: path.join(__dirname, '/content/data/ghost.db')
            },
             // debug: false
             // 将上方原 sqlite 数据库配置删掉,替换为下方配置
            client: 'mysql',
            connection: {
                host     : '127.0.0.1',
                user     : 'root', 
                password : '*password*', // 输入 MySQL root 账户的密码
                database : 'ghost', // 前面为 Ghost 创建的数据库名称
                charset  : 'utf8'
            }
        },
        server: {
            host: '0.0.0.0',
            port: '2368' // 推荐使用大于 5000 的端口
        }
    },

然后运行 pm2 restart 0 来重启 Ghost 博客,之后你的 Ghost 博客便使用 mysql 数据库来储存博客数据了


6、找回密码&配置邮件

注册一个 Mailgun 帐号,新增一个域名并获取 SMTP credentials

编辑 config.js

mail: {
transport: 'SMTP',
    options: {
        service: 'Mailgun',
        auth: {
            user: '[email protected]', // 修改为你自己的 SMTP 帐号
            pass: 'a28a3971e3efe00d117ef466cd039ebc' // 修改为你自己的密码
        }
    }
}

重启 Ghost ,访问您博客的登录页,填入邮件地址并点击 Forgot? ,即可收到重置密码邮件(有可能在垃圾邮件里)

39f8b4246c410edfff754c060bff3.gif


7、安装主题

进入 Ghost 安装目录,并运行

cd content/themes

下载主题或者 git clone 进当前目录

// 例如
git clone https://github.com/ygbhf/anatole-ghost-theme.git anatole

重启 Ghost 博客,在后台 General 中选择你安装的主题即可


  2016-01-12    返回顶部