Bueno la idea de este post es la crear los famosos virtualhosts. Pero antes de empezar enterémonos bien que es un virtualhost. Con los virtualhosts podremos tener varios dominios apuntando a una misma PC. Dentro de cada virtualhost podremos definir las condiciones para cada dominio que esté representando. Es como si tuviéramos varios dominios dentro de nuestro servidor osea 127.0.0.1. Es decir que aparte de usar http://localhost, podríamos usar http://localweb, http://proyecto, http://www.beta.com o el nombre que mas nos guste, para ello lo primero que necesitamos es tener instalado apache2 (la ultima versión) y funcionando. Ahora veamos como crear y usar los virtualhost (Es necesario tener permisos de root para algunos cambios) Entraremos a nuestra consola y nos moveremos a: cd /etc/apache2/sites-available/ ajaxman@debianJS:~$ su Contraseña: debianJS:/home/ajaxman# cd /etc/apache2/sites-available/ debianJS:/etc/apache2/sites-available# Una vez ahí veremos que hay un archivo llamado default (en mi caso hay dos el otro se llama default-ssl es digamos que la “plantilla” de los sitio con ssl) debianJS:/etc/apache2/sites-available# ls -la total 24 drwxr-xr-x 2 root root 4096 abr 14 16:37 . drwxr-xr-x 7 root root 4096 nov 6 16:46 .. -rw-r–r– 1 root root 1428 nov 6 17:44 default -rw-r–r– 1 root root 7366 oct 1 2008 default-ssl El archivo default es el que contiene la información que usaremos en los virtualHost por lo cual simplemente copiaremos todo el archivo en uno nuevo eso lo hacemos mediante el comando cat. debianJS:/etc/apache2/sites-available# cat default > website Ahora nuestro ls se verá así: debianJS:/etc/apache2/sites-available# ls -la total 24 drwxr-xr-x 2 root root 4096 abr 14 16:37 . drwxr-xr-x 7 root root 4096 nov 6 16:46 .. -rw-r–r– 1 root root 1428 nov 6 17:44 default -rw-r–r– 1 root root 7366 oct 1 2008 default-ssl -rw-r–r– 1 root root 1480 abr 14 16:35 website Ahora lo abrimos y lo editamos con el Vi y lo único que modificaremos sera lo siguiente. debianJS:/etc/apache2/sites-available# gedit website < VirtualHost *:80 > ServerAdmin webmaster@localhost DocumentRoot /home/www/ < Directory / > Options FollowSymLinks AllowOverride None < /Directory > < Directory /home/www/ > Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all < / Directory > ……… …………… ……………. < VirtualHost > Por esto: ServerAdmin [email protected] ServerName prog ServerAlias www.website.net DocumentRoot /home/www/prog Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ……… …………… ……………. < VirtualHost > Lo que cambiamos fue - Agregamos Server Name, que es donde estará el nombre de nuestro servidor en este caso se llama prog - Le agregamos un ServerAlias, que es como otro nombre para acceder a este VirtualHost, en este caso es www.website.net. - Y le modificamos el DocumentRoot, el cual sera la carpeta del sitio que queremos Virtualizar Los guardamos. Ahora lo agregamos a Apache: debianJS:/etc/apache2/sites-available# a2ensite website Y Apache nos dirá que lo agrego con éxito, Ojo: para evitar que Apache nos de errores, es necesario que la carpeta que el indicamos en DocumentRoot exista, si no no nos va a funcionar. El comando "a2ensite", lo único que hace es un enlace simbólico dentro de la carpeta /etc/apache2/sites-enabled a algunos de los sitios que están en la otra carpeta /etc/apache2/sites-available , es decir en sites-available están los sitios disponibles, y en sites-enabled están los que podemos usar. debianJS:/etc/apache2/sites-enabled# ls -la total 8 drwxr-xr-x 2 root root 4096 abr 14 16:26 . drwxr-xr-x 7 root root 4096 nov 6 16:46 .. lrwxrwxrwx 1 root root 26 nov 6 16:13 000-default -> ../sites-available/default lrwxrwxrwx 1 root root 23 abr 14 16:26 website -> ../sites-available/website Ahora modificamos nuestro fichero hosts, hay que tener cuidado por que Apache en mi debian tiene dos un host y otro que se llama hosts, el que vamos a modificar es hosts(con ese al final) debianJS:/etc/apache2/sites-enabled# gedit /etc/hosts Nos aparecerá así: 127.0.0.1 localhost ……. ………. ………… Lo único que debemos hacer es agregar nuestro nuevo sitio de acuerdo al alias que le pusimos o bien el servername y quedará así: 127.0.0.1 localhost 127.0.0.1 www.website.net .. ….. …….. Guardamos nuestro archivo, y con esto le decimos a nuestro Linux, que cuando teeclemos www.website.net lo busque en nuestra misma PC y no afuera. Ahora solo recargamos apache debianJS:/etc/apache2/sites-enabled# /etc/init.d/apache2 reload Y listo Ahora abrimos nuestro Firefox (Navegador) y tecleamos www.website.net y nos debe de desplegar la información de la carpeta /home/www/prog ya se aun index.php index.html o un listado, claro si esta permitido en nuestra configuración default (recuerden que de ahí sacamos toda la configuración). Fuente: http://www.ajaxman.net/1541/tutorial-creando-virtual-host-de-apache-usando-linux/