El servidor web Apache, uno de los mas usados, nos permite tener directorios individuales para los usuarios del sistema en los que pueden tener su página web o sus archivos y acceder a ellos desde un navegador de internet sin necesidad de estarlos metiendo en el directorio raiz del servidor.
Esto significa que cada usuario del sistema dentro de su directorio home puede crear una carpeta llamada public_html y crear sus páginas web guardando sus archivos en la carpeta mencionada, y en un momento veremos como habilitar esta funcionalidad de apache.
Esta instalación ha sido probada en la distribución Ubuntu Feisty y usando el LAMP server que ésta distribución permite instalar.
INSTALACIÓN DE EL SERVIDOR LAMP
Bueno, primero lo primero, si no tenemos un servidor LAMP instalado en nuestro sistema pues esto no va a servir mas que para maldita sea o de documentación para cuando te animes a hacerlo, o por lo menos con tener el Apache instalado con eso bastará.
¿Qué es LAMP?, bueno LAMP es una denominación asignada a los equipos que ejecutan la combinación de Linux, Apache, MySql y PHP, como podrán notar son las iniciales de cada herramienta de software que intervienen para poder tener un servidor web casí completo o que brinda algunos de los servicios más comunes. Quieres saber más?
¿Cómo lo instalamos en ubuntu feisty?, bueno, esa es quizas la parte más fácil, lo que tenemos que hacer es abrir el gestor de paquetes Synaptic (Sistema->Administración->Gestor De Paquetes Synaptic) y en el menú Editar elegimos la opción “marcar paquetes por tarea” y nos aparecerá una nueva ventana con una lista, debemos buscar y marcar la casilla de la opción marcada como “LAMP Server”, posteriormente le damos aceptar y dejamos que el sistema instale todo sólo.

