mysql

Apache + PHP + MySQL en Mac OS X

En esta guía vamos a ver cómo podemos tener en nuestro equipo un entorno de desarrollo MAMP, para poder testear las páginas con las que trabajamos. En concreto vamos a ver cómo hacer esto sobre OS X Lion.

MAMP: Pasos para su instalación

  1. Habilitar PHP en Apache.
  2. Configurar hosts virtuales.
  3. Iniciar el sevidor web Apache.
  4. Instalar MySQL.
  5. Instalar phpmyadmin.

Como ves, no vamos a instalar ni PHP ni Apache. Esto es porque OS X Lion lo trae ya instalado. Solo nos tenemos que preocupar por integrarlo y por añadir un sistema gestor de bases de datos. ¡Vamos allá!

1. Habilitar PHP en Apache

Como ya sabes, OS X Lion trae incorporado PHP. Para comprobarlo, vamos a abrir terminal y vamos a ejecutar:

$ php -v

PHP 5.3.15 with Suhosin-Patch (cli) (built: Jul 31 2012 14:49:18)
 Copyright (c) 1997-2012 The PHP Group
 Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Lo cual nos indica que está instalado PHP 5.3.15 con el parche de seguridad Suhosin.

Para habilitarlo en Apache vamos a editar el fichero /etc/apache2/httpd.conf, y vamos a descomentar la siguiente línea:

#LoadModule php5_module libexec/apache2/libphp5.so

Y con esto ya hemos habilitado PHP en Apache!

2. Configurar hosts virtuales

De manera predeterminada Apache trae los siguientes hosts:

  • http://localhost/~tuusuario/ – Con el contenido de la carpeta /Users/tuusuario/Web/.
  • http://localhost/ – Con el contenido de la carpeta /Library/WebServer/Documents/.

En este ejemplo vamos a alojar cada nuevo host virtual en una carpeta dentro de /Library/WebServer/Documents/. Por tanto, vamos a otorgar permisos de escritura a nuestro usuario:

sudo chmod g+w /Library/WebServer/Documents/

Y ahora vamos a habilitar los hosts virtuales en Apache. Editamos de nuevo el fichero /etc/apache2/httpd.conf y descomentamos la siguiente línea:

Include /private/etc/apache2/extra/httpd-vhosts.conf

Y con esto ya tendríamos nuestro entorno preparado para alojar hosts virtuales.

Host virtual de ejemplo

Vamos a crear un ejemplo. Un host llamado pagina01.local. Lo primero será mapear ese nombre a nuestro host. Con esto logramos que haya un nombre único que apunte a nuestro equipo. Para ello editamos como administradores el fichero /etc/hosts y añadimos la siguiente línea:

127.0.0.1 pagina01.local

Ahora creamos la carpeta donde se alojará la página:

mkdir /Library/WebServer/Documents/pagina01.local/

Y añadimos a la carpeta que acabamos de crear un fichero index.php, que es el archivo predeterminado, con el siguiente contenido:

<?php phpinfo(); ?>

Por último, vamos indicar a Apache que hemos creado un host virtual, dónde lo hemos creado, con qué nombre se accederá, etc. Editamos el fichero /etc/apache2/extra/httpd-vhosts.conf y añadimos lo siguiente:

<VirtualHost *:80>
 ServerAdmin admin@example.com
 DocumentRoot "/Library/WebServer/Documents/pagina01.local"
 ServerName pagina01.local
 ServerAlias *.pagina01.local
 ErrorLog "/private/var/log/apache2/pagina01.local-error_log"
 CustomLog "/private/var/log/apache2/pagina01.local-access_log" common
 </VirtualHost>

Y con esto ya está preparado para funcionar nuestro nuevo host virtual. En cuanto iniciemos el servidor web, podremos consultar la página.

3. Iniciar el servidor web Apache

Por defecto Mac OS X no arranca el servidor web. Para hacerlo simplemente tendremos que acceder a las preferencias del sistema, y en el apartado “Compartir” marcamos la opción “Compartir Web”:

Ventana de habilitación de compartir webs en OS X

¡Y ya tenemos iniciado el servidor web! Puedes probar que ha funcionado accediendo a http://pagina01.local/. Si todo ha ido bien hasta ahora, te saldrá la configuración de PHP.

4. Instalar MySQL

Los equipos de escritorio no incorporan un servidor de bases de datos. Al tratarse de un estándar, vamos a instalar MySQL.

Accedemos a http://dev.mysql.com/downloads/mysql/ y descargamos la versión DMG. Cuando lo hayamos descargado, instalaremos los tres ficheros:

MySQL en el Finder

Una vez instalado, arrancamos el servidor de bases de datos, yendo a las Preferencias del Sistema, accediendo a MySQL y pulsando sobre “Start MySQL Server”:

Preferencias MySQL en entornos MAMP

Ahora vamos a introducir la contraseña del usuario root. Lo podemos hacer o bien así:

$ /usr/local/mysql/bin/mysqladmin -u root password 'contraseña'

O bien siguiendo los pasos del siguiente comando:

