2013 La Creativería César Brenes Solano ! ! ! [CONFIGURACIÓN DE UBUNTU SERVER PARA RUBY] En este documento se describen los pasos necesarios para crear un servidor para almacenar las aplicaciones que se desarrollen con ruby on rails Instalación y configuración de un VPS (Servidor privado virtual) para Ruby on Rails Requerimientos: Memoria Ram: 1gb Disco duro: 80 GB Procesador: CPU: Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz Este manual ha sido probado en Ubuntu Server 12.04 de 64 bits Instalación de Ubuntu Server Ejecutar la instalación del servidor Hostname=rubyServer Nombre del nuevo usuario: rubyuser Nombre de usuario para la cuenta: rubyuser Contraseña: lacreativeria Encriptar su directorio home: si HTTP proxi information: en blanco Actualizaciones del sistema: Instalaciones automáticas En los servicios solo escoger OpenSSH server y continuar Install the grub boot loader on a hard disk: yes Con esto ya tenemos el servidor instalado listo para configurarlo Lo primero que debemos hacer es actualizar el sistema para eso ejecutamos los siguientes comandos: $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get dist-upgrade $ sudo reboot Luego creamos un usuario el cual será el encargado de las aplicaciones useradd rubyapps Después a este usuario le asignamos el grupo de sudo, esto lo logramos con el siguiente comando: sudo adduser rubyapps sudo De ahora en adelante, todo lo realizaremos con este usuario por lo tanto cerramos la sesión del usuario actual e iniciamos sesión con el usuario creado Instalación de Curl y Git Curl es una herramienta para transferir datos a través de una serie de protocolos (como HTTP y FTP). Y Git es software libre diseñado para el manejo de versiones. Ejecutamos el siguiente comando: $ sudo apt-get install curl $ sudo apt-get install git-core Instalación de RVM RVM significa Ruby Version Manager y es "una herramienta de línea de comandos que permite instalar fácilmente, gestionar y trabajar con múltiples entornos de Rubí. Ejecutamos: $ \curl -L https://get.rvm.io | bash bash < <(curl -s https://rvm.beginrescueend.com/install/rvm) Ahora ejecutamos lo siguiente: sudo nano .bashrc Y añadimos la siguiente linea al final del archivo: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" Ahora ejecutamos este comando: source .bashrc Para comprobar que lo anterior se instaló correctamente ejecutamos lo siguiente: type rvm | head -1 El comando anterior debe retornar: rvm is a function, de ser así la instalación anterior fue exitosa. Preparando el Server para Ruby on Rails Ejecutamos los siguientes comandos, algunos ya pueden estar instalados en el servidor sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev Instalando Ruby on Rails usando RVM Ejecutamos $ rvm install 1.9.3 $ rvm --default use 1.9.3 Con el siguiente comando verificamos las versiones instaladas: $ ruby -v $ gem -v Actualizamos las gemas manualmente con los siguientes comandos $ gem update --system $ gem update Instalando Rails usando las gemas de ruby Ejecutamos: $ gem install rails Verificamos la versión instalada con: $ rails -v Instalar Passenger usando las gemas de ruby Es el encargado de hacer deployment de las aplicaciones web de ruby on rails Ejecutamos lo siguiente: $ gem install passenger Y con el siguiente verificamos la versión instalada $ passenger -v Instalar Nginx Nginx nos provee de un webserver ligero y con más performance que Apache, no solo para despachar contenido estático, sino también dinámico ya que no lo usamos como proxy, sino como webserver individual. Para mayor información sobre otras configuraciones, favor visitar http://www.linuxmagazine.es/issue/55/026-030_NginxLM55.pdf Primero necesitamos instalar la siguiente dependencia: sudo apt-get install libcurl4-openssl-dev Ahora procedemos a realizar la configuración del mismo con el siguiente comando: rvmsudo passenger-install-nginx-module Lo cual mostrara lo siguiente: Ahora presionamos enter Continuamos y se nos muestra la siguiente pantalla: Presionamos 1 y la tecla enter Cuando pregunta la ubicación de la instalación introducimos: /opt/nginx y presionamos la tecla enter Al final de la instalación veremos la siguiente pantalla: Ahora iniciamos el servicio con el siguiente comando: sudo /opt/nginx/sbin/nginx Ahora es necesario ejecutar un script para que este servicio se ejecute siempre, es decir si el server se reinicia o se apaga de manera inesperada, cuando vuelva a iniciar el server se cargue de nuevo. Ejecutamos el siguiente comando: $ wget https://www.dropbox.com/s/7kd8skaq5h9fruj/nginx Si el comando anterior no funcionara también se encuentra disponible este otro link: http:// media.smashingmagazine.com/wp-content/uploads/2011/06/nginx.zip el cual después debe ser descomprimido. Lo anterior descarga un script $ sudo mv nginx /etc/init.d/nginx $ sudo chmod +x /etc/init.d/nginx $ sudo /usr/sbin/update-rc.d -f nginx defaults Ahora se pueden usar los siguientes comandos para realizar diferentes acciones sobre este servicio $ sudo /etc/init.d/nginx start $ sudo /etc/init.d/nginx stop $ sudo /etc/init.d/nginx reload $ sudo /etc/init.d/nginx restart Finalmente debemos ejecutar estos comandos para evitar posibles errores a la hora de realizar el deployment de la aplicación desde el cliente sudo-apt-get install nodejs rvm get 1.11.0 gem install sdoc