Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将网站导入SVN存储库时,我应该如何处理网站配置文件?_Php_Svn_Version Control - Fatal编程技术网

Php 将网站导入SVN存储库时,我应该如何处理网站配置文件?

Php 将网站导入SVN存储库时,我应该如何处理网站配置文件?,php,svn,version-control,Php,Svn,Version Control,我开始为我们所有的网站使用SVN存储库,我想知道关于网站配置文件的最佳实践是什么 它们是否应该存储在存储库中?问题是,对于工作副本,网站的配置需要与实时网站的配置不同。如果我编辑一个工作副本的配置文件,以便在我提交回存储库时可以在我的机器上进行测试,那么配置文件也会在那里更新,然后可能会上载到实时站点 人们通常如何处理配置文件,有没有办法告诉SVN在执行提交等操作时跳过配置文件?通常,如果配置文件存储重要信息,最好将其放入版本控制中 如果你在这里谈论ASP.NET站点,我肯定会将配置文件放在SV

我开始为我们所有的网站使用SVN存储库,我想知道关于网站配置文件的最佳实践是什么

它们是否应该存储在存储库中?问题是,对于工作副本,网站的配置需要与实时网站的配置不同。如果我编辑一个工作副本的配置文件,以便在我提交回存储库时可以在我的机器上进行测试,那么配置文件也会在那里更新,然后可能会上载到实时站点


人们通常如何处理配置文件,有没有办法告诉SVN在执行提交等操作时跳过配置文件?

通常,如果配置文件存储重要信息,最好将其放入版本控制中

如果你在这里谈论ASP.NET站点,我肯定会将配置文件放在SVN中。您可以使用inheritInChildApplications和allowOverride在ASP.NET配置文件中玩一些小把戏,这可能允许您强制本地调试版本使用与最终生产版本不同的设置,尽管使用相同的配置文件:只需将网站作为本地调试IIS中的子目录挂载,并锁定您需要的几个部分我想推翻。当然,您可以只包含两个配置键,用于特别棘手的位,并检入要加载的代码

一般来说,将SVN中的任何内容都部署成一个涉及尽可能少的手动步骤的过程是一个很好的实践。这使您更有可能在时间紧迫的情况下正确地执行此操作,并使灾难恢复更容易启动—例如,当您的数据中心出现漏洞时,您希望将网站安装到某个临时框中,直到您将这些备份整理好。理想情况下,svn签出或导出(最多包含一个编译)应该足以使网站启动并运行。我甚至在svn中直接包含二进制dll依赖项,比如javascript压缩器等等,这样它就可以运行,而不需要在服务器上安装大量自定义库,并且只需使用msbuild就可以在开发机器上编译


对于PHP,原理是相同的。然而,你需要不同的技巧。例如,您可以编写配置文件,以便它检查一些全局系统环境变量,然后覆盖所选的设置(如果它是开发人员机器)。例如,我有一个类似的设置,我检查IP地址;所有开发机器都位于特定的IP块中;除非一台机器在该IP块中,否则它被认为是一台不启用各种跟踪等选项的生产机器。您还可以检查主机名,或者检查所有开发人员同意在其开发机器上设置的任何旧环境变量。

通常,如果配置文件存储重要信息,最好将其放入版本控制中

如果你在这里谈论ASP.NET站点,我肯定会将配置文件放在SVN中。您可以使用inheritInChildApplications和allowOverride在ASP.NET配置文件中玩一些小把戏,这可能允许您强制本地调试版本使用与最终生产版本不同的设置,尽管使用相同的配置文件:只需将网站作为本地调试IIS中的子目录挂载,并锁定您需要的几个部分我想推翻。当然,您可以只包含两个配置键,用于特别棘手的位,并检入要加载的代码

一般来说,将SVN中的任何内容都部署成一个涉及尽可能少的手动步骤的过程是一个很好的实践。这使您更有可能在时间紧迫的情况下正确地执行此操作,并使灾难恢复更容易启动—例如,当您的数据中心出现漏洞时,您希望将网站安装到某个临时框中,直到您将这些备份整理好。理想情况下,svn签出或导出(最多包含一个编译)应该足以使网站启动并运行。我甚至在svn中直接包含二进制dll依赖项,比如javascript压缩器等等,这样它就可以运行,而不需要在服务器上安装大量自定义库,并且只需使用msbuild就可以在开发机器上编译


对于PHP,原理是相同的。然而,你需要不同的技巧。例如,您可以编写配置文件,以便它检查一些全局系统环境变量,然后覆盖所选的设置(如果它是开发人员机器)。例如,我有一个类似的设置,我检查IP地址;所有开发机器都位于特定的IP块中;除非一台机器在该IP块中,否则它被认为是一台不启用各种跟踪等选项的生产机器。您还可以检查主机名,或者只检查所有开发人员同意在其开发机器上设置的任何旧环境变量。

