CentOS 7 安装 Ghost 记录

CentOS 7 安装 Ghost 记录
Photo by Sincerely Media / Unsplash

由于众所周知的原因,我在 Linode 买了主机,用 Shadowsocks 搭了梯子,而之前阿里云的服务器差不多到期,正好全面迁移到 Linode,把整个迁移过程记录如下,免得下次搬家迷路。

安装 MySQL

由于 CentOS 7 的 yum 源中没有 mysql-sever,需要手动添加

# cd /usr/local 
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm

添加完成后,查看一下

# ls -1 /etc/yum.repos.d/mysql-community*

会得到如下两个源:

/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo

然后安装并启动服务

# yum install mysql-server
# service mysqld start

设置 root 密码

# mysql -u root
mysql> use mysql ;
mysql> update user set password=PASSWORD("新密码") where User='root' ;

增加远程访问的权限

mysql> update user set host='%' where user='root';

最后刷新一下

mysql> flush privileges;  
安装 Node

从源码编译 Node 需要 Python2.6 以上的版本,此处省略安装 Python 的过程。

下载源码并解压

# cd /usr/local 
# wget http://nodejs.org/dist/v0.10.31/node-v0.10.35.tar.gz
# tar xvpzf node-v0.10.35.tar.gz

然后编译并安装

# cd node-v0.10.35 //默认安装在/usr/local/bin,可以使用--prefix参数指定安装路径
# ./configure
# make
# make install
安装 Ghost 中文版

下载源码并安装

# cd /usr/local/nginx/html
# wget http://dl.ghostchina.com/Ghost-0.5.7-zh.zip
# unzip Ghost-0.5.7-zh.zip -d ghost
# cd ghost
# npm install --production

配置 config.js,推荐使用生产环境,因此需要修改 production 节点

{
    //访问的url,域名或者IP:端口。
    url: '',
    //邮件推送服务,这里使用的Mailgun,参考Mailgun的配置。
    mail: {
        transport: 'SMTP',
        options: {
            service: 'Mailgun',
            auth: {
                user: '', 
                pass: ''  
            }
        }
    },
    //MySQL的IP、端口、用户名、密码、数据库名称
    database: {
        client: 'mysql',
        connection: {
            host: '127.0.0.1',
            port: '3306',
            user: 'xxx',
            password: '******',
            database: 'ghost',
            charset: 'utf8'
    	},
    	debug: false
    },
    //Node监听的IP和端口
    server: {
        host: '127.0.0.1',
        port: '7749'
    }
}

如果不想使用 MySQL,SQLite3 可以作为替代方案,database 的配置要做如下修改:

database: {
    client: 'sqlite3',
    //db文件的路径
    connection: {
    	filename: path.join(__dirname, '/content/data/ghost.db')
    },
    debug: false
}

最后启动 Ghost ,就可以通过配置的 url 访问了。

# npm start --production

如果需要让 Ghost 一直在后台运行,可以使用 Forever

# npm install forever -g
# NODE_ENV=production forever start index.js
安装 Nginx

由于域名解析只支持 80 端口,如果配置了其他端口,需要用 Ngnix 做一下转发。

安装依赖的库

# yum install gcc-c++  
# yum install pcre pcre-devel  
# yum install zlib zlib-devel  
# yum install openssl openssl--devel  

下载源码并解压

# cd /usr/local 
# wget http://nginx.org/download/nginx-1.7.9.tar.gz 
# tar -zxvf nginx-1.7.9.tar.gz  

然后编译并安装

#  cd  nginx-1.7.9
# ./configure  //默认安装在/usr/local/nginx,可以使用--prefix参数指定安装路径
# make  
# make install      

配置转发

server
{
	listen 80;
	server_name www.airycanon.cn;
	location / {
		proxy_set_header   X-Real-IP $remote_addr;
		proxy_set_header   Host      $http_host;
		proxy_pass         http://127.0.0.1:7749;
		root /usr/local/nginx/html/ghost;
		index index.js;
	}
}

把通过IP和不带www的访问也转一下

server {
    listen 80;
    server_name airycanon.me IP;
    return 301 $scheme://www.airycanon.me$request_uri;
}

最后启动Nginx

# cd /usr/local/nginx/sbin
# ./nginx