php - 您如何将网站部署到您的网络服务器?

标签 php svn deployment webserver

在我的公司,我们的商业网站有 8 名网络开发人员(完全用 PHP 编写,但这不重要)。小组中的每个人都在同一时间从事不同的项目,只要他们完成了任务,就会立即部署它(因为现在业务发展很快)。

目前,开发在一台共享服务器上进行,所有开发人员都在同一代码库上工作(使用 RCS 将文件“锁定”与其他人分开)。当部署到期时,更改的文件将被复制到“暂存”服务器,然后同步脚本将文件上传到我们的主网络服务器,从那里将文件分发到其他 9 台服务器。

很高兴,网络开发团队向我们寻求帮助以改进流程(在我们提示了一段时间之后),现在我们设置他们的开发环境的想法如下:

  • 带有虚拟目录的开发服务器,这样每个人都有自己的代码库,
  • SVN(或任何其他 VCS)以跟踪更改
  • 用于测试的中央服务器保存最新 checkin 的代码

现在的问题是:我们如何设法将更改后的文件部署到服务器上,而不会意外上传其他项目的错误?我的第一个想法是简单地从存储库中导出最新的修订版,但这并不能完全控制文件。

您如何处理这种情况?你有什么样的部署脚本?

(作为一个特殊的挑战:该网站在过去 10 年中有机地发展,因此项目并没有分成小块,而是一个特定功能的文件分布在整个目录树中。)

最佳答案

Cassy - 在完全有序地管理源代码之前,您显然还有很长的路要走,但听起来您已经在路上了!

拥有单独的沙箱肯定会有所帮助。接下来确保该网站始终只是从 subversion 中干净地 check out 特定修订、标记或分支。

我们使用 git,但我们有类似的设置。我们用版本号标记特定版本(在 git 中我们还可以向标记添加描述;对发行说明很有用!)然后我们有一个脚本,任何有权访问“发布”的人都可以运行它需要两个参数——要更新哪个系统(数据中心,如果我们更新测试或生产服务器),然后是版本号(标签)。

该脚本使用 sudo 然后在共享帐户中运行发布脚本。它检查相关版本,最小化 javascript 和 CSS 1 ,将代码推送到环境的相关服务器,然后重启需要重启的。发布脚本的最后一行连接到其中一个网络服务器并跟踪错误日志。

关于 our websites我们在每个页面的底部包含一个 html 注释,其中包含当前服务器名称和版本 - 可以很容易地看到“现在正在运行什么?”

1以及诸如此类的一系列其他内务管理任务...

关于php - 您如何将网站部署到您的网络服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/515280/

相关文章:

javascript - 加载()div中的内容并在内容div中添加div

svn - TortoiseSVN警告: you are trying to relocate your working copy to a different path inside the same repository

SVN 使用 Gradle 提交

security - "execute app as me"部署设置安全吗?

ruby - 使用 Passenger 部署轨道

ios - 使用 XCode Open 构建 iOS 应用程序

php - Ajax 请求卡住网页

php - Laravel 集合键修改

php - 拉维尔 8 : Weird missing required parameter

windows - 如何在窗口 bat 中获取整个 svn 提交消息?