e代劍客——溫柔一刀

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

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

          1.install capistrano

          ???gem?install?capistrano??

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

          4.創(chuàng)建spin文件

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

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

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

          5.初始化服務器上的運行環(huán)境???

          ????cap?deploy
          :setup??

          ???這一步會連上服務器,創(chuàng)建一些目錄:

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

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

          6.deploy

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

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


          網(wǎng)站導航:
           
          聯(lián)系偶 zhupanjava@gmail.com 溫柔一刀
          主站蜘蛛池模板: 江门市| 永寿县| 体育| 保靖县| 如东县| 元氏县| 凯里市| 务川| 吉安市| 香港 | 彭阳县| 阳原县| 灵川县| 墨竹工卡县| 富民县| 崇文区| 察哈| 沁水县| 石家庄市| 准格尔旗| 伊宁县| 桑日县| 乌兰浩特市| 长春市| 中阳县| 达孜县| 始兴县| 乌兰察布市| 滦平县| 蓝山县| 嘉定区| 中西区| 息烽县| 池州市| 喀什市| 灌云县| 塔城市| 邢台市| 镶黄旗| 汨罗市| 桑日县|