一.winscp是什么
WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。
使用 WinSCP 可以连接到一台提供 SFTP (SSH File Transfer Protocol)或 SCP (Secure Copy Protocol)服务的 SSH (Secure Shell)服务器,通常是 UNIX 服务器。SFTP 包含于 SSH-2 包中,SCP 在 SSH-1 包中。
两种协议都能运行在以后的 SSH 版本之上。WinSCP 同时支持 SSH-1 和 SSH-2。 但WinSCP不支持编码选择,也就是说,你在Windows下使用WinSCP连接一个Linux机器,因为Linux和Windows的默认编码不同,因此是无法访问上面的中文文件或者文件夹的(将看到乱码)。一种解决方法就是在打开winscp时登录中的 Advanced Options–Environment中将 “UTF-8 encoding for filenames”设为on.
二.项目部署
第一次部署我不会,目前掌握的就是第一次完整的部署工作已经完成的情况下,代码有修改,再重新发布的流程
1.前端代码部署
项目是前端后端分离的,前端中的package.json配置如下:
"scripts": {
"init": "webpack --progress --config webpack.dev.config.js",
"dev": "webpack-dev-server --content-base ./ --open --inline --hot --compress --history-api-fallback --config webpack.dev.config.js",
"build": "rm -rf ./dist && node build/index.js --auto 3",
"lint": "eslint --fix --ext .js,.vue src"
}
要发布代码时候需要运行npm run build,会将代码打包生产一个dist文件,将这个dist文件和前端的入口文件index_prod.html一起打包,重命名web.zip(名字随意)
因为服务器上没有部署rz功能,远程传输文件用的git命令.现将文件传输到远程指定位置,tmp是一个临时目录
scp web.zip 服务器名字@服务器ip:/tmp/web.zip
确定后会让你输入密码,直接输入密码就好,这样代码就传到临时tmp位置上了.
下载winscp并成功连接上服务器后,在登录界面选择 在PuTTY中打开,这样就打开了命令行.按提示输入账号和密码
先切换root权限
sudo su root
切换到web/publish中,输入命令,把临时目录中的文件重命名为当前时间(随意,好区分版本就用时间来命名了),并移动到当前目录
mv /tmp/web.zip 20190927.zip
然后解压这个文件
unzip 20190927.zip
[r]ename: A
//直接选择A,替换所有
前端部署完毕
2.node端代码部署
node端要是node_modlues没有变化,直接将src文件压缩重命名为server.zip,和前端代码以相同的方式,传输到临时目录上
用putty切换到临时目录tmp中可以ls看看文件是否已经上传成功
cd 到node代码中,我的代码名称是koa2,就cd koa2中,将临时文件中的server.zip移动到当前目录,且重命名src.zip
mv /tmp/server.zip src.zip
然后解压这个文件
unzip src.zip
[r]ename: A
//直接选择A,替换所有
本项目没有热部署,node端代码部署完毕后需要使用pm2重启项目,输入命令
pm2 list
可以用pm2 log 查看输出的日志
pm2 logs
好了,node端代码也部署完毕,可以使用服务器ip启动项目查看部署是否成功
另,部署时候遇到的一个坑:其实也是自己大意,config配置的port,我改成了本地localhost:8080,部署的时候忘了给成服务器的ip,导致项目没法启动.所以要是config配置有端口的,需要每次部署跟新的话,一定记得改为服务器端的ip
网友评论