你肯定遇到过这种情况——熬夜改好的源码,上传到主机后死活打不开页面?去年我同事把公司官网传崩了,老板差点把他祭天。这事儿让我明白,上传源码看似点几下鼠标的事,里头的门道比海底捞调料台还丰富!
为啥总传不上去
先唠点扎心的真相:据统计,40%的上传失败都是因为文件缺失,30%栽在权限配置,剩下30%纯属手滑。常见死法包括:
✅ 把node_modules这种毒瘤文件夹传上去(占10个G空间)
✅ 本地测试用SQLite,上传后没装MySQL驱动
✅ 忘记改数据库配置文件,导致连不上服务器
(拍大腿)去年有个经典案例:某创业公司传完代码发现网站变俄语版,查了半天是本地调试时改了语言包忘记还原!
正确上传四部曲
别急着拖文件,按这个流程走能省三小时排查时间:
1. 术前准备
- 删光调试用的console.log
- 压缩图片到webp格式(省70%空间)
- 检查.gitignore有没有漏网之鱼
2. 选对传送门
- 小项目用FileZilla(传完自动校验MD5)
- 大工程上宝塔面板(支持断点续传)
- 极客派直接git push(需配置SSH密钥)
3. 传文件玄学
- 先传静态资源(图片/CSS/JS)
- 再传PHP/JAVA等动态文件
- 最后传数据库配置文件(防止中途被扫)4. 术后检查**
- 用diff工具对比本地和服务端文件
- 检查文件夹权限(755是黄金数字)
- 跑一遍自动化测试脚本
三大翻车现场急救指南
场景一:页面显示500错误
- 看日志:宝塔面板的/www/wwwlogs/error.log
- 查权限:chmod -R 755 public
- 重加载:service php-fpm restart
场景二:数据库连不上
- 核对config.php里的主机名(别用localhost)
- 检查MySQL用户远程访问权限
- 3306端口有没有放行
场景三:CSS/JS加载失败
- 看路径是绝对还是相对(../容易出错)
- 清除浏览器缓存(Ctrl+F5强制刷新)
- Nginx配置里加gzip压缩
教你们个绝招:在根目录放个test.txt,上传完马**问确认基本环境正常。
工具对比红黑榜
FileZilla vs 宝塔面板
- 传输速度:宝塔快15%(多线程优势)
- 易用性:FileZilla新手友好
- 安全性:宝塔自带SSL加密
Git部署 vs 传统FTP
- 版本控制:Git完胜(可回退)
- 学习成本:FTP简单直接
- 适用场景:频繁更新选Git
命令行 vs 可视化工具
- 逼格指数:SSH命令行满分
- 操作效率:宝塔面板省事
- 出错概率:命令行手滑就凉
个人血泪经验
在这行栽过八年跟头,说点得罪人的话:
- 千万别用中文文件名!某商城系统因为"订单详情页.html"导致Apache崩溃
- 凌晨三点别上传,困的时候容易把test数据库当生产库
- 备份!备份!备份! 重要的事说三遍,推荐用rsync做增量备份
最后甩个暴论:那些宣称"一键部署"的工具,十个有九个要二次配置。传完代码只是开始,真正的战场在服务器配置和调试环节。记住,传十次成功不算本事,能快速定位失败原因才是真本事!