Hace poco tiempo, escribí acerca de cómo montar un entorno de desarrollo completo bajo MacOs. El motivo de escribirlo, fue por que bajo mi criterio, hay mucho desconocimiento sobre los programas existentes en Mac para desarrollar páginas web, algunos gratuitos, otros bastante asequibles.

En dicho artículo, comentaba todos los programas que uso a diario en mi flujo de trabajo, así como alguna alternativa. La parte más importante de dicho tutorial, la de montar un servidor web, la pasé bastante por encima, ya que no era el propósito de dicho artículo. En este, entraremos un poco más en detalle sobre como instalar desde cero MAMP (Apache, MySQL y PHP). Y creedme, es bastante fácil.

¿Qué es MAMP?

MAMP no es más que una recopilación de software (en realidad son servicios), que instalará de forma rápida. Si nos dedicamos (o queremos hacerlo) o simplemente por hobbie, al desarrollo web, tener un servidor web montado en casa o en la oficina va a acelerar todo el proceso de manera enorme. Así que, manos a la obra.

MAMP está formado por:

  • Apache: Es el servidor web más usado del mundo, por su velocidad, por que es seguro,  y por que es open source (osea, no hay que pagar ninguna licencia). Aquí tenéis su sitio oficial.
  • MySQL: Es un servidor de base de datos, también open source. La gran mayoría de las páginas web que visitáis a diario, almacenan sus datos en mysql. Digamos que es la base de datos más extendida en los servidores web. Aquí su página oficial.
  • PHP: Es un lenguaje de script interpretado con el cual programaremos páginas web. Tienes más información en su página oficial, y si te das una vuelta por mi blog, verás que hay bastantes posts al respecto.

Las dos primeras aplicaciones, corren como servicios del sistema. Es decir, una vez arrancados, no veremos nada, simplemente están a la escucha, esperando que les llegue una petición. El tercero, será el encargado de realizar tareas de lado del servidor, generar una respuesta, y mandársela al cliente que ha realizado la petición. Imaginaros que entráis en una página donde tenéis que introducir vuestro usuario y contraseña. Apache sería el encargado de mandaros la página que solicita el usuario y contraseña. Una vez los rellenemos, son devueltos de nuevo al servidor web, que mediante lo que hayamos programado en PHP, consultaremos la base de datos (mysql) y permitiremos o denegaremos la entrada.

Por ejemplo, el sistema de blogs mas usado del mundo (wordpress) usa estos tres sistemas. Al igual que el CMS más extendido (joomla), o que uno de los paneles de administración de servidores (Plesk).

Descargando e instalando MAMP

Bueno, que me enrollo, y seguro que si queréis instalar MAMP es por que todo lo de antes ya lo sabéis. Vamos a su página oficial, y descargamos la versión gratuita (a fecha de escribir este tutorial, se incluyen la gratuita y la profesional, pero tranquilos, usaremos sólo la gratuita). Ahora vamos a por un café, por que son 160 megas….

instalar-mamp

Una vez descargado, moveremos la versión gratuita a nuestra carpeta de aplicaciones…. y ya está instalado. Así de simple, Apache, PHP, y MySQL.

Poniéndolo todo en orden

Por defecto, Apache escucha en el puerto 80, y MySQL en el 3306. En los servicios que instala MAMP, estos puertos están cambiados. Apache está en el puerto 8888 y MySQL en el 8889. Esto es un engorro, ya que cuando queramos entrar a nuestras webs, lo tendremos que hacer mediante http://localhost:8888 y conectar a la base de datos por el 8889. Vamos a ponerlo como en cualquier sitio, en sus puertos de toda la vida. Tenemos dos opciones:

1. La fácil, el modo visual

localizacion-ejecutable-mamp

Vamos a nuestra carpeta de aplicaciones, entramos en el directorio MAMP y ejecutamos el fichero MAMP.

Se nos abrirá un pequeño panel de configuración en el que podremos iniciar los servicios, detenerlos, o cambiar la configuración (opción “preferencias”). Pinchamos en preferencias, vamos a la pestaña puertos, y pinchamos sobre “Usar los puertos por defecto de Apache y MySQL“. Ya de paso, vamos a la pestaña Iniciar/Detener, y desactivamos la cuarta opción “Abrir página de  inicio al arrancar” (yo al menos, la encuentro engorrosa, pero esto es al gusto de cada uno….). Y ya, listo.

Panel de inicio de MAMP

2.- La consola, la de toda la vida

Nos dirigimos a Aplicaciones/MAMP/conf/Apache, y en el fichero httpd.conf podemos cambiar el puerto en el que escucha apache (recordamos, por defecto en MAMP 8888). Una vez guardado el fichero, será necesario reiniciar el servicio.

Mas cositas…

Pero pocas. Primero, en la carpeta Aplicaciones/MAMP tenemos un fichero que nos va a servir para agregarlo al dashboard como widget. Para mí, es supercómodo abrir el dashboard, pinchar en el widget del MAMP y ya está todo arrancado. La otra opción es poner  en el dock la aplicación de MAMP que hemos ejecutado antes, de forma que la tengamos siempre a mano (en este caso, quizá os resulte útil desmarcar la opción “Detener Servidores al para MAMP” en Iniciar/Detener).

Por defecto, Apache va a mirar el contenido de Aplicaciones/MAMP/htdocs. Supongamos que queremos que también sirva las páginas que tenemos en otra carpeta de nuestro disco duro, o mejor aún, en una carpeta de nuestro dropbox (no me cansaré de decirlo, si no lo usas ya, instalalo). En mi caso, con el siguiente comando

ln -s /Users/jesus/Dropbox/webs /Aplications/MAMP/htdocs/dropbox

Obviamente, tendréis que cambiar la orden y adecuarlas a vuestras rutas.

Con eso, cuando acceso a http://localhost/dropbox veo todas las webs que tengo en mi dropbox (lo tengo así en casa, en la oficina, y en el portatil, de forma que modifique lo que modifique, lo tengo en todos los sitios actualizado).

Otra forma de hacer esto, es mediantes VHosts (Hosts Virtuales, Virtual Hosts). Esto require crear una entrada en nuestro archivo hosts local, y tocar el archivo de configuración de apache (httpd.conf). Pero esto, ya lo veremos más adelante, si no, de que voy a escribir?

Para realizar estas pruebas, he usado Snow Leopard con las últimas actualizaciones disponibles. No obstante, es posible realizar todo lo anterior en cualquier sistema Linux, y también en windows (ver WAMP o XAAMP)

Espero vuestros comentarios, dudas y sugerencias.