我想進入與Capistrano的PHP應用程序部署。我有兩個配置文件,需要根據部署位置進行「編輯」。這是基本的東西,如數據庫名稱和根URL(Codeigniter)。我可以自動指定Capistrano編輯嗎?比方說,我想編輯的文件/system/config/edit.php如下:部署與Capistrano
$test = '';
// edit to
$test = 'Hello World';
感謝, 最大
我想進入與Capistrano的PHP應用程序部署。我有兩個配置文件,需要根據部署位置進行「編輯」。這是基本的東西,如數據庫名稱和根URL(Codeigniter)。我可以自動指定Capistrano編輯嗎?比方說,我想編輯的文件/system/config/edit.php如下:部署與Capistrano
$test = '';
// edit to
$test = 'Hello World';
感謝, 最大
我的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,它應該回答您的大部分問題。
我通常做這種情況(即使我不不使用Capistrano)是有幾個配置文件提交到源代碼管理。
例如:
config.php
發展機
config.testing.php
config.staging.php
和部署應用程序到服務器時,我只需要複製對應於當前的環境,「config.php
」的文件 - 這一個是總是使用的應用程序之一。
這意味着我必須在生成過程中做一個文件副本,沒錯,但是:
如果你的配置文件變得過於複雜和重複升你可以考慮擁有一個「默認」配置文件,這個配置文件總是包含在內,而子配置文件只是定義了什麼取決於環境。
那是什麼,我之前說的仍然是:只要在對方開始時包含「默認」文件即可。
如果有查找字符串解決方案,我更喜歡它尋找線解決方案! – mistero 2009-09-20 16:24:00