vue 项目部署到腾讯云服务器断断续续用了几天的时间,遇到很多问题,也查了很多资料,问了不少git里面的大佬。想总结一下这几天项目放在服务器上遇到的难题和解决办法。
首先购买了腾讯云的服务器
学生套餐120一年。我买的是北京一区的服务器,选择CentOS系统64位,我选的是7.2版本,其他默认快速配置即可。首先是实名认证,备案域名(今天才备案,估计要20天吧才可以用域名访问)。
给服务器添加安全组
在腾讯云控制台里面直接在安全组添加放通全部窗口(虽然有一定风险,但是为了方便调试和xhsell连接服务器),然后在实例里面给服务器绑定安全组即可。
添加SSH秘钥
在控制台秘钥中生成SSH秘钥,10分钟内下载到本地。在Xshell中创建连接,属性中名称随便填写,主机写公网ip,选择SSH协议,端口默认22即可。第一次点击连接会弹出一个输入密码的对话框,填写服务器密码然后选择public key,选择文件就选刚刚下载的秘钥(密码框为了安全性是根本不需要填写的,这是SSH秘钥的特点),便成功连接了云服务器。
修改本地源代码文件
在上传文件到服务器之前先要修改一下基础的项目配置,即部分webpack等基础设置,来支持代码在服务器运行。
在config目录下将index.js中的target改为内网ip,host改为公网ip
proxyTable: {
'/api': {
target: 'http://172.21.0.14:8080',
pathRewrite: {
'^/api': '/static/mock'
}
}
},
// Various Dev Server settings
host: '140.143.54.6', // can be overwritten by process.env.HOST
这种static目录下的package.json中对webpack做如何修改,这样就可以通过ip地址访问了
"dev": "webpack-dev-server --host 0.0.0.0 --inline --progress --config build/webpack.dev.conf.js",
将文件上传到服务器
方法一:通过git来上传文件。
首先在CentOS服务器安装git,采用自带的yum安装git十分简单,但是装的版本过低
yum install git
所以采用如下方法:从github上下载最新的源码编译后安装git
1.进入git在github上的发布版本页面https://github.com/git/git/releases。在这个页面我们可以找到所有git已发布的版本。这里我们选择最新版的tar.gz包。
2.获取到最新包的下载链接后,我们进入linux服务器,开始下载。
wget https://codeload.github.com/git/git/tar.gz/v2.13.0-rc1
耐心等待下载完成。我们可以看到下载后的文件名是v2.13.0-rc1,并不是压缩包的格式,不用担心,这只是链接的问题,手动修改文件名为v2.13.0-rc1.tar.gz。
mv v2.13.0-rc1 v2.13.0-rc1.tar.gz
下载git源码后,解压压缩包
tar -zxvf v2.13.0-rc1.tar.gz
进入解压后的文件夹
cd git-2.13.0-rc1
源码解压完成
3.拿到解压后的源码以后我们需要编译源码了,不过在此之前需要安装编译所需要的依赖。输入如下命令。
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
耐心等待安装完成,中途出现提示的时候输入y并按回车。
4.提示,安装编译源码所需依赖的时候,yum自动帮你安装了git,这时候你需要先卸载这个旧版的git。
yum remove git
耐心等待删除完成,中途出现提示的时候输入y并按回车。
5.编译git源码
make prefix=/usr/local/git all
耐心等待编译完成,中途可能会花费几分钟的时间。
6.安装git至/usr/local/git路径
make prefix=/usr/local/git install
等待安装完成
7.打开环境变量配置文件
vim /etc/profile
在底部加上git相关配置,把原来export的内容修改掉(这里用到vim的知识,按i进入编辑模式,完成按下esc退出编辑,按:wq 回车保存退出)
PATH=$PATH:/usr/local/git/bin
export PATH
修改环境变量后,刷新环境变量
source /etc/profile
8.输入git --version检查git是否安全完成,以及查看其版本号。
安装完成后便可以配置服务器上的git和码云仓库的关联。按照码云官网教程在CentOS生成SSH公钥添加到码云(在本地会生成一个私钥,和码云打通)。
在Xshell中通过
git clone ...SSH地址
来完成码云下载到本地,后面...为仓库SSH
二.通过Xftp上传文件
Xftp就是有点慢,不太方便下载整个文件,但是每次改动代码时候,可以把改动部分通过Xftp替换掉服务器中文件。因为mock不会下载到服务器,所以可以通过Xftp上传到static中
下面要进行服务器中node的安装
这里安装在local目录下
cd /usr/local/
wget ...node官网下载地址
解压
tar -xvf node...tar.xz
可以把文件名缩短,变为nodejs
mv node... nodejs
进入bin文件夹下
cd nodejs/
cd bin/
配置环境变量
ln -s /usr/local/nodejs/bin/node /usr/local/bin
ln -s /usr/local/nodejs/bin/npm /usr/local/bin
查看是否安装完成
cd /usr/local/bin/
ls
node -v
npm -v
在服务器运行WebApp
首先进入文件
cd Travel
安装项目依赖,这时候会报错,可以忽视掉
npm i
编译产生dist目录,但这个有可能会报错
npm run build
启动服务
npm run start
这时候就可以通过公网ip访问啦
当然,想要在断开Xshell连接时,网站依然存在,就可以通过screen
1、安装screen命令
yum install screen #安装
2、创建screen会话
screen -S session_name #创建screen会话,自定义screen虚拟终端的名称
创建会话后自动进入该虚拟终端
4、测试
我们可以执行一个服务,然后关闭SSH远程连接窗口,然后重新登录
screen -r session_name #查看之前的虚拟终端
自动会进入该虚拟终端,我们也就会看到还在运行。
5.重新打开Xshell后查看已创建的会话
screen -ls #查看所有screen会话
6.关闭会话,停止网站
screen -S session_name -X quit
关于域名、部署多个项目要等域名备案结束后更新啦!
2019.3.10