第一部分:理解前端、后端和它们的协作方式
想象一个餐厅:
前端: 就像餐厅的用餐区、菜单和服务员。它负责展示和交互。顾客(用户)看到精美的菜单(界面),点菜(操作),服务员(前端)接收指令。
后端: 就像后厨。它负责处理业务逻辑和数据。服务员将订单传给后厨,厨师(后端)根据订单做菜、管理库存(数据库),然后把做好的菜(数据)交给服务员。
API: 就像服务员和后厨之间的订单小票。它是一种标准的沟通协议,前端通过 API 向后端发送请求(比如“我要查询用户A的信息”),后端处理完后,再通过 API 返回数据(比如 JSON 格式的用户信息)。
技术栈举例:
第二部分:在本地修改和运行网站
当你从网上下载或克隆一个完整项目到本地后,通常需要以下步骤来运行它。
第1步:获取代码和环境准备
获取代码:通常是一个 Git 仓库。使用
git clone <仓库地址>命令将代码下载到你的电脑。阅读文档:这是最关键的一步! 在项目根目录下寻找
README.md文件。里面通常包含了项目简介、环境要求、安装和运行命令。安装环境:
Node.js:如果项目是前端或基于Node的后端,需要安装 Node.js,它会自带包管理工具
npm。通常推荐使用nvm(Node Version Manager) 来管理多个Node版本。Python/Java/PHP:根据后端语言安装对应的运行环境。
数据库:如 MySQL、PostgreSQL。你可以选择安装到本地,或者使用 Docker 容器来运行,后者更干净、更方便。
第2步:安装依赖
现代项目会使用包管理器来管理第三方库。
前端项目:进入项目根目录(通常有
package.json文件),运行:npm install # 或 yarn install # 或 pnpm install这会在项目里创建一个
node_modules文件夹,存放所有需要的库。后端项目:同样,进入后端代码目录,运行对应的命令(如
npm install,pip install -r requirements.txtfor Python,composer installfor PHP)。
第3步:配置环境变量
项目通常需要一个配置文件来设置环境相关的参数,例如数据库密码、API密钥等。这些敏感信息绝对不能直接写在代码里。
在项目根目录下寻找如
.env.example或.env.local.example这样的文件。复制它,并重命名为
.env。用文本编辑器打开
.env,根据你的本地环境修改配置,比如将数据库连接地址从云数据库改为localhost。
第4步:初始化数据库
创建数据库:在你的本地数据库管理系统(如MySQL)中,创建一个新的、空的数据库。
运行数据库迁移:许多现代后端框架使用“迁移”来管理数据库结构。运行类似以下的命令来创建数据表:
# 例如在 Django 中 python manage.py migrate # 在 Laravel 中 php artisan migrate # 在某些 Node.js 框架中 npx prisma migrate dev(可选)导入种子数据:有时需要一些初始数据(如管理员账号):
php artisan db:seed python manage.py loaddata initial_data.json
第5步:启动服务
通常需要同时启动前端和后端两个服务。
启动后端服务:在后端项目目录下运行启动命令。服务通常会运行在某个端口,例如
http://localhost:3001。# Node.js/Express 示例 npm run start # 或开发模式(代码改动会自动重启) npm run dev # Python/Django 示例 python manage.py runserver # Python/Flask 示例 flask run启动前端服务:打开另一个命令行窗口,进入前端项目目录,运行启动命令。前端开发服务器通常会运行在
http://localhost:3000。npm run dev # 或 npm start此时,浏览器会自动打开
http://localhost:3000,你就可以看到网站前端界面了。前端会通过你在其配置中设置的 API 地址(例如http://localhost:3001)与后端通信。
本地修改:现在,你可以用 VS Code、WebStorm 等编辑器打开项目文件进行修改。前端或后端的开发服务器通常支持热重载,你保存代码后,浏览器页面会自动刷新看到变化。
第三部分:在服务器上搭建网站
服务器部署的核心目标是:让网站能够通过公网域名被任何人访问。流程与本地类似,但更强调稳定性、安全性和性能。
第1步:准备服务器
购买云服务器:选择阿里云、腾讯云、AWS 等厂商,购买一台云服务器(ECS)。通常选择 Linux 系统(如 Ubuntu、CentOS)。
远程连接:通过 SSH 工具(如 Terminal、PuTTY)连接到你的服务器。
服务器初始化:更新系统软件、创建新用户、配置防火墙(开放 80/HTTP、443/HTTPS、22/SSH 端口)。
第2步:在服务器上配置环境
和在本地一样,在服务器上安装所需环境:Git、Node.js、Python、数据库(如 MySQL)等。使用 Docker 来部署所有环境是当前最流行和推荐的方式,可以避免环境冲突问题。
第3步:部署代码和配置
拉取代码:使用 Git 将你的代码仓库克隆到服务器上。为了安全,通常配置 SSH 密钥 而非密码来拉取私有仓库。
安装依赖和构建:和本地步骤类似,安装依赖。但关键的一步是构建前端代码:
npm run build这个命令会将 Vue/React 代码编译、压缩成纯粹的 HTML、CSS、JS 文件,存放在
dist或build文件夹中。在生产环境,我们不需要npm run dev,而是直接提供这些构建好的静态文件。
第4步:配置 Web 服务器和进程管理
进程管理(用于后端):我们需要一个工具来保证后端进程持续运行,即使崩溃也能自动重启。常用工具有:
PM2 (Node.js):非常简单易用。
# 启动一个Node.js应用并守护它 pm2 start app.js --name "my-api" pm2 startup # 设置开机自启
Web 服务器(用于提供前端文件和反向代理):
Nginx:最主流的选择。
将前端构建好的静态文件(
dist目录)放到服务器某个位置(如/var/www/html)。配置 Nginx,让它处理来自域名的请求。
当用户访问
https://www.mysite.com,Nginx 直接返回前端静态文件。当前端需要调用 API(如
/api/users),Nginx 会将这个请求反向代理给在本地某个端口(如3001)运行的后端 Node.js 服务。
这样,浏览器只与 Nginx 通信,避免了直接暴露后端服务,更安全。
第5步:配置域名和 HTTPS
域名解析:在你的域名注册商那里,将你的域名 A 记录解析到云服务器的公网 IP 地址。
安装 SSL 证书:使用 Let‘s Encrypt 的
certbot工具,可以免费、自动化地为你的域名配置 HTTPS。Nginx 配置 SSL 后,所有 HTTP 请求都会被重定向到安全的 HTTPS。
(高级/推荐)使用 Docker 和 Docker Compose 一键部署
这是现代部署的最佳实践。你可以编写一个 docker-compose.yml文件,定义所有服务(Nginx、后端、数据库、Redis等)。在服务器上,只需一个命令即可启动整个应用栈:
# 一键启动所有服务
docker-compose up -d
# 一键停止和清理
docker-compose down这种方式极大地简化了部署流程,保证了环境的一致性。