e代劍客——溫柔一刀

          生活就像海洋,只有意志堅強的人,才能到達彼岸

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            76 隨筆 :: 7 文章 :: 215 評論 :: 0 Trackbacks
          capistrano2.0基本使用步驟是:

          1.install capistrano

          ???gem?install?capistrano??

          2.進入rails工程根目錄執行
          ??
          ???capify?.??

          ? 這個命令會生成兩個文件,一個是Capfile文件,在應用的根目錄下,另一個是deploy.rb文件,在應用的config目錄下
          ? 可以用cap -T 查看所有task, cap -e deploy 解釋deploy任務的詳情? 。

          3.修改config/deploy.rb文件

          set?:application,?"dcrm2"??
          set?:repository
          ,??"svn://10.200.106.168/crm2/trunk"??
          set?:svn_username
          ,?"username"?
          ?set?:svn_password
          ,?"password"??
          set?:use_sudo
          ,false??
          set?:deploy_to
          ,?"/usr/local/apache22/htdocs/#{application}"??
          set?:user
          ,?"username"??
          set?:password
          ,?"password"??
          depend?:local
          ,?:command,?"convert"??
          depend?:remote
          ,?:command,?"iconv"??
          #?If?you?aren't?using?Subversion?to?manage?your?source?code
          ,?specify??
          #?your?SCM?below:??
          #?set?:scm
          ,?:subversion??
          role?:app
          ,?"www.derbysoft.com"??
          role?:web
          ,?"www.derbysoft.com"??
          role?:db
          ,??"www.derbysoft.com",?:primary?=>?true??
          task?:create_file_link
          ,?:roles?=>?:web?do???
          ??run?
          "ln?-s?#{deploy_to}/shared/files/?#{deploy_to}/current/public/files"???
          end??
          task?:chmod
          ,?:roles?=>?:web?do??
          ??run?
          "chmod?-fR?755?#{deploy_to}/current/script/*"??
          end??
          after?
          "deploy:symlink",?:chmod,?:create_file_link??


          其中
          application:Rails應用名
          repository:版本管理系統(默認svn)的鏈接URL
          svn_username:svn用戶名
          svn_password:svn密碼
          把use_sudo設為false是不用sudo
          deploy_to:應用部署的路徑
          user:ssh用戶名
          password:ssh用戶名
          depend:檢查某些依賴
          app:應用服務器列表
          web:web服務器名列表
          db:數據庫服務器列表
          create_file_link和chmod是自己定義的task,我在這里定義create_file_link是建一個link而使public文件夾下的files目錄不受版本控制的影響,因為files目錄下是用戶自己上傳的一些東西,不方便放在版本控制里面。定義chmod是為了改變服務器上某些文件的權限,主要是為了給script目錄下的文件加上可執行權限,要不然默認是不可執行的。這兩個task會在deploy:symlink任務執行完畢之后執行(執行cap deploy命令時會先執行一些任務,依賴的其中最后一個task是deploy:symlink)

          4.創建spin文件

          在應用的script文件夾下創建一個spin文件(沒有后綴名)
          如果用Mongrel方式啟動應用,內容大概是這樣子的:

          /usr/local/apache22/htdocs/dcrm2/current/script/process/spawner?-p?3000?-i?1??

          用cap deploy命令部署應用時,會調用spin文件啟動/重啟服務

          5.初始化服務器上的運行環境???

          ????cap?deploy
          :setup??

          ???這一步會連上服務器,創建一些目錄:

          ???#{deploy_to}/??
          ???#{deploy_to}/releases??
          ???#{deploy_to}/shared??
          ???#{deploy_to}/shared/log?
          ???#{deploy_to}/shared/system??
          ???#{deploy_to}/shared/pids??

          releases目錄里面會存放所有的發布版本
          shared目錄是為了共享文件,比如log文件,還可以自己定義共享的文件,比如我前面定義了一個files共享文件夾
          在第一此部署后還會產生一個current鏈接,它會自動指向releases目錄里面最新的版本

          6.deploy

          ? 執行cap deploy命令,部署完成(貌似第一次要先執行cap deploy:start,要不重啟服務會失敗)。
          ? 如果部署的時候要遷移數據,執行cap deploy:migrations完成遷移和部署
          posted on 2007-12-30 17:16 溫柔一刀 閱讀(545) 評論(0)  編輯  收藏 所屬分類: ROR

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          聯系偶 zhupanjava@gmail.com 溫柔一刀
          主站蜘蛛池模板: 武义县| 马尔康县| 太保市| 怀柔区| 稷山县| 察隅县| 墨玉县| 紫金县| 五峰| 诸暨市| 湖北省| 大城县| 手机| 扬州市| 海宁市| 保靖县| 南康市| 辉南县| 霍州市| 迭部县| 安乡县| 双鸭山市| 玛多县| 茂名市| 长乐市| 鹰潭市| 财经| 莒南县| 佛教| 新蔡县| 宁夏| 慈利县| 门源| 榆社县| 平原县| 崇仁县| 阿拉尔市| 额尔古纳市| 镇原县| 石楼县| 柏乡县|