当前位置: 首页 > news >正文

c 网站开发引擎厦门营销型网站建设

c 网站开发引擎,厦门营销型网站建设,建设工程主管部门网站,专门做动漫的网站吗想要的功能前端打包之后自动上传文件夹到服务器在不提交代码的前提下#xff0c;也可以完成上述功能经过各种百度谷歌#xff0c;最后有两种方案可以选择第一种是写一个shell#xff0c;通过lftp上传文件夹#xff0c;但是会有个权限的问题#xff0c;需要更改nginx配置才…想要的功能前端打包之后自动上传文件夹到服务器在不提交代码的前提下也可以完成上述功能经过各种百度谷歌最后有两种方案可以选择第一种是写一个shell通过lftp上传文件夹但是会有个权限的问题需要更改nginx配置才可以解决第二种就是使用node来实现个人推荐使用这个第三种就是jenkins, 但是我又不想提交代码不满足放弃使用shell自动传输文件夹到服务器思路1. 安装lftp2. 编写shell脚本自动传输文件夹到服务器3. lftp 传输文件成功之后会访问目录会报一个ngxin 403的权限错误(如果说测试大佬不同意改ngxin配置的话 那就放弃把)ftp安装和常用命令介绍linux安装vftprpm -qa | grep initscripts查看ftp安装是否成功which vsftpd查看ftp 服务器状态service vsftpd status启动ftp服务器service vsftpd start重启ftp服务器service vsftpd restart查看服务有没有启动netstat -an | grep 21 //默认端口为21tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN如果看到以上信息证明ftp服务已经开启。如果需要开启root用户的ftp权限要修改以下两个文件vi /etc/vsftpd/ftpusers 中注释掉rootvi /etc/vsftpd/user_list 中也注释掉root然后重新启动ftp服务 service vsftpd restartftpusers和user_list文件详解安装lftp为啥要安装lftpftp不可以传文件夹lftp可以lftp可以使用帐号密码登录安装步骤windowchoco 安装choco install lftp没有安装choco 请点下方链接自己食用linuxlinux下安装FTP的过程和使用的整体过程第一步第二步第三步【Linux】缺少service命令的解决办法lftp 常用命令介绍Shell 教程为啥要 ./qq.sh 这样执行 好像有坑shell使用ftp传输文件请确保ftp服务已经开启再做下面的操作新建一个qq.sh文件大致就是是用ftp链接远程服务器并传输一个zip文件shell源码#!/bin/sh# 出现异常不往直接报错set -e# 打包tar -czvf social.zip social# 远端服务器ipip192.168.1.99# 部署到远程服务器的目录 自行更换remote/usr/abcd/# 帐号 自行更换userNameadmin# 密码 自行更换password123456# 传输方式ftpFransferTypebinary# 传输的文件名ftpPutFileNamesocial.zip#lcd 应该使用相对路径#格式lcd [directory]#说明directory 指定要更改的本地计算机上的目录。如果没有指定directory将显示本地计算机中当前的工作目录#从本地向FTP批量上传文档echo -------------------------------------- 开始上传 ${ftpPutFileName} 文件--------------------------------------ftp -v -nopen $ipuser $userName $password$ftpFransferTypecd $remotepwdpromptput $ftpPutFileNamebyeEOFecho -------------------------------------- 上传 ${ftpPutFileName} 文件成功 --------------------------------------shell使用lftp传输文件夹直接把文件夹丢到服务器shell源码#!/bin/bash#--------------------------------------------# 自动传输文件到不同环境# authorqinyuanqi#--------------------------------------------#出现异常不往下面走set -e# SFTP配置信息# IPIP192.168.1.199# 端口PORT22# 用户名USERuser# 密码PASSWORDpassword# 需要上传的文件所在目录CLIENTDIR./social# 上传到目标服务器的目录remote/usr/local/nginx/html/h5/#echo $IP---$USER--$PASSWORDif [ -d $CLIENTDIR ]thenecho $CLIENTDIR 是一个文件夹elif [ -f $CLIENTDIR ]thenecho $CLIENTDIR 是一个文件elseecho $CLIENTDIR 不存在fiif [ $1x testx ]thenecho ---- 准备传输 $CLIENTDIR 文件到 ----测试环境# 这样传输到服务器访问项目nginx会报403测试大佬说不能改nginx 配置难搞哦不知道怎么解决了IP192.168.1.166USER测试环境的用户PASSWORD测试环境的密码elseecho ---- 准备传输 $CLIENTDIR 文件到 ----开发环境fiecho ---- 开始上传 ${CLIENTDIR} 文件 ----lftp -u $USER,$PASSWORD $IP cd ${remote}mirror -R $CLIENTDIRbyEOFecho ---- 上传 ${CLIENTDIR} 文件成功 ----lftp 传输文件成功之后访问web程序会报一个ngxin 403的权限错误(如果说测试大佬不同意改ngxin配置的话 那就放弃把)解决ngxin 403使用node思路使用node-ssh 来帮助我们实现自动部署安装依赖package.json文件{devDependencies: {chalk: ^4.0.0,compressing: ^1.5.1,node-ssh: ^10.0.2}}npm install node-ssh –save-dev 传输文件夹npm install compressing –save-dev 压缩文件npm install chalk -save-dev 美化log实例分析实现功能开发环境和测试环境自动打包并传输文件生产环境自动生成压缩包定义调用方式调用方式 vue打包完成之后删除soucemap文件然后使用node 自动发布定义配置配置不同环境不同操作使用nodessh上传文件夹js源码// 开发和测试自动打包到对一个环境生产自动打zip包直接丢给领导上线//命令行颜色const chalk require(chalk)const log console.logconst path require(path)// 连接传输到服务器插件const NodeSSH require(node-ssh)const ssh new NodeSSH()// 取到node执行文件的参数进行打包区分const argv process.argv.slice(2)// 引入压缩文件插件const compressing require(compressing)// 打包后的目录名称const buildDirName social// 打包后文件的路径const distDir ./ buildDirName// 打包后的压缩名称const distZipPath ./ buildDirName .zip// 服务器配置let remoteConfig {}// node deploy.js qq 取到qq来做判断判断是那个环境然后做不同的处理switch (argv[0]) {// 开发环境的一些配置case dev:log(chalk.blue(----开始打包到开发环境----))remoteConfig {host: 开发服务器ip,// 远程端口默认是21// port:21username: 开发服务器用户名,password: 开发服务器密码,remotePath: 服务器部署的地址,}upload()break// 测试环境的一些配置case test:log(chalk.blue(----开始打包到测试环境----))remoteConfig {host: 测试服务器ip,// 远程端口默认是21// port:21username: 测试服务器用户名,password: 测试服务器密码,remotePath: 测试服务器部署地址,}upload()break// 生产环境就自动压缩文件不做别的处理case production:log(chalk.blue(----生产环境----开始压缩文件----))compressing.zip.compressDir(distDir, distZipPath).then(() {log(chalk.green(压缩 ${distZipPath} 成功))}).catch(() {log(chalk.red(压缩 ${distZipPath} 失败))})breakdefault:log(chalk.keyword(orange)(deploy走了没有处理的方式))break}/*** 上传文件到服务器* node 7.6 以上都支持 async 语法*/async function upload() {const failed []const successful []try {// 连接服务器await ssh.connect({host: remoteConfig.host,username: remoteConfig.username,password: remoteConfig.password,})// 刪除目录再上传await ssh.execCommand(rm -rf ../ buildDirName, { cwd: remoteConfig.remotePath })// 开始上传文件到远程指定目录下await ssh.putDirectory(distDir, remoteConfig.remotePath, {recursive: true,concurrency: 10,validate: function(itemPath) {const baseName path.basename(itemPath)console.log(baseName)return (baseName.substr(0, 1) ! . baseName ! node_modules // do not allow dot files) // do not allow node_modules},tick: function(localPath, remotePath, error) {if (error) {failed.push(localPath)} else {successful.push(localPath)}},})} catch (error) {log(chalk.red(upload 上传失败错误信息如下, error))return false}log(chalk.green(传输完成))log(chalk.green(传输成功文件数, successful.length))log(chalk.green(传输失败文件数, failed.length))// 退出process.exit()}node 自动打包遗留问题多个项目每个项目都要引入deploy.js文件感觉有点难受暂时没想到啥好方法。各位观众老爷有啥好方案带带我呗~结束语本文如有错误欢迎指正非常感谢觉得有用的老铁点个双击小红心走一波欢迎灌水来呀互相伤害哈 o(∩_∩)o 哈哈参考资料
http://www.zqtcl.cn/news/52733/

