购买服务器
目前市面上的云服务器有很多可供选择,比如:腾讯云、阿里云、华为云等等五花八门,大家可自行选择,使用套路都差不多,本文以阿里云ECS为例。
配置: 系统:centos_7
创建nuxt项目
为啥选择nuxt项目、nuxt的优缺点、以及如何创建nuxt项目不是本文的中心,可以看本人的另一篇文章vue+nuxt+sass+node+express+MongoDB 实现的文章发布系统 。此次要部署的项目以此为例,有需要源码的也可去本人Github去clone。
部署项目
登录阿里云ECS
进入到阿里云控制台,创建服务器实例之后点击右边的"远程链接"进入到登录界面
输入账号密码, 如果忘记了可以重新设置
具体可以参考 阿里云官网文档
安装node、npm
1.开始安装Node.js,先进入/root文件夹(安装在/root目录下,也可以指定到自定义目录下),这个文件夹通常用来存放软件源代码:
cd /root
复制代码
2.从 Node.js的站点 中获取压缩档源代码, 我选择的版本为v9.10.0(可以直接复制下面代码,修改自己需要的版本就可以):
wget https://nodejs.org/dist/v9.10.0/node-v9.10.0-linux-x64.tar.xz
复制代码
3.解压缩源文件,并且进入到压缩后的文件夹中:
tar xvf node-v9.10.0-linux-x64.tar.xz
复制代码
4.创建软连接,全局才可以使用node和npm:
ln -s /root/node-v9.10.0-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v9.10.0-linux-x64/bin/npm /usr/local/bin/npm
复制代码
5.现在已经安装了Node.js, 可以开始部署应用程序, 首先要使用Node.js的模块管理器npm安装pm2.
npm install pm2 -g
复制代码
6.创建pm2的软连接
ln -s /root/node-v9.10.0-linux-x64/bin/pm2 /usr/local/bin/pm2
复制代码
安装mongodb
1.安装说明:
安装软件:mongodb-linux-x86_64-2.4.9.tgz
下载地址: http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz
上传位置:/root
软件安装位置:/root/mongodb
数据存放位置:/var/mongodb/data日志存放位置:/var/mongodb/logs
复制代码
2.进入文件夹/root,下载mongodb源代码:
cd /root
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz
复制代码
3.解压安装包,重命名文件夹为mongodb
tar zxvf mongodb-linux-x86_64-2.4.9.tgz
mv mongodb-linux-x86_64-2.4.9 mongodb
复制代码
4.在var文件夹里建立mongodb文件夹,并分别建立文件夹data用于存放数据,logs用于存放日志
mkdir /var/mongodb
mkdir /var/mongodb/data
mkdir /var/mongodb/logs
复制代码
5.打开rc.local文件,添加CentOS开机启动项:
1. vim /etc/rc.d/rc.local 默认进去是普通模式,不能写入;
2. 输入i命令,注意:”i”, 不是”:i”, 然后就可以写了;
3. 然后按esc,回到普通模式,输入:w,保存,:q退出,回到控制台。
复制代码
6.将mongodb启动命令追加到本文件中,让mongodb开机自启动:
/root/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork
复制代码
7.启动mongodb
/root/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork
复制代码
8.看到如下信息说明已经安装完成并成功启动:
forked process: 11221
all output going to: /var/mongodb/logs/log.log
child process started successfully, parent exiting
复制代码
上传项目代码
1.可以安装任意一款 ftp上传工具,此处推荐FileZilla,链接
代码前期准备
1.在本地执行命令:npm run build 生成 .nuxt目录
2.配置package.json文件新增
"config": {
"nuxt": {
"host": "0.0.0.0",
"port": 80
}
}
复制代码
3.在/home下创建app文件夹,将上一步生成的.nuxt文件和package.json、server等文件上传到该文件夹
启动项目
1.npm install 安装依赖包文件
2. cd app/server文件夹下 "pm2 start listrouter.js 启动服务接口
3. cd app/目录下 "pm2 start npm --name "mynuxt" -- start 启动前端
复制代码
至此,代码部署完毕, 浏览器输入 "你的外网IP:端口号"(80端口可以不写) 就可启动项目了。点击查看demo
如果,启动80端口被占
1. 首先sudo netstat -apn | grep 80 查看那些程序占了端口;
2. kill 25141
复制代码
总结
第一次用阿里云,有许多还不太会,初级入门的可以看看,大佬可以忽略。需要了解更多信息,可以查看我的博客