<?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>Quenerapú &#187; directorio virtual</title>
	<atom:link href="http://quenerapu.com/etiquetas/directorio-virtual/feed/" rel="self" type="application/rss+xml" />
	<link>http://quenerapu.com</link>
	<description>Sentado delante de un ordenador desde 1982. ¿De qué voy a hablar, si no?</description>
	<lastBuildDate>Thu, 19 Jan 2012 13:02:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Directorios virtuales en Apache (Ubuntu)</title>
		<link>http://quenerapu.com/linux/directorios-virtuales-en-apache-ubuntu/</link>
		<comments>http://quenerapu.com/linux/directorios-virtuales-en-apache-ubuntu/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:46:33 +0000</pubDate>
		<dc:creator>Quenerapú</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[directorio virtual]]></category>

		<guid isPermaLink="false">http://quenerapu.com/?p=137</guid>
		<description><![CDATA[Crear directorios virtuales es muy cómodo y práctico cuando desarrollas sitios web sobre Apache. Lo hago a menudo y por eso lo recomiendo.]]></description>
			<content:encoded><![CDATA[<p>Digo Ubuntu sólo porque es la distro que uso, pero esto vale para cualquier distribución Linux.</p>
<p>Los directorios virtuales son comodísimos a la hora de desarrollar sitios web sobre Apache. Lo hago a menudo y por eso lo recomiendo. Doy por hecho que <strong>Apache</strong> está correctamente instalado y configurado.</p>
<p>En mi directorio de usuario creo un directorio llamado <strong>http</strong> (donde pongo <em>username</em> has de poner tu nombre de usuario, obviamente)</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ mkdir /home/username/http
</pre>
<p>En ese directorio voy a construir mis proyectos web. Creo el directorio de mi primer proyecto web (donde pongo <em>proyecto1</em> has de poner el nombre de tu proyecto, obviamente).</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ mkdir /home/username/http/proyecto1
</pre>
<p>Recomiendo, para no complicarnos la vida, dar a este tipo de directorios nombres sin eñes, tildes ni espacios.</p>
<p>Y sólo por tener algo, creo el clásico <strong>index.html</strong> conteniendo el típico saludo:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ echo &quot;&lt;h1&gt;Hola mundo&lt;/h1&gt;&quot; &gt; /home/username/http/proyecto1/index.html
</pre>
<p>Bueno. Como este directorio no está donde Apache espera que estén sus directorios web, lo primero que tengo que hacer es notificar a Apache esta situación especial. Le diré a Apache que no es el típico directorio web sino un directorio virtual: Un directorio web creado donde me dió la gana <img src='http://quenerapu.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Doy de alta <strong>proyecto1</strong> como directorio virtual:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ cd /etc/apache2/sites-available
$ sudo cp default proyecto1
$ sudo gedit proyecto1
</pre>
<p>En el documento que se abre, para no complicarnos, sustituyo el texto por este otro (adáptalo según tus necesidades, claro):</p>
<pre class="brush: bash; title: ; notranslate">
&lt;VirtualHost *:80&gt;
ServerAdmin aqui.tu@email.com
ServerName proyecto1
DocumentRoot /home/username/http/proyecto1
  &lt;Directory /&gt;
  Options FollowSymLinks
  AllowOverride None
  &lt;/Directory&gt;
  &lt;Directory /home/username/http/proyecto1 &gt;
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order deny,allow
    Allow from all
  &lt;/Directory&gt;
&lt;/VirtualHost&gt;
</pre>
<p>Y activo este directorio virtual:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ sudo a2ensite proyecto1
</pre>
<p>Edito el archivo <strong>hosts</strong> en conformidad:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ sudo gedit /etc/hosts
</pre>
<p>añadiendo esta línea:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
127.0.0.1 proyecto1
</pre>
<p>Reinicio Apache</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ sudo /etc/init.d/apache2 reload
</pre>
<p>Y ya está. En <a href="http://proyecto1">http://proyecto1</a> puedo ver mi página <strong>Hola mundo</strong>. Ahora, <strong>¡a trabajar!</strong></p>
<h2>Añadido el 19 enero de 2012</h2>
<p>Tal y como menciona perikitto en los comentarios, el tema de los permisos es de vital importancia y en este tutorial no se ve reflejado. Paso pues, a añadir la información sobre los permisos.</p>
<p>Una vez tengo mi directorio virtual de Apache operativo es importante asignar unos correctos permisos de acceso. El proceso de instalación de Apache en Ubuntu creó un grupo de usuarios llamado <strong>www-data</strong> y yo debo pertenecer a ese grupo. Lo haré a través del terminar (vuelvo a recordar que donde pongo <em>username</em> has de poner tu nombre de usuario):</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ sudo usermod -a -G www-data username
</pre>
<p>A continuación hago que el directorio <strong>/home/username/http</strong> pertenezca también el grupo de usuarios <strong>www-data</strong>. Esto es importante comprenderlo: <em>el directorio <strong>/home/username/http</strong> me pertenece a mi, y yo pertenezco al grupo de usuarios <strong>www-data</strong>, pero ello no significa que mis directorios pertenecen a ese grupo, sino al revés. Si quiero que un directorio mío pertenezca también a un grupo, he de indicarlo.</em></p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ sudo chgrp -R www-data /home/username/http
</pre>
<p>Y otorgo los permisos correspondientes así:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
$ sudo chmod -R 2775 /home/username/http
</pre>
<p>El <strong>-R</strong> indica que la orden es recursiva, es decir: que lo que se indique a continuación aplicará a todos los directorios dentro de <strong>/home/username/http</strong>. Explico ahora lo del número <strong>2755</strong>.</p>
<p>Con el 2 inicial no nos compliquemos: simplemente indica que quiero que cada archivo o directorio creado en el futuro dentro de <strong>/home/username/http</strong> pertenezca al grupo de usuarios al que pertenece <strong>/home/username/http</strong>. Vamos, que herede esa propiedad. No siempre es necesario indicar esto pero en este caso sí importa.</p>
<p>Son los otros tres dígitos los que veo necesario explicar con más detalle.</p>
<li>Con el primer dígito indicamos qué privilegios tiene el usuario (en este caso yo) sobre todos los archivos y directorios. El 7 indica todos los privilegios: lectura, escritura y ejecución.</li>
<li>Con el segundo dígito indicamos qué privilegios tiene el grupo de usuarios (en este caso www-data) sobre todos los archivos y directorios. El 7 indica todos los privilegios: lectura, escritura y ejecución.</li>
<li>Y con el tercer dígito indicamos qué privilegios tiene el resto del mundo sobre todos los archivos y directorios. El 5 indica sólo privilegios de lectura y ejecución (se mira pero no se toca).</li>
</ul>
<p>Para comprender mejor cómo se calculó ese 775, incluyo la tabla con las operaciones.</p>
<p><img src="http://quenerapu.com/wp-content/uploads/2010/02/permisos.gif" alt="Entendiendo los permisos" title="Entendiendo los permisos" width="377" height="267" class="alignnone size-full wp-image-166" /></p>
<p>Y hecho esto, ya tenemos el directorio <strong>/home/username/http</strong> dispuesto para albergar todos nuestros proyectos web.</p>
]]></content:encoded>
			<wfw:commentRss>http://quenerapu.com/linux/directorios-virtuales-en-apache-ubuntu/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

