目录

  1. 第一步:准备工作(上传前必须知道)
    • 获取FTP服务器信息
    • 准备好你的源码文件
    • 选择合适的FTP客户端工具
  2. 第二步:使用图形化FTP客户端(推荐新手)
    • Windows系统:使用 FileZilla
    • macOS系统:使用 FileZilla 或 Cyberduck
    • 通用操作步骤(连接、上传、断开)
  3. 第三步:使用命令行(适合开发者)
    • Windows系统:使用 PowerShell
    • macOS / Linux系统:使用 Terminal
  4. 第四步:高级技巧与注意事项
    • 如何处理文件路径问题?
    • 如何使用SFTP代替FTP?(更安全)
    • 上传后如何验证?
    • 常见问题排查

第一步:准备工作

在开始上传之前,请确保你已经准备好以下信息,这是连接服务器的“钥匙”。

源码上传到ftp教程
(图片来源网络,侵删)

获取FTP服务器信息

从你的服务器管理员或托管服务提供商处获取以下信息:

  • 主机名: 服务器的IP地址或域名(ftp.yourdomain.com168.1.100)。
  • 用户名: 用于登录FTP服务器的账户名。
  • 密码: 对应账户的密码。
  • 端口: FTP的默认端口是 21,如果服务器使用了其他端口,请务必确认。强烈建议使用SFTP(端口22),因为它更安全。
  • 上传路径: 你需要将源码上传到服务器上的哪个具体目录?(/var/www/html//public_html/),如果不清楚,可以先上传到根目录,登录服务器后查看。

准备好你的源码文件

将你所有的源码文件整理在一个文件夹中,并确保文件名和路径中不包含中文或特殊字符,以避免兼容性问题。

选择合适的FTP客户端工具

  • 图形化客户端(推荐): 像操作文件浏览器一样直观,适合大多数人。
    • FileZilla: 免费、开源、跨平台(Windows, macOS, Linux),功能强大,是目前最受欢迎的选择。
    • Cyberduck: 免费、开源,界面简洁,在macOS上非常流行。
  • 命令行工具: 适合开发者,自动化脚本,效率高。
    • Windows: PowerShellCMD 内置命令。
    • macOS / Linux: Terminal 内置命令。

第二步:使用图形化FTP客户端(以 FileZilla 为例)

FileZilla 是最通用的选择,这里以它为例进行讲解,其他客户端(如Cyberduck)的界面和操作逻辑也大同小异。

下载并安装 FileZilla

访问 FileZilla 官网 下载并安装适合你操作系统的版本。

源码上传到ftp教程
(图片来源网络,侵删)

连接FTP服务器

打开 FileZilla,你会看到如下界面:

在顶部的快速连接栏中,填入你准备好的信息:

  • 主机: ftp.yourdomain.com
  • 用户名: your_username
  • 密码: your_password
  • 端口: 21 (或你的服务器指定端口)

然后点击 “快速连接” 按钮。

上传源码文件

连接成功后,FileZilla 界面会分为左右两部分:

  • 左侧: 你本地电脑的文件和文件夹。
  • 右侧: 你远程服务器上的文件和文件夹。

上传操作非常简单:

  1. 在左侧找到并双击进入你存放源码的本地文件夹。
  2. 在右侧,双击进入你想要上传到的远程目录(public_html)。
  3. 在左侧的本地文件夹中,选中你所有的源码文件和文件夹。
  4. 将选中的文件/文件夹拖拽到右侧的远程窗口中,或者直接点击右键,选择 “上传”

你会看到上传进度条,等待上传完成即可。

断开连接

上传完成后,点击左上角的 “断开连接” 按钮,安全地退出FTP会话。


第三步:使用命令行(以 macOS/Linux 为例)

对于熟悉命令行的开发者来说,这种方式更快,也更容易集成到自动化流程中。

连接FTP服务器

打开你的终端(Terminal)。

使用 ftp 命令连接服务器:

ftp ftp.yourdomain.com

系统会提示你输入用户名和密码:

Name (ftp.yourdomain.com:your_local_user): your_username
331 Please specify the password.
Password: 

输入密码(输入时不会显示任何字符),然后按回车,如果连接成功,你会看到 ftp> 提示符。

上传源码文件

ftp 命令行模式下,一些常用命令如下:

  • ls: 列出当前远程目录下的文件。
  • cd <目录名>: 进入远程服务器的指定目录。
  • lcd <本地路径>: 切换到本地电脑的指定目录(非常重要!)。
  • put <本地文件名>: 上传单个文件。
  • mput <本地文件名1> <本地文件名2> ...: 上传多个文件(可以使用通配符 )。
  • mkdir <目录名>: 在远程服务器创建新目录。
  • bye: 退出FTP连接。

完整上传示例: 假设你的源码在 /Users/yourname/Projects/my-app 目录下,要上传到服务器的 /var/www/html/ 目录。

# 1. 连接服务器
ftp ftp.yourdomain.com
# 2. 输入用户名和密码
# 3. 切换到本地源码目录
lcd /Users/yourname/Projects/my-app
# 4. 切换到远程目标目录
cd /var/www/html/
# 5. 上传所有文件(包括文件夹内的)
# 使用 mput * 会提示每个文件,输入 'y' 确认,可以使用 'prompt' 命令关闭交互式提示。
prompt off
mput *
# 或者,如果服务器支持,可以使用更现代的 `mput -r` 来递归上传文件夹
# mput -r ./
# 6. 上传完成后,退出
bye

第四步:高级技巧与注意事项

如何处理文件路径问题?

  • 绝对路径 vs 相对路径: 在图形化客户端中,你通过双击进入目录,使用的是相对路径,在命令行中,cdlcd 命令可以帮你精确导航。
  • 文件权限: 上传后,你可能需要通过SSH登录服务器,修改源码文件夹的权限,以确保Web服务器(如Nginx, Apache)有正确的读写执行权限。chmod -R 755 /var/www/html/your-project

如何使用SFTP代替FTP?(强烈推荐)

传统的FTP在传输数据时是明文的,用户名、密码和文件内容都可能被窃取。SFTP (SSH File Transfer Protocol) 是基于SSH的安全文件传输协议,对数据进行加密,是现代开发的标准做法。

  • FileZilla 中使用SFTP:

    1. 在主机地址前加上 sftp://sftp://ftp.yourdomain.com
    2. 或者,在连接设置中,将协议从 "FTP - File Transfer Protocol" 改为 "SFTP - SSH File Transfer Protocol"。
    3. 端口通常使用 22
    • 操作和FTP完全一样,但安全性大大提高。
  • 命令行中使用SFTP: 命令更简洁,交互体验更好。

    sftp your_username@ftp.yourdomain.com

    登录后,命令类似,但更强大:

    • put: 上传文件
    • get: 下载文件
    • ls, cd, lcd, mkdir: 同上
    • lls: 查看本地文件列表
    • exit: 退出

上传后如何验证?

  1. 通过浏览器访问: 在浏览器中输入你的域名,看看网站是否正常显示。
  2. 通过SSH登录: 连接到服务器,用 lscd 命令检查文件是否在正确的位置,并用 catless 命令检查关键文件内容是否正确。

常见问题排查

  • 连接被拒绝:
    • 检查主机名、用户名、密码、端口是否正确。
    • 确认服务器防火墙是否允许该端口的连接。
    • 确认FTP/SFTP服务是否在服务器上正常运行。
  • 上传失败/权限被拒绝:
    • 检查你是否有权限写入目标目录。
    • 检查本地文件是否被其他程序占用。
    • 确保你没有试图上传系统保留文件(如 Thumbs.db)。
  • 文件乱码:
    • 确保你的源码文件是使用UTF-8编码保存的。
    • 在FileZilla中,可以设置字符编码为 UTF-8编辑 -> 设置 -> 连接 -> 字符集)。

方法 优点 缺点 适用人群
图形化客户端 直观易用,可视化操作,支持拖拽 需要额外安装软件 新手、绝大多数开发者
命令行 无需安装,速度快,适合自动化和脚本 需要学习命令,不直观 经验丰富的开发者、运维人员

对于源码上传这种任务,强烈推荐使用支持SFTP的图形化客户端(如FileZilla),它既简单安全,又能满足所有日常需求,如果你正在构建CI/CD流程,那么命令行或自动化脚本会是更好的选择。