相关文章:

  • 粉色的网站网页设计师培训需要多少钱
  • 如何做网站竞价排名长安网站建设定制
  • 花卉网站源码门户网站属于什么类型的模式
  • 东莞建设局门户网站app软件网站建设
  • 西安网站建设 早晨特产网站建设的目的
  • 网站做成软件免费wordpress 自定义分类
  • 网站开发基本流程图百度站长工具
  • 视频网站开发研究背景网络推广网站
  • 深圳网站建设制作开发公司珠海公众号开发公司
  • 网站页面设计如何快速定稿张家港做网站优化价格
  • 哪些网站可以做英语等级试题wordpress 手册主题
  • 桂阳网站设计南阳网站建设价格
  • 让别人做网站图片侵权芯片设计公司
  • 山东省建设银行网站长春建站优化
  • 制作网站模板发软文的网站
  • 哪些网站可以免费推广做网站实现图片自动压缩
  • c2c网站都有哪些自建网站做外贸
  • 自助建站的软件wordpress 账号 登陆
  • 苏州建设信息网站国际新闻最新消息今天乌克兰
  • 如何建设网站制作平台专业集团门户网站建设费用
  • 上海 网站建设公司十大免费观看软件下载
  • 中国工程建设质量管理协会网站优化大师电脑版官方
  • 网站数据丢失怎么办软件开发要学什么
  • 生成logo的网站如何增加网站的权重
  • 网站建设营销的技巧网站建设套模版
  • 四川网站建设多少钱上海seo排名
  • 优化网站内容网站开发的分工和流程
  • 网站空间续费一年多少钱安阳区号查询
  • 挣钱网站一小时两百网站制作教程dw
  • 没有英文网站怎么做外贸邢台网约车