2009-09-20 224 views
0

我想进入与Capistrano的PHP应用程序部署。我有两个配置文件,需要根据部署位置进行“编辑”。这是基本的东西,如数据库名称和根URL(Codeigniter)。我可以自动指定Capistrano编辑吗?比方说,我想编辑的文件/system/config/edit.php如下:部署与Capistrano

$test = ''; 
// edit to 
$test = 'Hello World'; 

感谢, 最大

+0

如果有查找字符串解决方案,我更喜欢它寻找线解决方案! – mistero 2009-09-20 16:24:00

回答

0

我的Unix是知识不够完美,所以我不能完全得到你想要的语法。但是,Capistrano允许您通过在您的配置中调用:run_method来直接使用Unix命令行。

Capistrano酒店代码可能类似于以下内容:

run "grep -R --files-with-matches '$test = "";' /system/config/ | xargs perl -pi~ -e 's/\$test = "";/$test = "Hello World";/'" 

我会检查了在实现它生活虽然之前预期的工作是查找和替换功能。

如果您需要任何帮助,我建议您查看Capistrano Handbook,它应该回答您的大部分问题。

5

我通常做这种情况(即使我不不使用Capistrano)是有几个配置文件提交到源代码管理。

例如:

  • config.php发展机
    • 这个文件是一个总是使用的应用程序
  • config.testing.php
  • config.staging.php
  • 的一个

和部署应用程序到服务器时,我只需要复制对应于当前的环境,“config.php”的文件 - 这一个是总是使用的应用程序之一。

这意味着我必须在生成过程中做一个文件副本,没错,但是:

  • 这意味着没有必要对任何搜索和替换,可以打破
  • 这也意味着每一个配置文件都致力于为SVN (或其他源代码控制软件,你正在使用)


如果你的配置文件变得过于复杂和重复升你可以考虑拥有一个“默认”配置文件,这个配置文件总是包含在内,而子配置文件只是定义了什么取决于环境。

那是什么,我之前说的仍然是:只要在对方开始时包含“默认”文件即可。