Servidor Web

Partiendo del sistema operativo de Raspberry Pi Raspbian limpio, tenemos que realizar algunas configuraciones e instalar el software necesario.

Como primer paso finalizar la instalación de raspbian. Conectando teclado, ratón y pantalla por hdmi el instalador de raspbian en modo texto nos permitirá seleccionar el idioma así como cambiar la configuración de localización, configuración de teclado y algunos parámetros mas (se puede hacer overclocking al procesador, aunque tampoco lo veo necesario).

Una vez finalizada la configuración, dependiendo de nuestras necesidades de red, tendremos que modificar la configuración de red. En nuestro caso añadir el punto de acceso WiFi y modificar la configuración de red para que la máquina tenga una IP fija y poder redireccionar en el router ADSL.

MySQL

En primer lugar instalamos el servidor de base de datos que emplearemos para almacenar la información no instantanea de los sensores (la estación grabará un registro por hora con temperatura, humedad y presión y algún que otro dato) y para el CMS donde serviremos está página web que estaís leyendo. Instalaremos también el cliente mysql para poder hacer queries directamente desde la línea de comandos.

Para instalar, simplemente escribimos en la línea de comandos:

sudo apt-get install mysql-server mysql-client

Al instalar nos pedirá introducir un password para el usuario de base de datos root, recomiendo no dejarlo en blanco.

 

Apache

La parte web pura y dura será servida por Apache y PHP. Por lo que procedemos a instalar:

sudo apt-get install apache2

PHP

La web que sirve los datos y el CMS son dinámicos y accederán tanto a Base de Datos como a ficheros. Por sencillez de configuración y manejo, y dado que el CMS que he elegido para la esta Web lo requieren, instalamos PHP:

sudo apt-get install libapache2-mod-php5

También necesitaremos instalar el plugin de conexión de php con mysql. Existen también multitud de paquetes que proporcionan a php de más funcionalidad, a continuación un listado de los dipsonibles:

php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

Para este proyecto es imprescindible instalar el conector mysql:

sudo apt-get install php5-mysql

phpMyAdmin es una herramienta Web que nos permite gestionar la base de datos. Básicamente es un cliente de base de datos en formato Web. Es posible instalarlo opcionalmente, aunque tampoco es imprescindible. Si se va a emplear el servidor web para más cosas que el proyecto que nos atañe lo veo conveniente. Para instalarlo:

sudo apt-get install phpmyadmin

Concrete5 es un gestor de contenidos (CMS) gratuito, sencillo y potente. En mi trabajo y fuera de el he probado multitud de CMS distintos, algunos extremadamente potentes, como Joomla, por ejemplo, otros más sencillos. Esta web es más una web pura que una tienda online, por lo que Joomla o similares son demasiado complejos y configurables para hacer una web sencilla.

El entorno de trabajo de CMS es muy visual y dinámico, las operaciones las realiza mediante Ajax y es bastante veloz. Es menos configurable y flexible que otros gestores, pero para la Web es suficiente.

La instalación es sencilla, basta con descargar de la web de concrete5 en la sección "Developers" el archivo .zip. y descomprimirlo en la carpeta del servidor web que contiene los archivos de la web, esto nos crea una carpeta que recomiendo renombrar. Luego entramos en el navegador y entramos en la ruta de nuestro servidor y la carpeta que hemos renombrado para instalarlo.