<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flasheves &#187; apache</title>
	<atom:link href="http://www.flasheves.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flasheves.com</link>
	<description>programacion, analisis , diseño</description>
	<lastBuildDate>Sat, 07 Jan 2012 00:53:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Instalar Rails en un entorno de produccion con RVM + Passenger + Apache</title>
		<link>http://www.flasheves.com/instalar-rails-en-un-entorno-de-produccion-con-rvm-passenger-apache/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalar-rails-en-un-entorno-de-produccion-con-rvm-passenger-apache</link>
		<comments>http://www.flasheves.com/instalar-rails-en-un-entorno-de-produccion-con-rvm-passenger-apache/#comments</comments>
		<pubDate>Fri, 27 May 2011 23:29:55 +0000</pubDate>
		<dc:creator>eveevans</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rvm]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.flasheves.com/?p=689</guid>
		<description><![CDATA[Guía para instalar Rails en un entorno de producción, utilizando Apache como proxy de Passenger para desplegar la aplicación y RVM para manejar diferentes entornos de gemas.]]></description>
			<content:encoded><![CDATA[<p>Usualmente cuando trabajamos con nuestra aplicación <a href="http://rubyonrails.org/" target="_blank">Ruby on Rails </a>en desarrollo usamos <a href="http://en.wikipedia.org/wiki/WEBrick">WEBrick</a> , sin embargo, cuando toca publicarlo en un servidor de producción con usuarios reales y conexiones concurrentes tenemos que pensar en otras alternativas. <a href="http://www.modrails.com/" target="_blank">Passenger</a> en conjunto con <a href="http://httpd.apache.org/" target="_blank">Apache</a> se han convertido en  una muy buena opción para desplegar aplicaciones web basadas en Ruby, y si  a esto le sumamos la versatilidad de <a href="https://rvm.beginrescueend.com/" target="_blank">RVM</a> para encapsular gemas (<a href="http://www.flasheves.com/aislar-aplicaciones-de-rails-con-ruby-version-manager-rvm/" target="_blank">del cual escribí en otro post</a>) tendremos un entorno muy completo para lanzar aplicaciones hechas con Rails. Esta guía pretende abordar los puntos claves para configurar ese entorno, cabe mencionar que la instalación se realizó en un servidor Debian:</p>
<h2>1. Instalar Apache<em> </em></h2>
<p>Probablemente esta parte ya la tengas lista. Si no lo instalamos, en Ubuntu o Debian debería ser tan sencillo como:</p>
<p><pre class="brush: plain; title: ;">sudo aptitude install apache2</pre></p>
<h2>2. Instalar RVM</h2>
<p>RVM servirá para aislar las gemas de la aplicación, además de instar Ruby en caso que aun no lo tengamos. Para su instalación puedes <a href="https://rvm.beginrescueend.com/rvm/install/" target="_blank">ver la guía en el sitio oficial</a> o <a href="http://www.flasheves.com/aislar-aplicaciones-de-rails-con-ruby-version-manager-rvm/" target="_blank">seguir esta pequeña guía que escribí</a>. Ten en cuenta<a href="https://rvm.beginrescueend.com/rvm/prerequisites/" target="_blank"> las dependencias que necesitarás</a> tener instaladas en tu servidor.</p>
<p>Para comprobar que RVM se ha instalado puede escribir en la consola:<em><strong> type rvm | head -1</strong></em> si devuelve <em><strong>rvm is a function</strong></em> entonces todo bien, si no revisa <a href="https://rvm.beginrescueend.com/rvm/install/" target="_blank">un poco aquí</a> los problemas más comunes y sus soluciones.</p>
<h2>3. Instalar Ruby a través de RVM</h2>
<p>Si ya tienes instalado Ruby no hay problema, puedes usar esa versión, si no igualmente puedes instalar la versión que quieras a través de RVM.</p>
<p>Para ejemplificar instalaremos la versión 1.8.7 de Ruby y lo dejaremos como versión por defecto del sistema, para esto escribimos en la consola:</p>
<p><pre class="brush: plain; title: ;">rvm install 1.8.7 --default</pre></p>
<p><em>*Al momento de escribir esto aún no hay una solución práctica para que Passenger pueda correr diferentes versiones de Ruby en RVM simultaneamente. Así que deberías usar una misma versión de Ruby para trabajar con todas tus aplicaciones.</em></p>
<h2>4. Instalar gema passenger</h2>
<p>En RVM existe un compartimiento global que puede ser usado por todos gemset que creemos. Es decir, todas las gemas puestas ahí estarán disponibles por cada gemset. Este gemset existe por defecto, y siguiendo con el ejemplo anterior (Ruby 1.8.7) podemos acceder a el de la siguiente forma:</p>
<p><pre class="brush: plain; title: ;">rvm 1.8.7@global</pre></p>
<p>y una vez dentro de ese contenedor, procedemos a instalar Passenger como gema global</p>
<p><pre class="brush: plain; title: ;">gem install passenger</pre></p>
<h2>5. Instalar Passenger como módulo de Apache</h2>
<p>Passenger está disponible tanto para Apache, como para Ngix. En este caso para instalarlo sobre Apache usaremos:</p>
<p><pre class="brush: plain; title: ;">passenger-install-apache2-module</pre></p>
<p>Una vez ejecutado el comando, nos aparecerá un asistente para guiarnos en la revisión de dependencias ,instalación y configuración de Passenger.</p>
<p><a rel="attachment wp-att-708" href="http://www.flasheves.com/instalar-rails-en-un-entorno-de-produccion-con-rvm-passenger-apache/passenger-1/"><img class="aligncenter size-full wp-image-708" title="instalacion de passenger" src="http://www.flasheves.com/wp-content/uploads/2011/05/passenger-1.png" alt="" width="618" height="279" /></a><a rel="attachment wp-att-709" href="http://www.flasheves.com/instalar-rails-en-un-entorno-de-produccion-con-rvm-passenger-apache/passenger-2/"><img class="aligncenter size-full wp-image-709" title="configuracion de passenger" src="http://www.flasheves.com/wp-content/uploads/2011/05/passenger-2.png" alt="" width="618" height="375" /></a></p>
<p>Para más información <a href="http://www.modrails.com/documentation/Users%20guide%20Apache.html" target="_blank">aquí la documentación oficial</a>.</p>
<h2>6. Configurar Apache para que corra Ruby y Passenger a través de RVM</h2>
<p>Una vez finalizada la instalación anterior (passenger-install-apache2-module), luego de varias lineas de compilación e instalación,  la consola imprimirá 3 lineas necesarias para la configuración de Apache:</p>
<p><a rel="attachment wp-att-716" href="http://www.flasheves.com/instalar-rails-en-un-entorno-de-produccion-con-rvm-passenger-apache/passenger-3/"><img class="aligncenter size-full wp-image-716" title="passenger-apache" src="http://www.flasheves.com/wp-content/uploads/2011/05/passenger-3.png" alt="" width="618" height="230" /></a>Copiar esas líneas y ponerlas en el archivo de configuración de Apache. En Ubuntu/Debian el archivo está en <strong>/etc/apache2/apache2.conf</strong></p>
<p>Solo resta reiniciar Apache y ya tendrá soporte para Passenger :) <strong><br />
</strong></p>
<h2>7. Instalar Rails</h2>
<p>A este punto, el servidor está listo para la implementación de las aplicaciones en Rails, de esta forma el siguiente  paso es configurar el sitio/proyecto bajo todo el entorno que previamente hicimos. La idea base es que cada aplicación corra dentro de su propio contenedor de gemas.</p>
<h4>7.1. Crear el contendor:</h4>
<p><pre class="brush: plain; title: ;">rvm gemset create contenedor</pre></p>
<h4>7.2. Iniciar en el intérprete y contenedor de gemas</h4>
<p><pre class="brush: plain; title: ;">rvm 1.8.7@contenedor</pre></p>
<h4>7.3. Instalar Rails</h4>
<p><pre class="brush: plain; title: ;">gem install rails</pre></p>
<p><em>*Lo más seguro es que no te interese instalar la documentación de las gemas, así que te recomiendo instalar rails con los parámetros <strong>no-rdoc</strong> , <strong>no-ri</strong></em></p>
<h2>8. Configurar Aplicación</h2>
<h4>8.1 Crear/Migrar proyecto</h4>
<p>En el directorio donde queremos poner nuestra aplicación (por lo general <strong>/var/www/</strong> ): Creamos una nueva aplicación Rails con el comando <strong>rails new proyecto</strong> (en caso de ser Rails 3 lo que hayamos instalado) o copiamos el proyecto que queremos migrar.</p>
<p><strong>8.2 Configurar Virtual Host de Apache</strong></p>
<p>Si vamos a tener varios sitios corriendo en el mismo servidor, es recomendable configurar Virtual Host de Apache. En el caso de Debian/Ubuntu , esas configuraciones están en: <strong>/etc/apache2/sites-enabled</strong> (pero se habilitan en <strong>/etc/apache2/apache2.conf</strong> ). Podemos configurar la entrada por defecto <strong>000-default</strong> o crear una nueva. Básicamente las configuraciones son:</p>
<p><pre class="brush: bash; title: ;">&lt;VirtualHost *:80&gt;
  ServerName www.nombredelsitio.com
  DocumentRoot /tu_aplicacion/public    # &lt;-- Confirmar que apunte al directorio 'public'
  &lt;Directory /tu_aplicacion/public&gt;
  AllowOverride all              # &lt;-- Cambiar , por defecto viene en none
  Options -MultiViews            # &lt;-- cambiar, MultiViews deben estar desabilitadas
  &lt;/Directory&gt;
 &lt;/VirtualHost&gt;</pre></p>
<h4>8.3 Configurar rutas</h4>
<p>Lo siguiente es decirle a tu aplicación como y donde encontrar las gemas y versión de Ruby que usará Passenger ( Esto es necesario por que lo estamos haciendo a través de RVM), la información detallada está en la documentación de RVM &gt; <a href="https://rvm.beginrescueend.com/integration/passenger/" target="_blank">Intergación con Passenger</a>, pero básicamente es:</p>
<p><strong>8.3.1. Crear un archivo .rvmrc</strong></p>
<p>Creamos un archivo llamado &#8220;<strong>.rvmrc</strong>&#8221; en la raiz del proyecto, para indicar  las rutas de Ruby y contenedor de gemas que utilizamos con RVM, (esto es por cada proyecto). Para esto, corremos en la consola el comando</p>
<p><pre class="brush: plain; title: ;">rvm use 1.8.7@contenedor --rvmrc --create</pre></p>
<p><em>*Recuerda cambiar la versión del intérprete y contenedor que usas.</em></p>
<h4>8.3.2. Crear archivo setup_load_paths.rb</h4>
<p>Finalmente en la carpeta<strong> /config/</strong> del proyecto de Rails  crear un archivo llamado <strong>setup_load_paths.rb,</strong> En el caso del ejemplo utilizando Rails 3, el contenido del archivo seria:</p>
<p><pre class="brush: ruby; title: ;">if ENV['MY_RUBY_HOME'] &amp;&amp; ENV['MY_RUBY_HOME'].include?('rvm')
 begin
 rvm_path     = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
 rvm_lib_path = File.join(rvm_path, 'lib')
 $LOAD_PATH.unshift rvm_lib_path
 require 'rvm'
 RVM.use_from_path! File.dirname(File.dirname(__FILE__))
 rescue LoadError
 # RVM is unavailable at this point.
 raise &quot;RVM ruby lib is currently unavailable.&quot;
 end
end

ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'</pre></p>
<p>En el caso de ser Rails 2, el contenido del archivo sería</p>
<p><pre class="brush: ruby; title: ;">if ENV['MY_RUBY_HOME'] &amp;&amp; ENV['MY_RUBY_HOME'].include?('rvm')
 begin
 rvm_path     = File.dirname(File.dirname(ENV['MY_RUBY_HOME']))
 rvm_lib_path = File.join(rvm_path, 'lib')
 $LOAD_PATH.unshift rvm_lib_path
 require 'rvm'
 RVM.use_from_path! File.dirname(File.dirname(__FILE__))
 rescue LoadError
 # RVM is unavailable at this point.
 raise &quot;RVM ruby lib is currently unavailable.&quot;
 end
end</pre></p>
<p>Para más información sobre la integración de Passenger con RVM esta<a href="https://rvm.beginrescueend.com/integration/passenger/" target="_blank"> la documentación oficial </a>y  el artículo <a href="http://blog.ninjahideout.com/posts/the-path-to-better-rvm-and-passenger-integration" target="_blank">The Path to Better RVM &amp; Passenger Integration</a> de donde se tomo parte de las mejoras para RVM y Passenger.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flasheves.com/instalar-rails-en-un-entorno-de-produccion-con-rvm-passenger-apache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cinco Razones para dejar Xampp</title>
		<link>http://www.flasheves.com/cinco-razones-para-dejar-xampp/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cinco-razones-para-dejar-xampp</link>
		<comments>http://www.flasheves.com/cinco-razones-para-dejar-xampp/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 22:07:08 +0000</pubDate>
		<dc:creator>eveevans</dc:creator>
				<category><![CDATA[Utilidades]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.flasheves.com/?p=101</guid>
		<description><![CDATA[Xampp es una herramienta muy práctica que nos permite instalar el típico entorno MySQL, Apache y PHP, sin embargo en algunas ocasiones es mejor dejarla atras, aquí te enumero 5 razones del por qué]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-134" title="noxampp" src="http://www.flasheves.com/wp-content/uploads/2010/01/noxampp.jpg" alt="noxampp" width="620" height="155" /></p>
<p><a href="http://www.apachefriends.org/en/xampp.html" target="_blank">Xampp</a> es una herramienta muy práctica que nos permite instalar el típico entorno <a href="http://es.wikipedia.org/wiki/MySQL" target="_blank">MySQL</a>, <a href="http://es.wikipedia.org/wiki/Servidor_web_Apache">Apache </a>y <a href="http://es.wikipedia.org/wiki/Php" target="_blank">PHP</a> , suficiente para empezar proyectos web o revisar alguna aplicación  localmente. Ademas trae otros servicios como servidor de correos y servidor FTP.</p>
<p>La mayor ventaja de Xampp es que es muy fácil de instalar y las configuraciones son mínimas o inexistentes, lo cual nos ahorra bastante tiempo. Sin embargo hay ocasiones en que es mejor dejar atrás la comodidad:</p>
<ol>
<li><strong>No soporta MySQL desde la consola</strong><br />
Xampp trae <a href="http://es.wikipedia.org/wiki/PhpMyAdmin" target="_blank">PhpMyAdmin</a> para administrar las bases de datos de MySQL,  sin embargo para tareas más específicas es mejor utilizar la consola (linea de comandos) y Xampp no la soporta.</li>
<li><strong>No se pueden actualizar individualmente  las versiones de los programas que instala<br />
<span style="font-weight: normal;">Xampp trae las últimas versiones de las aplicaciones que instala, sin embargo cuando pasa el tiempo y salen nuevas versiones de las mismas, no queda otra salida que reinstalar todo Xampp. Que tal si por ejemplo sólo queremos actualizarnos a la última versión de PHP? </span></strong></li>
<li><strong>Dificultad para configurar aplicaciones de terceros</strong><br />
Y si queremos instalar una aplicación para manejo de subversiones en nuestro servidor?. Si en Xampp se puede mediante algún método alternativo ( llamese hacks), pero resultan bastante engorrorsos y a veces inservibles.</li>
<li>y 5. Habian 2 razones más que tenía en mente , pero este post pasó tanto tiempo en borrador que se me olvidaron, asi que le dejo el espacio a los comentarios</li>
</ol>
<p>Dejaré la instalacion de apache y php sobre  Unix para otro post ( o para una búsqueda en <a href="http://www.google.com" target="_blank">google</a>), en general es bastante fácil, sobre todo si dispone de un manejador de paquetes. Ahora bien si utilizas Windows; les dejo par de guias de <a href="http://www.sitepoint.com" target="_blank">Sitepoint </a>para instalar un entorno de servidor:</p>
<p><a href="http://www.sitepoint.com/blogs/2009/03/24/how-to-install-mysql/" target="_blank">Instalar MySQL en Windows</a><br />
<a href="http://www.sitepoint.com/blogs/2009/04/07/how-to-install-apache-on-windows/">Instalar Apache sobre Windows</a><br />
<a href="http://www.sitepoint.com/blogs/2009/04/13/how-to-install-php-on-windows/">Instalar PHP sobre Windows</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flasheves.com/cinco-razones-para-dejar-xampp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
