Configurar capistrano en servidores compartidos
Esta es la configuración de capistrano para desplegar una aplicación en Site5 cuando tenemos el código en un repositorio subversion. Posiblemente puede utilizarse en otros servidores compartidos con ligeras modificaciones.Para escribir este post he realizado un despliegue real de una aplicación, he consultado el tutorial que encontré en http://www.thebitguru.com/articles/9-Setting+up+Capistrano+on+Site5 y he utilizado el soporte de los técnicos de Site5 que me han ayudado durante el proceso con un problema de permisos que había en el servidor.
- (este punto es específico de Site5) Pedir que te cambien el shell por defecto de jailshell a bash.
- Configurar el entorno de desarrollo: desde el subdirectorio de tu aplicación rails ejecutar
cap --apply-to . NOMBRE_APLICACION
este comando generará:
exists config
create config/deploy.rb
exists lib/tasks
create lib/tasks/capistrano.rake - Editar las opciones de configuración: en el archivo config/deploy.rb
- Indicar la URL del repositorio subversion:
set :repository, "svn+ssh://USUARIO@DOMINIO/RUTA_DEL_REPOSITORIO"
- Poner las direcciones de cada rol de tu aplicación (web, app, db). Típicamente solo se utilizan :web y :app poniendoles el nombre del dominio (por ejemplo "bee.com.es" ).
- Descomentar la linea "deploy_set" indicándole la ruta correcta hacia el subdirectorio del servidor donde quieres que se instale la aplicación, por ejemplo:
set :deploy_to, "/home/TU_USERNAME/apps/#{application}"
- Si el username del servidor es diferente del de la máquina desde donde usarás capistrano, descomenta la línea "user" y pon tu username:
set :user, "TU_USERNAME"
- Añadir las siguientes tareas de capistrano al final del archivo:
desc "Link in the production database.yml and fix permissions"
task :after_update_code do
run "find #{release_path}/public -type d -exec chmod 0755 {} \\;"
run "find #{release_path}/public -type f -exec chmod 0644 {} \\;"
run "chmod 0755 #{release_path}/public/dispatch.*"
end
desc "Restart the web server. Overrides the default task for Site5 use."
task :restart, :roles => :app do
run "chmod 755 #{current_path}/public/dispatch.fcgi"
run "touch #{current_path}/public/dispatch.fcgi"
end
- Indicar la URL del repositorio subversion:
- Configurar el servidor: Ejecutar desde la raiz de la aplicación el comando
cap setup
- Cambiar la linea de public/.htaccess:
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
por:RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
Fíjate que solo es cambiar la extensión .cgi por .fcgi - Listo! ahora para desplegar tu aplicación solo tienes que ejecutar desde la raiz de la aplicación el comando
cap deploy
Posibles errores:
- Si el protocolo de tu repositorio subversion es svn+ssh, es decir, utiliza ssh tienes que pedir que te perimitan realizar ssh desde el servidor porque por defecto lo tienen deshabilitado.
Etiquetas: hosting, rails, ruby, RubyOnRails
1 Comentarios (Publicar un comentario)