"刚买的VPS不会上传代码?三小时折腾到凌晨两点的经历你有吗?"
上周帮学妹部署毕设项目,亲眼见证她把node_modules整个传了三次——每次都是权限报错。今天咱们就唠点硬核实操技巧,手把手教你用最稳姿势把代码送上云端。
一、新手必看:三大翻车现场急救指南
场景1:连不上服务器急得抓耳挠腮
► 症状:SSH连接总显示"Connection refused"
→ 检查安全组规则:22端口有没有开放
→ 看实例状态:是不是欠费停机了
→ 试下网页版SSH:阿里云/腾讯云控制台自带终端
场景2:传完代码发现文件权限全乱
► 典型报错:Permission denied
→ 终极解决方案:
bash**chmod -R 755 /var/www/htmlchown -R www-data:www-data /var/www/html
(别直接用777权限,会被黑客当肉鸡)
场景3:环境变量导致程序跑不起来
► 常见于Python/Node.js项目
→ 在宝塔面板装"Python项目管理器"自动配置
→ 手动党用virtualenv:
bash**source venv/bin/activatepip install -r requirements.txt
二、效率翻倍:四款传代码神器实测
► 稳如老狗派:WinSCP(Windows专属)
优势:直接拖拽上传+实时编辑
隐藏技巧:设置"保持远程目录时间戳"避免缓存问题
► 极客最爱:rsync命令
适用场景:增量更新大项目
神操作:
bash**rsync -avz --progress --delete ./dist/ root@your_vps:/var/www/html
(这个--delete参数能自动删多余文件)
► 懒人福音:宝塔面板一键传
路径:网站→对应站点→文件管理
防坑提示:超过100MB的文件要用压缩包上传再解压
► 高危慎用:FTP传输
为啥不推荐?密码明文传输分分钟被截获!非要用的话:
- 装vsftpd改被动模式
- 配置SSL/TLS加密
- 限制IP访问范围
三、避坑锦囊:五个血泪教训总结
别在本地压缩node_modules上传
用npm install --production
重新安装更省时间数据库配置文件记得改权限
my.cnf设成600权限,防止密码泄露Git仓库别带.git目录上传
用git archive
命令打包纯净代码:bash**
git archive HEAD --output=deploy.zip
慎用root账号传代码
新建专用账号:bash**
adduser deployerusermod -aG sudo deployer
传完立即做快照备份
阿里云叫"创建自定义镜像",腾讯云叫"制作实例镜像"
四、高阶玩家:自动化部署流水线搭建
"每次手动传代码太麻烦?" 试试这套组合拳:
- 在Github仓库配置Webhooks
- VPS装PM2监听请求
- 写个自动拉取脚本:
bash**#!/bin/bash cd /var/www/html && git pull origin masternpm install && pm2 restart all
(记得给脚本加执行权限chmod +x)
实测效果:推送代码到仓库后,10秒内自动完成部署。有个做跨境电商的朋友用这招,发布时间从2小时缩短到喝口茶的功夫。
说点大实话:
见过太多人把时间浪费在反复上传代码上,其实最该投资的是自动化工具。上个月给客户部署CI/CD流水线,虽然花了3天配置,但后续每次更新节省了90%时间。记住,你现在折腾的每个技术细节,都是在给未来的自己省时间胶囊。