把写好的代码放到服务器上,是每个开发者都会遇到的事。很多人第一次做时总觉得神秘,其实就像搬家一样——你打包好东西,找个车运过去,再打开用就行。
准备工作:确认你的“目的地”
在部署前,先搞清楚服务器的地址、登录账号和密码(或密钥)。比如你买了一台阿里云ECS,系统可能是Ubuntu,那你就可以通过SSH连上去:
ssh ubuntu@your-server-ip
连上去之后,通常会在家目录下建一个项目文件夹,比如 ~/myapp,这就是你代码的新家。
传输代码的几种方式
最简单的办法是用 scp 命令,适合小项目。你在本地执行:
scp -r ./dist/* ubuntu@your-server-ip:/home/ubuntu/myapp/
这会把本地打包好的前端文件全部传到服务器对应目录。如果你改了代码想重新上传,重复这个命令就行。
更大的项目一般用 Git。先在服务器上克隆你的仓库:
git clone https://github.com/yourname/myapp.git
以后每次更新,只要在本地 push,然后去服务器上 pull 就行:
git pull origin main
这样更省流量,也方便回滚版本。
让代码跑起来
传完代码还不算完,得让它运行。如果是Node.js项目,可能需要启动服务:
npm install
node server.js
但这样关掉终端就停了,得用 pm2 这类工具守护进程:
pm2 start server.js --name "myapp"
前端静态页面更简单,装个 Nginx,把 root 指向你的代码目录即可:
server {
listen 80;
server_name your-domain.com;
root /home/ubuntu/myapp;
index index.html;
}
改完配置别忘了重载:
sudo nginx -s reload
常见问题处理
有时候代码传上去了却打不开,第一反应应该是看权限。比如你的HTML文件如果权限是600,Nginx读不了,就会403。改成644就行:
chmod -R 644 /home/ubuntu/myapp
另一个常见问题是端口没开。比如你Node服务监听3000端口,但服务器防火墙没放行,外面也访问不了。记得在云平台控制台开放对应端口。
部署不是一次性的活儿。改了样式、加了功能,都得重新上传。形成一套固定流程后,你会发现这事儿比点外卖还顺手。