HABILITAR LAS CARPETAS PARA LOS USUARIOS
Después de haber instalado nuestro servidor LAMP ya estamos listos para habilitar las carpetas que le permitan a los usuarios del sistema tener sus propias páginas web en sus directorios home.
Para comprobar que nuestro servidor ya esta instalado y ejecutandose abrimos nuestro navegador web y en la barra de direcciones ponemos lo siguiente: http://localhost y presionamos enter, nos debe mostrar un index of, si nos lo muesta ya esta listo, no debe haber broncas en esta etapa.
Bueno creo que aquí viene algo un poco mas complejo pero esperemos que sea entendible para todos, anteriormente habilitar esta funcionalidad consistía casí de agregar la linea UserDir public_html en el archivo de configuración de apache, digo casí porque no me consta del todo que fuese asi de simple, ahora esa parte del UserDir la convirtieron en un modulo más, por lo que se hace necesario cargar ese modulo al momento de que el servidor apache inicia y con eso tendremos disponibles los directorios de usuario.
¿Cómo lo hacemos?… bueno aquí vamos, lo primero que tenemos que hacer es abrir una consola (Aplicaciones->Accesorios->Terminal), una vez abierta nos vamos a la carpeta donde están los archivos de configuración de apache, esto con el siguiente comando:
cd /etc/apache2/
Una vez ahí hacemos un ls (ls es para listar los directorios de la carpeta donde nos encontramos, podemos no hacer el ls pero para fines de este post lo hare), el ls nos mostrará algo como lo siguiente:
huevas@SuperLinux:/etc/apache2$ ls
apache2.conf conf.d httpd.conf mods-enabled sites-available
apache2.conf~ envvars mods-available ports.conf sites-enabled
huevas@SuperLinux:/etc/apache2$
apache2.conf es el archivo de configuración de apache, conf.d es un directorio con configuraciones tambien, httpd.conf según ellos lo manejan para que el usuario en este caso el administrador del sistema agregue sus configuraciones, mods-enabled y mods-available contienen los modulos disponibles y los que se cargan (Estas dos carpetas son con las que vamos a trabajar), sites-available y sites-enabled cumplen una función similar a las carpetas de los mods o modulos, envvars son variables de entorno y ports.conf es de puertos, en este caso si ejecutan el comando “more ports.conf” nos mostrará Listen 80, esto quiere decir que esta usando el puerto 80 que es el de web.
Muy bien, ya vimos las carpetas y vimos que las que nos interesan se llaman mods-available y mods-enabled, ¿Por qué? pues porque como ya se menciono la parte de UserDir ya se hizo como un modulo más de apache, mods-available contiene todos los modulos que se instalarón al momento de instalar Apache, y mods-enabled contiene todos los modulos que se activan al momento en que apache inicia, no todos los modulos se cargan al arranque, sólo los que especificamos nosotros.
Ahora tenemos que entrar a la carpeta mods-available con cd mods-available (siempre y cuando estemos ubicados en /etc/apache2, si no es así tenemos que escribir la ruta completa, es decir, /etc/apache2/mods-available) y una vez dentro de la carpeta ejecutamos el siguiente comando: ls userdir* nos debe mostrar dos archivos el userdir.conf y el userdir.mod estos archivos del modulo estan disponibles pero no activados, para activarlos debemos meternos dentro del directorio mods-enabled y crear enlaces simbolicos hacia estos dos archivos.
Bueno, nos metemos al directorio mods-enabled con el siguiente comando “cd ../mods-enabled” o en su defecto “cd /etc/apache2/mods-enabled”, una vez ahi vamos a ejecutar el siguiente comando:
sudo ln -s /etc/apache2/mods-available/userdir* .
¿Qué significa el comando anterior?… el comando anterior lo que nos dice es: crea un enlace simbolico (ln -s) de los archivos que se encuentran en mods-available y cuyo nombre empieze con userdir y termine con cualquier otra cosa (/etc/apache2/mods-available/userdir*) y finalmente crea esos enlaces en la carpeta en la que me encuentro actualmente (eso significa el “.”, nuestra ubicación actual que se supone es mods-enabled) y bueno el sudo es para hacerlo con permisos de superusuario, si no ponemos sudo simplemente los enlaces no se crearán.
Ahora si ejecutamos un ls userdir* dentro del directorio mods-enabled nos deben aparecer los dos archivos de los que creamos el enlace simbolico, el userdir.conf y el userdir.mod, si se dan cuenta aparece en otro colorsito, eso indica que son enlaces simbolicos, y si ejecutan un ls -la userdir* nos mostrara la dirección del archivo al que esta apuntando ese enlace simbolico, algo como lo siguiente:
huevas@SuperLinux:/etc/apache2/mods-enabled$ ls -la userdir*
lrwxrwxrwx 1 root root 30 2007-07-03 10:41 userdir.conf -> ../mods-available/userdir.conf
lrwxrwxrwx 1 root root 30 2007-07-03 10:41 userdir.load -> ../mods-available/userdir.load
huevas@SuperLinux:/etc/apache2/mods-enabled$
Bueno, ya casí estamos listos, lo que nos falta es reiniciar nuestro servidor apache, eso lo hacemos ejecutando el siguiente comando:
sudo /etc/init.d/apache2 restart
Si todo sale bien, nos debe aparecer mensajtos de lo que esta haciendo y al final un [ok], eso indica que todo fue bien, si nos sale un [fail] o algo asi de error pues entonces ya valio madres jajajaja, no, bueno no y si, pero ahi nos dice porque no se pudo arrancar y con base en ese mensaje de error podemos realizar acciones para intentar solucionarlo.
Nosotros en este post optaremos porque todo salio perfecto, para comprobar que todo fue bien, vamos a nuestra carpeta home, ya pueden cerrar sus consolas si quieren, a partir de aquí usamos el entorno gráfico, ahora que si les encanta la consola pues adelante, sigan con ella, pues si, les decía, vamos a nuestro home o carpeta de usuario y creamos una carpeta llamada public_html, es ahí donde guardamos nuestros archivos web, vamos a crear una página sencilla sólo para probar, un html simple que muestre un mensaje, algo así como “hola mundo de mier… bueno, mejor cruel jaja” y lo guardamos con el nombre de index.html en esa carpeta.
Lo siguiente es abrir nuestro navegador de internet y en la barra de direcciones poner lo siguiente: http://localhost/~usuario/ y al darle enter nos debe mostrar el contenido o el mensaje que pusimos en nuestra pagina html, que en este caso sería: “hola mundo de mier… bueno, mejor cruel jaja”, aparecerá si lo guardamos con el nombre index.html, si no lo guardamos así, debemos especificar el nombre del archivo despues de ~usuario/nombreArchivo.html.
Y para finalizar, el simbolo ~ indica la carpeta home, y se le agrega el nombre del usuario que quiere ver sus datos, en mi caso es: http://localhost/~huevas/ porque mi usuario linux es huevas, para sacarlo buscalo en tu teclado y lo sacas con la combinación de la tecla AltGr + la tecla que tiene el simbolo.
Y bueno, esperemos que todo les haya salido bien y que les haya sido de utilidad. Saludos!



