与Capistrano一起部署

mis*_*ero 0 php capistrano

我正在尝试使用Capistrano进入PHP应用程序部署.我有两个配置文件,我需要"编辑",具体取决于我部署它的位置.它是数据库名称和根URL(Codeigniter)等基本内容.我可以自动指定Capistrano编辑吗?假设我想在/system/config/edit.php文件中编辑以下内容:

$test = '';
// edit to
$test = 'Hello World';
Run Code Online (Sandbox Code Playgroud)

谢谢,马克斯

Pas*_*TIN 5

我在这种情况下通常做的事情(即使我不使用Capistrano)是将几个配置文件提交给源代码控制.

例如 :

  • config.php 用于开发机器
    • 此文件是应用程序始终使用的文件
  • config.testing.php
  • config.staging.php
  • config.production.php

在将应用程序部署到服务器时,我只需要将对应于当前环境的文件复制到" config.php" - 因为这个应用程序始终使用该文件.

这意味着我必须在构建过程中执行文件复制,是的,但是:

  • 这意味着不需要任何搜索和替换,这可能会破坏
  • 它还意味着每个配置文件都被提交到SVN (或您正在使用的任何源控制软件)


如果您的配置文件变得过于复杂,并且重复了很多东西,您可以考虑使用一个"默认"配置文件(始终包含该配置文件),以及仅定义依赖于环境的子配置文件.

那个,我之前说的话仍然存在:只是在彼此的开头包含"默认"文件.