整个流程可以概括为以下几个核心步骤,下图为您清晰地展示了操作路径:
flowchart TD A[开始: 准备源码与服务器] --> B{选择上传方法}; B -- 推荐 --> C[方法一: 使用 Git]; B -- 简单 --> D[方法二: SFTP/图形工具]; B -- 快速 --> E[方法三: 命令行 SCP]; subgraph C [Git 流程] C1[本地: 推送到远程仓库] --> C2[服务器: 拉取代码]; end subgraph D [SFTP 流程] D1[用 FileZilla 等工具<br>拖拽文件] --> D2[连接到服务器目录]; end subgraph E [SCP 流程] E1[在本地终端执行命令] --> E2[直接复制到服务器]; end C & D & E --> F[服务器端后续操作]; subgraph F [部署与配置] F1[安装依赖<br>[ npm install, pip install]]; F2[环境配置<br>[ .env 文件]]; F3[重启服务<br>[ systemctl, pm2]]; end
我们详细讲解每一步的具体操作。
在上传之前,请确保你已准备好以下内容:
1、本地源代码:确保你的代码在本地是完整的、可运行的,并且已经过测试。
2、服务器信息:你需要知道以下关键信息:
服务器 IP 地址例如123.123.123.123
。
SSH 端口号通常是22
,但有些服务器为了安全会更改它。
用户名例如root
或ubuntu
等。
密码或 SSH 密钥用于身份验证。
3、服务器环境:确保服务器上已经安装了你代码所需的运行环境,
Web 环境Nginx、Apache
编程语言PHP、Python、Node.js、Java 等
数据库MySQL、PostgreSQL、MongoDB 等
依赖管理工具Composer (PHP)、pip (Python)、npm (Node.js) 等
以下是几种最常用的上传方法,请根据你的需求和熟悉程度选择一种。
方法一:使用 Git(推荐用于团队协作和版本管理)
如果你的项目使用 Git 进行版本控制,这是最优雅和高效的方式。
工作流程:你在本地将代码推送到GitHub、GitLab 或Gitee 等远程仓库,然后在服务器上从远程仓库拉取代码。
服务器上的操作(通过 SSH 连接服务器后):
1、安装 Git(如果服务器上没有的话):
# 对于 CentOS/RHEL: sudo yum install git # 对于 Ubuntu/Debian: sudo apt-get install git
2、克隆你的项目:
# 进入你希望存放代码的目录,/var/www/ cd /var/www/ # 克隆项目 git clone https://github.com/你的用户名/你的项目名.git
3、安装项目依赖(根据你的项目类型):
# Node.js 项目 npm install # Python 项目 pip install -r requirements.txt # PHP 项目 composer install
优点:版本控制、易于部署和回滚、方便团队协作。
缺点:需要稍微学习 Git 的基本用法。
方法二:使用 SFTP 和图形化工具(适合新手和单个文件上传)
SFTP 是一种安全的文件传输协议,你可以使用图形化工具像操作本地文件夹一样操作服务器上的文件。
常用工具:
FileZilla (免费、跨平台)
WinSCP (Windows)
Transmit (macOS)
以 FileZilla 为例的步骤:
1、下载并安装 FileZilla。
2、打开 FileZilla,在顶部输入连接信息:
主机你的服务器 IP 地址 (例如sftp://123.123.123.123
)
用户名你的服务器用户名 (例如root
)
密码你的服务器密码
端口SSH 端口 (通常是22
)
3、 点击“快速连接”。
4、 连接成功后,你会看到两个窗口:
左侧(本地站点)你的本地电脑文件。
右侧(远程站点)服务器上的文件。
5、 在左侧找到你的本地项目文件夹,在右侧进入服务器的目标目录(例如/var/www/html
)。
6、 将本地文件或文件夹拖拽 到右侧的服务器窗口中,即可开始上传。
优点:直观、简单,无需记忆命令。
缺点:传输大量小文件时可能较慢,不适合自动化部署。
方法三:使用 SCP 命令(适合习惯命令行的用户)
SCP 是基于 SSH 的命令行文件传输工具,非常高效。
在本地电脑的终端/命令行中操作:
1、上传单个文件:
scp -P 22 /本地/路径/文件名.txt 用户名@服务器IP:/远程/路径/
-P 22
指定端口,如果端口是默认的 22,可以省略。
例如scp ./app.py root@123.123.123.123:/var/www/
2、上传整个文件夹(使用-r
递归参数):
scp -r /本地/项目文件夹/ 用户名@服务器IP:/远程/路径/
例如scp -r ./myproject/ root@123.123.123.123:/var/www/
优点:速度快,适合自动化脚本。
缺点:需要记忆命令,不如图形化工具直观。
上传代码后,工作还没完全结束:
1、配置环境变量:很多项目需要配置数据库连接等信息,通常在.env
文件中,你需要在服务器上创建这个文件并填入正确的配置。
2、设置文件权限:确保 Web 服务器(如www-data
用户)对文件有读取和执行的权限。
# 更改项目目录所有者 chown -R www-data:www-data /var/www/你的项目 # 设置目录和文件权限 chmod -R 755 /var/www/你的项目
3、重启 Web 服务:让更改生效。
# 对于 Nginx sudo systemctl restart nginx # 对于 Apache sudo systemctl restart apache2
4、启动应用:如果你的项目是 Node.js、Python 等应用,可能需要使用进程管理器(如pm2
)来保持其运行。
pm2 start app.js
新手从FileZilla (SFTP) 开始,最直观。
个人开发者/小项目SCP 命令 非常快捷。
正式项目/团队协作Git 是不二之选,它能很好地与 CI/CD(持续集成/持续部署)流程结合。
请根据你的具体情况选择最适合的方法。
文章摘自:https://idc.huochengrm.cn/fwq/18088.html
评论