You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于免费版TFS部署PHP-MySQL应用及数据库更新的技术咨询

嘿,针对你在内网环境用免费版TFS(也就是现在的Azure DevOps Server Express)管理跨Windows/Ubuntu的PHP-MySQL应用批量部署的问题,我给你梳理一套完全自给自足的方案,刚好适配你从4台扩到100台的需求:

核心解决方案:内网闭环的持续部署+数据库版本化更新

一、代码批量部署:用TFS Release Pipeline搞定跨平台推送

因为你没有外网,所有工具必须全内网落地,先从基础配置入手:

1. 搭建内网专属的部署代理

  • 分别在Windows和Ubuntu服务器上各部署至少1台自托管代理(Self-Hosted Agent):代理不需要外网,只要能连内网的TFS服务器就行。部署时直接从TFS服务器下载代理安装包(内网共享分发就行),配置时选"无外网访问"模式。
  • 要是项目用Composer拉依赖,记得在内网搭个私有Composer仓库(用Satis或者Toran Proxy),提前把项目需要的所有依赖包同步到仓库里,这样部署时不用碰外网。

2. 写一套跨平台的部署脚本

用PowerShell Core(Windows和Ubuntu都能跑)写统一的脚本,存在TFS代码仓库里,比如:

# 拉取TFS最新代码到服务器目录
# Ubuntu路径示例
git clone http://你的内网TFS地址/项目仓库.git /var/www/your-app
# Windows路径示例
# git clone http://你的内网TFS地址/项目仓库.git C:\inetpub\your-app

# 从内网Composer仓库安装依赖
composer install --no-dev --repository-url=http://内网Composer仓库地址

# Ubuntu专属:配置网站目录权限
chown -R www-data:www-data /var/www/your-app
chmod -R 755 /var/www/your-app

然后在TFS的Release Pipeline里加个「执行PowerShell脚本」任务,针对Windows和Ubuntu服务器分别选对应的代理节点执行就行。

3. 批量管理100台服务器

在TFS里创建部署组(Deployment Groups),把所有Windows和Ubuntu服务器按分组加进去(每台服务器装个轻量的Deployment Agent就行,内网批量分发安装包很快)。部署的时候直接选整个部署组,TFS会自动把代码推送到所有服务器,不用手动一台台操作。

二、数据库持续更新:版本化脚本+自动化执行

数据库更新最怕手动操作出错,尤其是100台服务器,必须靠版本化+自动化解决:

1. SQL脚本版本化管理

在TFS代码仓库里建个db-migrations目录,按版本号命名脚本,比如v1.0.0_initial_schema.sql、v1.0.1_add_user_column.sql。重点要让脚本是幂等的——比如用CREATE TABLE IF NOT EXISTS、ALTER TABLE ... ADD COLUMN IF NOT EXISTS,这样重复执行也不会报错。

2. 自动化执行迁移脚本

用MySQL客户端(Windows和Ubuntu都能装)写个执行脚本,放到Release Pipeline里:

# Ubuntu示例:执行指定版本的SQL脚本
mysql -u 数据库用户名 -p你的密码 -h 数据库地址 < /var/www/your-app/db-migrations/v1.0.1_add_user_column.sql

执行前可以加个步骤:先查数据库里的版本记录(建议建个db_version表存当前版本号),然后自动执行所有未运行过的脚本,完全不用人工干预。

3. 必加的备份前置步骤

在执行更新脚本前,一定要加数据库备份任务,比如:

# Windows备份示例
mysqldump -u 用户名 -p密码 数据库名 > C:\backup\db_backup_$(Get-Date -Format "yyyyMMddHHmmss").sql

# Ubuntu备份示例
mysqldump -u 用户名 -p密码 数据库名 > /backup/db_backup_$(date +%Y%m%d%H%M%S).sql

万一更新出问题,能快速回滚到之前的状态。

三、免费版TFS的小提醒

Azure DevOps Server Express免费版最多支持5个用户访问TFS,但部署功能本身不受用户数限制——也就是说,哪怕你团队超过5人,只要是用部署组自动化推送,完全不影响。

内容的提问来源于stack exchange,提问作者Deon Oosthuizen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:53:26