Cómo tener múltiples sitios web en nuestro Mac
Unas las cosas que un usuario novel de Mac no se puede perder, es la de utilizar el servidor web que trae. Si bien, ningún tipo de usuario, diseñador o maquetador, debe perder la oportunidad de aprender las cosas básicas de un servidor web. Esto te sirve especialmente si trabajas en diseño o empiezas a aprender a programar. En la última reunión de bloguers en Barcelona que se celebró el mes pasado, un asistente me había pedido que explicara cómo monto servidores virtuales en mi Mac. Así, de esta forma podemos tener más de un sitio corriendo en nuestro servidor web.
Mac OS X viene con uno de los mejores servidores web instalados por defecto. Esto es posible desde las primeras primerísimas versiones de OS X. Ponerlo en marcha es fácil y no te hace falta grandes conocimientos:


Ahí está el panel de control sharing en Mac OS X. En castellano tendrá una traducción parecida a compartir y basta con hacer clic en el botoncito Start y tendremos el servidor funcionando. Debajo de la lista están las dos direcciones más importantes para acceder a la página por defecto cargada en nuestro servidor web: http://192.168.1.24. Bueno, esta dirección no es la famosa dirección local, así que podemos acceder a esta misma página de 3 formas diferentes:
http://localhosthttp://127.0.0.1http://192.168.1.24*
* El último ejemplo sólo es válido para la red que tengo instalada en mi casa. En vuestro caso puede variar el número.
Bien, si vamos a alguna de estas direcciones, y tenemos activado el servidor web, podremos ver una página por defecto, que no es gran cosa. La dirección para subir ficheros y empezar a ver cambios, y que debes recordar como si fuera la carpeta maestra donde podrás subir archivos de imágenes, html y otras cosas para tener más de un proyecto funcionando:
/Library/WebServer/Documents
Esa dirección en tu ordenador en Mac OS X es a lo que en Internet fuere http://localhost o http://127.0.0.1 para ver la página funcionando. Para acceder a esta carpeta, debes navegar con el Finder o, una cosa que recomiendo, ponerse en forma utilizando la Terminal del OS X:
cd /Library/WebServer/Documents
Así de fácil, ahí verás los archivos por defecto que instala Apache. Podrás borrarlos, moverlos a otra carpeta, etc. Lo importante es, como está ahora todo, sólo nos sirve para tener 1 sitio corriendo a la hora. No pueden existir ni dos, ni tres, ni cuatro. Tampoco podremos utilizar un dominio local, por ejemplo, http://minid.local o http://miweblog pero esto será posible modificando unas poquitas cosas.
Teniendo múltiples sitios en nuestro servidor web
Una cosa espectacular para tener en nuestro servidor web es una configuración que nos permita tener muchos sitios web locales de prueba. Esto nos viene de perlas para trabajar: los diseñadores pueden tener varios clientes en una sola instalación de servidor web, con nombres de dominios fáciles y posibilidad de usar MySQL, PHP u otros lenguajes. También va de perlas para testear otros programas en PHP que descargamos en algunos sitios recomendados.
¿Qué nos hace falta tener para empezar a tener sitios múltiples?
- Crear la carpeta donde se alojará nuestro sitio de prueba.
- Editar el archivo de configuración de Apache.
- Crear un dominio local en nuestra máquina.
- Reiniciar el servidor.
Primero empezamos creando la carpeta donde estarán los archivos de nuestro supuesto sitio alternativo. Si ya te olvidaste de cómo hacerlo, recuerda la guía de carpetas que tiene el servidor web en Mac OS para la carpeta de documentos del servidor web: /Library/WebServer/Documents. Una vez dentro (usando el Terminal) escribimos:
cd /Library/WebServer/Documents/
mkdir micliente
Ya tenemos la carpeta de nuestro sitio alternativo y, siempre que quieras trabajar en ella, sólo debes recordar que la guía de carpetas es /Library/WebServer/Documents/micliente. Ahora, tenemos que meternos a configurar el servidor web Apache para que tenga activado como servidor virtual esta carpeta, además de la que ya trae por defecto.
Modificar Apache puede ser engorroso. Es un archivo de texto largo, y puede darle más de un dolor de cabeza a alguno. Incluso, si uno toca algo y no sabe como arreglarlo puede dejarnos el servidor web sin funcionamiento. Pero no hay que alarmarse, lo primero, es averiguar qué archivo necesitamos modificar las preferencias de nuestro servidor, y este se llama httpd.conf. Lo podrás encontrar en /etc/httpd/ y sólo se puede editar en modo administrador del ordenador –conocido como root.
Abrimos el Terminal del Mac OS X y escribimos esto:
$ sudo su
Password: tupassword
Si usamos la clave de administrador (que un buen día escribiste en al iniciar Mac OS X) cambiará el modo de uso, dejarás de ser, para esa sesión, un usuario normal y serás un superusuario (podrás cambiar, ejecutar e instalar aplicaciones que requieran aprobación de administrador del sistema). Si todo sale bien, luego en tu Terminal mirarás un símbolo root#. Si fueras usuario normal, seguiría usando el símbolo de dólar $.
diego-lafuentes-computer:/Library/WebServer/Documents root#
Eso es lo que verás en la Terminal de tu Mac OS X. Ahora podrás modificar el archivo de configuración de Mac OS X. Ahí mismo, así, con ese root# en el Terminal debes escribir:
mate /etc/httpd/httpd.conf
Una cosa importante, el comando mate, pertenece a un programa de edición de textos que tengo instalado en mi Mac OS X. Si no tienes un editor de texto que lo permita, deberás utilizar lo que viene por defecto, que puede ser bastante complicado o, utilizar otras herramientas.
Una vez ejecutado el comando, se abrirá el editor de textos con el archivo de configuración. Antes de empezar a secarse el sudor, hay que descender casi hasta el final del archivo, hasta que podamos leer:
### Section 3: Virtual Hosts
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
Ahí comienza la sección de virtual hosts. A partir de aquí, nos ponemos en marcha editando las cosas necesarias. Primero, hay que entender que, al borrar cualquier # en este archivo lo que se hará será activar esa línea y será interpretada como un comando a ejecutar. Por ello, para documentar este archivo, los programadores comentan usando este símbolo. Siempre que queramos deshabilitar una cosa del servidor, simplemente debemos escribir al comienzo de cada línea el símbolo #.
Bien, una vez en esta parte,leeremos esta línea unos retornos de carro más abajo:
#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80
Más que seguro, encontrarás esta línea comentada (recuerda que irá con un #) y necesitarás habilitarla para los servidores virtuales. Es algo que, en muchos casos se puede prescindir pero, no cuesta nada activarlo por si en algún futuro queremos utilizar IPs en vez de nombres de dominio locales. Descomentamos la línea simplemente eliminando #.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
Seguimos con las modificaciones, ahora la chicha. Ahora vendrá la sección donde escribiremos cada sitio alternativo. Los que queramos, 10, 20, 30 o mil pueden ir dentro de este espacio. Apache viene con un ejemplo de VirtualHost, para utilizarlo hay que descomentar las líneas de <VirtualHost *:80> hasta </VirtualHost>, nunca descomentes el texto explicativo o no funcionará Apache. Modifica este trozo de texto para que quede de esta forma:
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost>
DocumentRoot /Library/WebServer/Documents/micliente/
ServerName micliente
</VirtualHost>
Recuerda que, al empezar, has creado una carpeta llamada micliente en /Library/WebServer/Documents, que es donde se aloja y se alojan otros sitios virtuales. Tenlo siempre en cuenta. Es necesario este paso para decirle al servidor que, cuando una persona escriba en nuestra máquina la palabra http://micliente en el navegador, éste sepa en donde estás los archivos necesarios para mostrar. Salvamos el archivo httpd.conf y vamos a crear un dominio en nuestra máquina.
Para crear un dominio en nuestra máquina, sin tener que editar archivos, lo haremos de forma gráfica y fácil. Para ello, debemos lanzar un programa llamado Netinfo Manager que lo podemos encontrar en la carpeta de Utilities en nuestro Mac OS X. Este es el aspecto que tiene el NetInfo Manager cuando lo abráis:

El candado que observáis en la parte inferior, indica que, la aplicación ha sido ejecutada por un usuario no-administrador del sistema. Para crear nuestro propio dominio, debemos ser super-usuario pero, a diferencia del ejemplo anterior, no tenemos que ir a un Terminal y ejecutar el comando sudo para identificarnos como super-usuario. Lo haremos sin problemas desde esta misma ventana. Haz clic en el icono de candado, saldrá una ventana preguntándote la clave de administrador.

Escribe tu contraseña y podrás editar todos los valores. Una vez aprobado como super-administrador, hacemos clic en la lista del medio y elegimos el item machines. Una vez escogido, en la siguiente lista saldrán las máquinas especificadas. Tomaremos una como ejemplo y la modificaremos para que sirva a nuestros propósitos. Selecciona que dice “localhost” y verás esta pantalla:

Bien, como último paso, haz clic en el botón Duplicate que está en la parte superior. Se creará una entrada más en la lista.

Como observarán, he puesto micliente en el nombre del servidor. Así cada vez que escriba micliente en el navegador, el servidor Apache sabrá lo que tiene que buscar. Además, en nuestra configuración de VirtualHosts hemos escrito como valor de dominio la palabra micliente: ServerName micliente. Esto está chupado, ya tienes listo todo casi… falta reiniciar el servidor web y listo.
Cómo último paso, luego de salvar y confirmar los cambios, tienes que volver a las preferencias de sistema, en la sección Sharing, y donde dice stop, hacemos clic. Se parará el servidor web y nos lo avisará en la misma ventana. Luego de corroborar que esto ha ocurrido, presionamos start de nuevo y ya podemos ir a nuestro navegador favorito y poner http://micliente para ver el resultado.
Si todo ha ido bien, saldrá un índice de carpeta, indicando que no hay ningún archivo. Prueba de poner un HTML con unas pocas líneas de código para ir haciendo pruebas.
18 Comentarios en “Cómo tener múltiples sitios web en nuestro Mac”
Cómo tener múltiples sitios web en nuestro Mac…
"Unas las cosas que un usuario novel de Mac no se puede perder, es la de utilizar el servidor web que trae. Si bien, ningún tipo de usuario, diseñador o maquetador, debe perder la oportunidad de aprender las cosas básicas de un servidor web. Es…
Cesc
11 de Diciembre de 2006 a las 6:22 pm
O simplemente utilzar … http://headdress.twinsparc.com/
MAt
11 de Diciembre de 2006 a las 6:33 pm
Esto lo podes hacer y de manera mas facil ya que el sitio puede estar en cualquier parte de la compu con Headdress
http://headdress.twinsparc.com/
Sale solo u$s14.99, lo vengo usando hace tiampo ya y me ha simplificado la vida, sobre todo que lo uso en conbinacion con MAMP (http://www.mamp.info/en/index.php)que te da acceso a un server apache, mysql, php fuera de las entrañas del OS, lo que te permite tener el entorno de desarrollo mas controlado.
O simplemente ahorrarme 14.99 y hacerlo en 2 minutos tocando 3 lineas de código en el httpd.conf, y 15 segundos configurando una máquina en mi OS X y listo. Imagino que estas aplicaciones vienen bien para los QUE SABEN, donde uno puede acelerar este proceso y luego, si tiene algún inconveniente puede ir a los archivos correspondientes (mencionados en el post) para modificar a gusto.
szy
11 de Diciembre de 2006 a las 7:53 pm
Precisamente me estaba configurando ahora mismo un Virtual Host. Menuda coincidencia
El caso es que con NetInfo no me ha funcionado la redirección de dominio así que he tenido que editar a mano el fichero /private/etc/hosts.
Una cosilla, como antiguo usuario de skEdit, ¿sabes si se pueden editar ficheros del sistema desde dicho programa? Gracias
Imagino que sí, se puede encontrar los archivos navegando el finder. Cuando vayas a salvar te pedirán los permisos de usuario.
Manuchis
11 de Diciembre de 2006 a las 9:14 pm
Muy util, estoy tratando de redireccionar el “servidor” a mi carpeta Web de mi usuario.
Alguien sabe como puedo lograrlo?
No se si conocen los screencasts de FreeMacBlog.com, tienen uno con respecto a este tema.
http://www.freemacblog.com/mac-server-series-hosting-multiple-web-sites-on-a-single-mac/
Cesc
12 de Diciembre de 2006 a las 3:10 pm
Para añadir un “dominio virtual” yo lo que hago es lo siguiente:
Edito el fichero /etc/httpd/httpd.conf y añado las siguientes
DocumentRoot /Users/cesc/Sites/cliente_1
ServerName cliente
Despues añado la linea …
127.0.0.1 cliente
en el fichero /etc/hosts.
Y finalment reinicio el servidor Apache, apachectl restart.
indix
12 de Diciembre de 2006 a las 7:09 pm
Gràcies Diego, ho provaré desseguida que tingui una estoneta lliure!!!
Sóc un vell usuari de slackware que ha decidit passar-se a mac al portàtil. Durant la trobada que comentes vaig aprofitar per preguntar-te pel tema i he de dir que és un plaer compartir una estoneta amb persones com tu i la resta d’assitents, que sense res a canvi oferiu ajuda als que començem en un nou entorn.
Salut i fins la propera!
Manuchis
13 de Diciembre de 2006 a las 3:56 am
Funcionó! gracias!
jordi
16 de Diciembre de 2006 a las 8:26 pm
Hola Diego,
no consegueixo que m’apareixi la meva pagina html, sempre m’apareix - “Funciona!El servidor web Apache està instal·lat en aquest lloc!”
Saps a què pot ser degut ?
Gracias por el blog muy interesante.
Bernat
28 de Diciembre de 2006 a las 5:53 pm
Hola,
He seguido tus instrucciones y no me funcionaba, luego he cambiado lo siguiente y ha funcionado:
Tú habías puesto esto:
DocumentRoot /Library/WebServer/Documents/micliente/
ServerName micliente
Y creo que debería ser:
DocumentRoot /Library/WebServer/Documents/micliente/
ServerName micliente
Salut!
Bernat
28 de Diciembre de 2006 a las 5:59 pm
En mi comentario anterior no aparecen los tags. Debería ser así (sin los símbolos < y >):
Tú habías puesto esto:
VirtualHost
DocumentRoot /Library/WebServer/Documents/micliente/
ServerName micliente
VirtualHost
Y creo que debería ser:
VirtualHost *:80
DocumentRoot /Library/WebServer/Documents/micliente/
ServerName micliente
VirtualHost
Joaquin
4 de Enero de 2007 a las 1:43 pm
Para que luego digan que los Mac son fáciles de configurar.
Retomo este tema por que encontré un pequeño problema el otro díá mientras configuraba un virtualhost en mi mac.
No tengo la instalación por defecto de apache, la actualicé hace algún tiempo al igual que el mysql por lo que algunos paths cambiaron y mi arbol de archivos inicia así.
/apache2/
Bueno el caso es que no sé por que razón mi httpd.conf requiere adicionar un asterisco (es decir esta misma explicación más un asterisco) para que funcione, de lo contrario me sale un [warn] de apache que dice que virtualhost no tiene configurado ninguno.
mi configuración quedó así.
DocumentRoot /Library/WebServer/Documents/micliente/
ServerName micliente
Hecho esto ya funciona a la perfección
Saludos.
es una pena que no pueda reeditar pero bueno haber si coloco sólo la linea que cambié… va tambien para jordi en este mismo hilo que tiene el problema que me pasaba a mi, es decir que siempre muestra lo de que la instalada de apache es correcta.

meneame.net
11 de Diciembre de 2006 a las 5:55 pm