5 Julio 2007 at 3:34 am
vaya! que buen tutorial te has aventado, se ve que le sabes… ojalá a muchos le sirva, y creo que a mi pronto…
Saludos!
5 Julio 2007 at 4:24 am
Yaaaaaaaaa apoco si muy cabrón?
5 Julio 2007 at 4:29 am
jajajajajaja, nel, me pase un chingo de rato buscandole como wey hasta que le encontre, y pues como al final no estaba muy díficil pues lo puse por si alguien quería hacer lo mismo pues no le tomara el tiempo que me tomo a mi descubrir la solución jeje.
Pero gracias por los comentarios. Saludos!
6 Julio 2007 at 1:06 am
Hay, hay, ayyyyyyyyyyyyyyyy wey apoco tu escribiste todo eso, no mame cuevas. Ami me hule como copy and paste. Hahahahaha ha y Happy birthday wey y no me importa q haya sido en Abril cabron.
6 Julio 2007 at 3:18 am
jajaja, nou, no es copy and paste, si lo escribí, y chido, gracias!
15 Julio 2007 at 9:15 pm
hola, gracias esta muy explicativo… saludos
23 Julio 2007 at 1:03 am
muy bueno justo en el clavo!!!!
25 Julio 2007 at 11:31 pm
Hey muy buen tutorial, no podia configurar el userdir, pero ahora gracias a tu howto lo pude hacer.
Saludos cordiales.
23 Agosto 2007 at 8:29 pm
Hola men, muchas gracias por tu explicacion, solo una cosa, no se porque cuando hice
sudo ln -s /etc/apache2/mods-available/userdir* no me funciono me toco hacer enlace a cada uno por aparte y listo el pollo…
salu2
23 Agosto 2007 at 9:42 pm
mmmm… si esta raro, pero pues que bueno que jalo al final.
Saludos!
15 Septiembre 2007 at 12:10 am
eres mi heroe cabron, para los autodidactas prepotentes como yo el que exista personas que hacen paginas tan buenas y tutoriales tan chidos y entretenidos es lo mejor que nos puede pasar.
creo que todos te lo agradecemos
30 Septiembre 2007 at 3:40 am
Esta muy bueno y sencillo, no es facil encontrar algo asi como esto gracias.
Por cierto para “chusmilio” para que salga bien solo te falto el punto “.” y la orden quedaria asi: “sudo ln -s /etc/apache2/mods-available/userdir* .”
sin las comillas
30 Septiembre 2007 at 6:24 pm
mmmm… si esta el punto:
“Bueno, nos metemos al directorio mods-enabled con el siguiente comando “cd ../mods-enabled” o en su defecto “cd /etc/apache2/mods-enabled”, una vez ahi vamos a ejecutar el siguiente comando:
sudo ln -s /etc/apache2/mods-available/userdir* .
¿Qué significa el comando anterior?… el comando anterior lo que nos dice es: crea un enlace simbolico (ln -s) de los archivos que se encuentran en mods-available y cuyo nombre empieze con userdir y termine con cualquier otra cosa (/etc/apache2/mods-available/userdir*) y finalmente crea esos enlaces en la carpeta en la que me encuentro actualmente (eso significa el “.”, nuestra ubicación actual que se supone es mods-enabled) y bueno el sudo es para hacerlo con permisos de superusuario, si no ponemos sudo simplemente los enlaces no se crearán.”
Saludos y gracias, que bueno que sea de utilidas!
12 Noviembre 2007 at 11:04 pm
Hola y muchas gracias, me fue muy útil.
2 Diciembre 2007 at 2:19 pm
Muy bien si tenes sitios virtuales?? como se hace?
Muchas Gracias.
27 Febrero 2008 at 12:49 pm
mas ke excelente, funciona de una
gracias
24 Abril 2008 at 7:16 am
Bueno, para los iniciados en apache la explicacion me parece buena, pero algo liada.
¿no es mas facil utilizar el comando
a2enmod userdir en lugar de hacer los enlaces a mano?
26 Abril 2008 at 2:56 pm
Jajajajaja, wow, no pues no tenía idea, por eso no lo puse así, pero gracias por decirnos y si definitivamente es más fácil como lo mencionas.
Gracias, Saludos!
27 Julio 2008 at 6:41 pm
Muy bueno loco, en un momento todo bien!
25 Agosto 2008 at 7:43 pm
Hola
Mi apache no tiene las carpetas que indicas, sino estas:
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
Algún comentario?
Quiero hacer lo que explicas pero mi apache es diferente, no sé qué hacer.
26 Agosto 2008 at 7:26 pm
Hola. Resolví googleando más. Tiene que ver con la distribución de linux que utilizo. Yo tengo que usar Fedora 4. En esta página está la solución: http://docs.fedoraproject.org/selinux-apache-fc3/sn-user-homedir.html
Sin embargo, lo que realmente quiero es que apache pueda transformarse en un usuario para ejecutar ciertas cosas que sólo puede hacerlo dicho usuario.
Si alguien puede darme ideas lo agradezco. Gracias al creador del blog, aunque no me sirviera directamente me ayudó enormemente en econtrar la solución de mi caso.
27 Agosto 2008 at 2:46 am
hola quisiera que me ayudaran como hacer un servidor de red local con centos como lo hago para poder administrar mi red.
23 Septiembre 2008 at 9:59 pm
Está muy bueno el tutorial, pero es mucho mas fácil (almenos en Ubunu 8.0.4) escribir en consola como root:
a2enmod
y te pregunta que modulo quieres activar de una lista que te entrega, le pones userdir, reinicias apache y listo.
Saludos.
19 Febrero 2009 at 2:51 am
Es verdad que al utilizar el comando “a2enmod userdir” es mas facil, lo hice manual despues que vi uno de los comentarios jaja pero aprendí un poco mas de Linux con esto (novato) e incluso cambie algunas lineas del archivo como tomar una sola carpeta en vez de todo el home y cambiar el nombre de la carpeta por defecto a www. GRACIAS
28 Julio 2009 at 10:33 pm
Hola. Tengo instalado ubuntu server 8.10 y en la carpeta mods-available me aparecen los archivos userdir.conf y userdir.load. No aparece el userdir.mod?
Paso por alto esto, reinicio el apache, aparece Ok pero al ejecutar
http://192.168.1.100/~jaimeandres/prueba.html
me aparece el siguiente error:
The requested URL /~jaimeandres/prueba.html was not found on this server.
Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch Server at 192.168.1.100 Port 80
Gracias por su ayuda.