- 传统方式 (适合个人博客、小型网站):使用 FTP/SFTP 上传文件,配合 cPanel/Plesk 等控制面板管理。
- 现代方式 (适合开发者、中大型项目):使用 Git 和 SSH 进行自动化部署,这是目前行业内的标准做法。
第一步:准备工作(无论哪种方式都需要)
在开始部署之前,你需要准备以下几样东西:

- 一个域名:
www.my-awesome-website.com,你需要购买一个域名,并将它的 DNS 记录 指向你的服务器 IP 地址。 - 一台服务器:
- 云服务器:推荐使用云服务商,如 阿里云、腾讯云、AWS、Google Cloud、DigitalOcean、Vultr 等,它们提供按需付费的灵活方案。
- 虚拟主机:传统选择,适合静态网站或小型动态网站(如 WordPress),管理简单但灵活性差。
- VPS (Virtual Private Server):虚拟主机和云服务器之间的折中方案,性价比高。
- 服务器的操作系统:绝大多数情况下,我们选择 Linux 发行版,Ubuntu 和 CentOS 是最常见的选择,本指南将以 Ubuntu 为例。
- 服务器登录凭证:
- SSH 密钥:强烈推荐使用,比密码更安全,你需要在本地电脑生成,并上传到服务器。
- root 用户名和密码:初始登录和管理服务器使用。
- 你的网站代码:一个包含所有前端文件(HTML, CSS, JavaScript)和后端文件(如 PHP, Python, Node.js 代码)的文件夹。
传统部署(FTP/SFTP + 控制面板)
这种方式最简单直观,适合没有开发背景,只想快速把一个静态网站或用 WordPress 搭建的博客上线的情况。
流程概览
准备代码 → 登录服务器控制面板 → 创建网站和数据库 → 通过 FTP 上传代码 → 完成。
详细步骤
登录服务器控制面板
如果你购买的是云服务器或虚拟主机,服务商通常会提供一个 Web 控制面板,

- cPanel:非常流行,功能强大。
- Plesk:同样功能强大,尤其在 Windows 服务器上。
- 宝塔面板:国产面板,界面友好,对中文用户非常友好,可以自己安装在服务器上。
- 服务商自带面板:如阿里云的“云服务器 ECS”控制台。
登录后,你会看到一个图形化界面,管理服务器变得非常容易。
创建网站和数据库(如果需要)
- 对于静态网站:你只需要创建一个“网站”或“托管域”。
- 在面板中找到“网站”、“域名管理”或类似的选项。
- 添加你的域名(如
my-awesome-website.com),面板会自动为你创建一个网站目录,通常是/home/用户名/public_html或/var/www/html/你的域名。
- 对于动态网站(如 WordPress, Drupal):你还需要创建一个数据库。
- 在面板中找到“MySQL 数据库”或“数据库”选项。
- 创建一个新的数据库(如
my_wp_db)和一个数据库用户(如my_wp_user),并为该用户授予对新数据库的所有权限,记住数据库名、用户名和密码。
使用 FTP/SFTP 客户端上传代码
你需要一个 FTP/SFTP 客户端来连接服务器并上传你的文件,推荐使用 FileZilla(免费、跨平台)。

- 获取 FTP 信息:在你的服务器控制面板中,找到“FTP 账户”或类似选项,创建一个新的 FTP 账户,你会得到:
- 主机名:通常是你的服务器 IP 地址。
- 用户名:你刚创建的 FTP 用户名。
- 密码:你设置的 FTP 密码。
- 端口:SFTP 的默认端口是
22。
- 连接并上传:
- 打开 FileZilla,输入上述信息进行连接。
- 连接成功后,你会看到远程服务器的文件结构,导航到你的网站根目录(
/public_html)。 - 将你本地的网站代码文件夹内的所有文件和文件夹,拖拽到 FileZilla 的右侧远程窗口中。
完成部署
上传完成后,访问你的域名 http://my-awesome-website.com,如果一切正常,你的网站就显示出来了。
- 如果需要安装程序(如 WordPress):上传完成后,访问你的域名,安装向导会自动启动,按照提示操作,在填写数据库信息时,使用第二步创建的数据库名、用户和密码。
现代部署(Git + SSH)
这种方式是专业开发者的首选,它允许你通过代码仓库(如 GitHub, GitLab)来管理网站代码,每次推送代码到仓库,服务器就会自动拉取最新代码并更新网站,这个过程称为 CI/CD (持续集成/持续部署)。
流程概览
准备服务器环境 → 在服务器上配置 Git 仓库 → 设置 SSH 密钥免密登录 → 配置 Web 服务器(Nginx/Apache)→ 本地推送代码触发部署。
详细步骤
准备服务器环境
以 Ubuntu 为例,登录你的服务器(通过 SSH):
# 更新软件包列表 sudo apt update # 安装必要的软件 sudo apt install -y git nginx # nginx 是一个流行的 Web 服务器,也可以用 apache
在服务器上创建一个 Git 仓库
这个仓库将用来接收你的代码推送。
# 创建一个目录来存放你的网站项目 sudo mkdir -p /var/www/my-awesome-website.com cd /var/www/my-awesome-website.com # 初始化一个 Git 仓库 sudo git init # 创建一个 post-receive 钩子,这是实现自动部署的关键 # 这个脚本会在你向服务器推送代码后自动执行 sudo nano hooks/post-receive
在 post-receive 文件中,输入以下内容:
#!/bin/bash
# 定义网站的部署目录
DEPLOY_DIR="/var/www/my-awesome-website.com"
# 清理旧文件并检出最新代码
cd $DEPLOY_DIR
git --git-dir=.git fetch origin
git --git-dir=.git reset --hard origin/main # 假设你的主分支是 main
# 如果需要,可以在这里执行其他命令,如安装依赖、编译资源等
# 如果你的项目是 Node.js:
# npm install
# npm run build
# 设置正确的文件所有者和权限
sudo chown -R www-data:www-data $DEPLOY_DIR
sudo find $DEPLOY_DIR -type d -exec chmod 755 {} \;
sudo find $DEPLOY_DIR -type f -exec chmod 644 {} \;
echo "部署完成!"
保存并退出(在 nano 中是 Ctrl+X, 然后按 Y, 再按 Enter)。
然后给这个钩子文件添加可执行权限:
sudo chmod +x hooks/post-receive
配置 SSH 免密登录
为了能从你的电脑向服务器推送代码,你需要设置 SSH 密钥。
-
在本地电脑上生成 SSH 密钥(如果还没有的话):
ssh-keygen -t ed25519 -C "your_email@example.com"
一路回车即可,密钥会默认保存在
~/.ssh/id_ed25519。 -
将公钥复制到服务器:
# 将公钥内容复制到服务器的 authorized_keys 文件中 cat ~/.ssh/id_ed25519.pub | ssh root@你的服务器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
-
测试连接:
ssh root@你的服务器IP
如果能直接登录,无需密码,说明设置成功。
配置 Web 服务器
我们需要告诉 Nginx 你的网站文件在哪里。
# 创建 Nginx 配置文件 sudo nano /etc/nginx/sites-available/my-awesome-website.com
输入以下配置:
server {
listen 80;
server_name my-awesome-website.com www.my-awesome-website.com;
root /var/www/my-awesome-website.com; # 指向你的 Git 仓库目录
index index.html index.htm; # 你的首页文件名
location / {
try_files $uri $uri/ =404;
}
# 如果是 PHP 项目,需要添加以下配置
# location ~ \ 