如果您的开发/生活环境之间的变量仅限于连接字符串和应用设置,则您可以将web.config拆分为单独的文件,然后 为每个环境加载不同的文件。这样,您就可以将所有内容都签入SVN,并根据部署到的环境更新webconfig中的文件名引用


编辑:刚刚看到您在谈论PHP。

如果您的开发/生活环境之间的变量仅限于连接字符串和应用设置,那么您可以将web.config拆分为单独的文件,并为每个环境加载不同的文件。这样,您就可以将所有内容都签入SVN,并根据部署到的环境更新webconfig中的文件名引用


编辑:刚刚看到您在谈论PHP。

通常,最佳做法是在版本控制下存储所有自定义配置文件。您可能希望为生产和开发版本保留一个单独的配置文件


如果可能,尝试将依赖于部署环境连接字符串、路径等的所有配置节提取到单独的文件中。然后从主公共配置文件链接到它们,这样当您将环境从开发更改为生产时,只需更新引用即可。

通常,最佳做法是在版本控制下存储所有自定义配置文件。您可能希望为生产和开发版本保留一个单独的配置文件


如果可能,尝试将依赖于部署环境连接字符串、路径等的所有配置节提取到单独的文件中。然后从主公共配置文件链接到它们,这样当您将环境从开发更改为生产时,只需更新引用即可。

我认为最好将配置文件保存在SVN中。关于登台/生产环境的设置,我们要做的是为每个环境提供单独的配置文件,然后在构建过程中使用Ant和MSBuild交换它们。也就是说,我们可以触发生产构建,它将复制生产web.config文件。

我认为最好将配置文件保存在SVN中。关于登台/生产环境的设置,我们要做的是为每个环境提供单独的配置文件,然后在构建过程中使用Ant和MSBuild交换它们。也就是说,我们可以触发一个生产构建,它将复制生产web.config文件。

我绝对会将该文件置于版本控制中,因为它通常对网站的功能至关重要。要阻止它加载到live,您可以查看构建脚本,例如,它将使用“live”版本切换配置的开发版本


很抱歉,忽略链接,只是看到了您关于这是一个PHP站点的评论-原则是一样的。

我绝对会将该文件置于版本控制中,因为它通常对站点的功能至关重要。要阻止它加载到live,您可以查看构建脚本,例如,它将使用“live”版本切换配置的开发版本


抱歉,忽略链接,只是看到你关于这是一个PHP网站的评论-原则是一样的。

你说的是什么样的网站?ASP.NET网站?这是针对apache还是IIS的?配置文件有多复杂?它是一个PHP站点。每个站点都有一个config.php文件,它包含在大多数页面中。它基本上是一个包含大量常量的文件,其中存储了数据库连接详细信息和路径等。根据站点存储的位置,配置文件会有所不同。因此,本地测试服务器上的值与实时生产服务器上的值不同。工作副本也必须有不同的价值观。你在说什么样的网站?ASP.NET网站?这是针对apache还是IIS的?配置文件有多复杂?它是一个PHP站点。每个站点都有一个config.php文件,它包含在大多数页面中。它基本上是一个包含大量常量的文件,其中存储了数据库连接详细信息和路径等。根据站点存储的位置,配置文件会有所不同。因此,本地测试服务器上的值与实时生产服务器上的值不同。同样,工作副本也必须有不同的值。但是,对于工作副本,配置文件的内容需要不同,我该如何处理这个事实呢,本地开发服务器和实时生产服务器?如上所述:在单独的代码块中定义每个环境的设置,并打开环境变量或IP地址或服务器名称,理想情况下,使用live设置作为默认选项,以便站点能够以最低配置在该环境中工作。但是,对于工作副本,配置文件的内容需要不同,我该如何处理这一事实呢,本地开发服务器和实时生产服务器?如上所述:在单独的代码块中定义每个环境的设置并打开
一个环境变量或IP地址或服务器名称,理想情况下使用live设置作为默认选项,以便站点在该环境中以最少的配置工作。刚才看到你在谈论PHP我们是ASP.Net,但同样的原则应该适用,我想减去关于MSBuild的部分…刚才看到你在谈论PHP,我们是ASP.Net,但是同样的原则应该适用,我想减去关于MSBuild的部分…如果您对开发和live站点使用不同的主机名,那么您可以在php中查找主机名并包含相应的自定义配置文件。如果您对开发和live站点使用不同的主机名,那么您可以在php中查找主机名并包含相应的自定义配置文件文件