##AWS的地址: http://liu-awesome.name/ ##运行环境 EC2镜像:Amazon Linux 2 AMI RDS引擎:MySQL 5.6.39 Node.js version:v8.11.2 Nginx version:nginx/1.14.0
##工具
- Xshell 5
- Navicat
##准备工作
- 创建EC2及RDS实例。(官方推荐ubuntu镜像,不过我用ubuntu16.04按官网文档操作,中间会报错,最后还是用了Amazon Linux 2 AMI)
- 添加EC2及RDS的安全组的入站IP及端口(小插曲是在公司建的RDS实例回家后Navicat就连不上数据库了,AWS好像会自动添加创建实例的IP,然后换IP当然就访问不了,我只编辑了EC2的安全组)
##安装部署
- Node.js安装 现在在linux下安装Node.js已经非常简单了,官方文档
1)选择镜像版本8.x
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
2)安装node.js
sudo yum -y install nodejs
2.Nginx安装 原始AMI镜像并没有Nginx的源,需要自己添加,参考了这篇文章CentOS 7 yum 安装 Nginx 1)添加Nginx镜像源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2)安装Nginx
sudo yum install -y nginx
3)启动Nginx
sudo systemctl start nginx.service
3.安装ghost-cli
sudo npm i -g ghost-cli
4.ghost安装(参考 官方文档) 1)安装准备
//创建安装目录
sudo mkdir -p /var/www/ghost
//修改用户组,和官方文档不同的是这里直接使用了镜像的默认用户ec2-user,之前用ubuntu自己添加用户时出现了权限问题
sudo chown ec2-user:ec2-user /var/www/ghost
//设置读写权限
sudo chmod 775 /var/www/ghost
2)安装
//进入目录
cd /var/www/ghost
//安装 填写相关信息,会自动安装启动,host填EC2实例的域名或DNS
ghost install
//我这里在启动时报了个unknow的错误,之前同步数据库时也报了错
//我的启动方式
sudo systemctl start ghost_ghost-local.service
3)Nginx 反向代理
编辑/etc/nginx/conf.d/default.conf
sudo vim /etc/nginx/conf.d/default.conf
找到location /修改为
location / {
proxy_pass http://localhost:2368;
}
重启Nginx
sudo systemctl restart nginx.service
5.访问镜像的DNS或域名 http://liu-awesome.name/
##遇到的一些问题 1.ghost-cli很奇怪,我用ghost install local安装正常,但将config.development.json的数据库改成mysql后ghost start就报错了 2.我不确定在linux能否正常初始化数据库,因为之前部署production的同样的命令在Linux敲了好几次数据库都没有写入,数据库后来是在win10中初始化的 3.linux下ghost run命令可以启动服务(非后台运行),但ghost start命令会报一个unknown的错误,我的启动命令是直接ghost目录下运行sudo systemctl start ghost_ghost-local.service 4.相比wordpress感觉ghost真的很折腾,php果然是世界上最好的语言。
#总结: 520就在折腾ghost中过去了ಥ_ಥ 明天继续上班<( ̄︶ ̄)↗[GO!]