把代码从本地传到服务器,是每个开发者绕不开的事。很多人第一次做时总觉得神秘,其实就像搬家一样——东西打包好,搬到新地方,开门入住。只要步骤清楚,整个过程并不复杂。
常见的部署方式
最常用的方式是通过 SSH 配合 Git 或直接用 SCP 传输文件。比如你写完一个网页项目,想放到云服务器上运行,可以直接用 Git 拉取代码,也可以把打包好的文件传上去。
假设你的服务器已经装好了 Nginx,项目放在 /var/www/html/myapp 目录下。你可以先在本地提交代码:
git add .
git commit -m "上线新功能"
git push origin main
然后登录服务器,进入项目目录拉取更新:
ssh user@your-server-ip
cd /var/www/html/myapp
git pull origin main
这样代码就更新了。如果没用 Git,也可以用 SCP 命令把文件传过去:
scp -r ./dist/* user@your-server-ip:/var/www/html/myapp/
自动化部署小技巧
每次手动上传太麻烦?可以加个简单的部署脚本。比如在服务器上写个 deploy.sh:
#!/bin/bash
cd /var/www/html/myapp
git pull origin main
systemctl reload nginx
给它执行权限:
chmod +x deploy.sh
以后只需要运行 ./deploy.sh,就能自动更新代码并刷新服务。
注意权限和路径
传完代码别急着庆祝,常有人卡在权限问题上。比如静态资源打不开,提示 403 错误,多半是文件夹权限没设对。可以这样修复:
chown -R www-data:www-data /var/www/html/myapp
chmod -R 755 /var/www/html/myapp
这样 Nginx 才能正常读取文件。
用 PM2 管理 Node.js 项目
如果你部署的是 Node.js 应用,直接跑 node app.js 是临时的,断开终端就停了。推荐用 PM2 守护进程:
npm install -g pm2
pm2 start app.js --name "my-node-app"
之后关掉终端也不会影响服务运行。需要看日志时:
pm2 logs my-node-app
重启也很方便:
pm2 restart my-node-app
这些命令记熟了,日常维护轻松不少。
别忘了环境变量
本地开发时数据库地址可能是 localhost,但线上得换成真实 IP 或域名。建议把配置抽成环境变量文件。比如创建 .env:
DB_HOST=192.168.1.100
DB_USER=prod_user
DB_PASS=strongpassword
确保这个文件不在 Git 里,只放在服务器上,避免泄露敏感信息。
部署这件事,做得多了就顺手了。关键是把流程理清楚,该设权限的设权限,该用工具的用工具。别想着一步到位,先跑通再优化,慢慢你就发现,代码上服务器也没那么难。