Teisingas web projektų publikavimas 2
Kažkiek paeksperimentavęs su keletą publikavimo metodų, nusprendžiau, kad man vis dėlto pats priimtiniausias publikavimo metodas Capistrano. Nors jis labiau skirtas ruby tipo projektams publikuoti, bet jis pakankamai lengvai pritaikomas ir tarkim PHP projektams. Vienintelis minusas, kad jis skirtas publikuoti į serverį kuris turi ssh prisijungimą.
Gan neblogas pavyzdys galimybių pritaikytų PHP projektui yra symfony applikacijų deploymentas. Kitiems užtektų daug paprastesnio varianto. Pavyzdžiui aš naudoju tokio tipo scriptą. Uždėjau komentarų ką kai kurios eilutės reiškia.
# Projekto pavadinimas
set :application, “projektas.lt”# Serverio adresas turintis ssh prisijugima
role :web, “server.zilionis.net:2222”# Serverio vartotojas. Slatazodzio nenaudoju nes prisijungimas padarytas
# automatinis pasinaudojus rsa raktais
set :user, “zilionis”set :use_sudo, false
# direktorija kur bus publikuojamas projektas
# document rootas bus tarkim /home/zilionis/domains/projektas.lt/web/current
set :deploy_to, “/home/zilionis/domains/#{application}/web/”
set :shared, “/home/zilionis/domains/#{application}/web/shared”# SVN nustatumai
set :urlrepository, “http://svn.repo.server/repos/projektas_lt/trunk”
set :scm_username, “JusuSvnUseris”
set :scm_password, “JusuSvnSlaptazodis”set :repository, “–username #{scm_username} –password #{scm_password} –no-auth-cache #{urlrepository}”
set :checkout, “export”
set :keep_releases, 3desc “This will deploy the app”
task :live do
# istraukiam is svn’o projekta
run “svn –quiet #{checkout} #{repository} #{release_path}”# darom symbolik linkus dideliems libams kurie ne svn’e
run “ln -nfs #{shared}/lib/Zend #{release_path}/project/lib/Zend”
run “ln -nfs #{shared}/lib/ext #{release_path}/public_html/scripts/ext”# uzchodiman reikiamus failus/direktorijas
run “chmod -R 777 #{release_path}/project/cache”# paradom aktyvu releasa
run “ln -nfs #{release_path} #{current_path}”
end
Skanaus :)