$ sudo /usr/local/mysql/bin/mysql_secure_installation

Y con esto ya tenemos instalado, iniciado y preparado nuestro servidor de bases de datos.

5. Instalar phpMyAdmin

PhpMyAdmin es el frontend MySQL más popular. Además funciona en PHP, por lo que nos viene de perlas para poner a prueba nuestra recién creada instalación del entorno MAMP.

Podemos instalarlo en un nuevo virtual host. Para ello tan solo debemos seguir los pasos del apartado en que creamos el virtual host pagina01.local, y crear uno llamado, por ejemplo, phpmyadmin.local

Descargamos la última versión desde http://www.phpmyadmin.net/home_page/downloads.php y la descomprimimos en /Library/WebServer/Documents/phpmyadmin.local/

Por último, copiamos el fichero config.sample.inc.php a config.inc.php, y sustituimos esta línea:

$cfg['Servers'][$i]['host'] = 'localhot';

por esta:

$cfg['Servers'][$i]['host'] = '127.0.0.1';

¡Y ya lo tenemos! Si accedemos a http://phpmyadmin.local/ con nuestro usuario root, y la contraseña que establecimos al instalar MySQL, tendremos acceso al frontend phpMyAdmin.

A partir de aquí, ya podrás crear nuevos hosts virtuales y sus bases de datos a medida que los necesites para poder trabajar sobre tu entorno de desarrollo local.

¡Disfruta de tu entorno MAMP!

Nueva página web de Torrijos

captura5El pasado día 11 de junio se presentó en el salón de plenos del Palacio de Pedro I la nueva página web del Ayuntamiento de Torrijos. Este momento marcó un punto y aparte en este nuevo portal para el ciudadano. Durante los últimos meses hemos dedicado muchísimos esfuerzos, ganas e ilusión a este proyecto, y creo que hemos logrado nuestro objetivo: Ofrecer una web renovada con contenidos de actualidad que sustituyera a la antigua.

MySQL Workbench – Diseño de bases de datos

A menudo las aplicaciones necesitan almacenar información de forma persistente, de manera que pueda ser capturada más adelante. Cada vez son más las aplicaciones de escritorio que lo utilizan, al igual que aplicaciones web, donde los RDBMS más populares son Microsoft SQL Server y MySQL.Este últmo, es sin duda el sistema de bases de datos rey de Internet. Sin embargo, no sé si os pasará como a mí, que trabajar día a día con él a veces me resulta una tarea desorganizada y costosa. Para mejorar eso surge MySQL Workbench.

¿Pero para qué sirve este programa? Es una herramienta visual de diseño, modelado, creación y mantenimiento de bases de datos.

Hasta ahora yo venía funcionando con herramientas con las que, en conjunto, lograba un resultado similar. Para el modelado entidad relación utilizaba Dia, la aplicación de Gnome para la creación de diagramas, o Umbrello, la solución basada en KDE para modelar diagramas UML. Nunca me acabó de convencer ninguna de estas herramientas, aunque lograban su cometido (A veces veía casi más efectivo dibujar las cajitas directamente con un software de diseño vectorial). Posteriormente, bien de forma automática, bien a mano, generaba el código SQL que definía la base de datos. Finalmente, para el mantenimiento del día a día, empleaba mayormente phpmyadmin.

Muchas aplicaciones, muchos cambios de contexto, y mucha semántica que se pierde al pasar de una herramienta a otra. Mmmm eso no mola. Buscando, encuentro una aplicación que hace tiempo que había visto, pero que había olvidado por completo. Efectivamente, me refiero a MySQL Workbench :) Surge como evolución natural de DBDesigner, de FabForce, pues el equipo de desarrollo está liderado por el fundador de DBDesigner, Michael G. Zinner.

Cosas chulas que podemos hacer desde MySQL Workbench:

  1. Ingeniería inversa de DDL de MySQL. A partir del código SQL, sin mediar el servidor de bases de datos, podemos visualizar toda la información en forma de tablas y diagramas generados automáticamente.
  2. Forward engineer, que lógicamente nos permite crear el nuevo código SQL.
  3. Conexión directa con el SGBDR. Podemos incluso sincronizar modelos.
  4. Soporta triggers y procedimientos almacenados.
  5. Diagramas bonitos y personalizables (Por ejemplo, que los únicos campos mostrados sean las claves).

A continuación, pongo un ejemplo de diagrama generado utilizando la base de datos de ejemplo sakila.

esquema de sakila

¿Dónde consigo esta maravilla? Te estarás preguntando. Sígueme… ¿Y dónde funciona? En Windows, Mac OS X y por supuesto Linux. Por cierto, una pega que le veo: Utiliza GTK++ ;-)

Aviso para usuarios de Ubuntu: Existen paquetes .deb de la versión 5.1 Beta disponibles listos para instalar en Ubuntu. Yo estoy ejecutando Kubuntu 9.04 y me han dado problemas de tipo Segmentation Fault en libglade. He probado a compilar e instalar la versión 5.2 Alpha y por el momento todos los errores han desaparecido.