HTTP y PHP en Raspberry

HTTP y PHP en Raspberry, o lo que es lo mismo, un servidor Web en nuestra pequeña Raspi. La tarjeta Raspberry puede – faltaría más – convertirse en un sencillo pero potente servidor Web. Y si al mismo le añadimos la potencia del lenguaje de servidor PHP estamos hablando ya de muchas más posibilidades de las que podemos imaginar. Vamos a describir una de las formas (hay otras) de instalar un servidor Web + PHP en la Raspberry.

Aunque podemos optar por el típico paquete LAMP, opción asequible en el sistema Raspbian, hemos elegido un servidor algo más liviano y añadirle, además, las correspondientes capacidades PHP. En esta entrada no comentaremos la opción de BBDD asociada, dejando este tema para más adelante. A continuación te comentamos su instalación de la forma más sencilla posible. Los pasos que hemos de seguir son:

1) Efectuar un update de nuestro sistema
2) Ajuste (opcional) a IP fija/estática en nuestra red local
3) Instalación del servidor Web (lighttpd)
4) Instalación/configuración de PHP
5) Otorgamiento de permisoss
6) Prueba del servidor Web
7) Ejemplo sencillo en PHP

Así que sin más preámbulos … vamos allá

– Paso (1) Efectuar un update de nuestro sistema –

Hemos de comentar que la instalación del servidor Web, en nuestro ejemplo, se efectua sobre una versión “Wheezy” de Raspbian de fecha 2013-02-09 , podemos verificar que es la nuestra con ejecutar el comando

uname -r

el cual nos devolverá

no obstante, no debería darnos problemas en otras versiones.

Efectuamos el update comentado mediante

sudo apt-get update

– (2) Ajuste (opcional) a IP fija/estática en nuestra red local –

Este paso no es mandatorio, pero si queremos que la IP de nuestra Raspi sea siempre la misma convendría que modifiquemos la configuracion del fichero /etc/network/interfaces. Es aconsejable realizar una copia del fichero interfaces antes de modificarlo, para lo cual, efectuamos una copia de seguridad

sudo cp /etc/network/interfaces /etc/network/interfaces.old

y ahora editamos para que la IP pase a ser estática con

sudo nano /etc/network/interfaces

El contenido, de acuerdo a nuestro rango de IPs privadas puede ser algo como esto

auto lo

iface lo inet loopback
iface eth0 inet static
address 192.168.0.22
netmask 255.255.255.0
gateway 192.168.0.1

De esta forma no tendremos que preocuparnos de si la IP varía al arrancar, y podremos localizar siempre nuestra Raspberry bajo la misma IP.

Si hemos configurado la red local con la Raspberry a IP estática conviene que reiniciemos la Raspberry para que este cambio se haga efectivo. Podemos verificar que ha tenido efecto mediante el comando

ifconfig -a

– Paso (3) Instalación del servidor Web (lighttpd) –

Para la instalación del servidor Web ejecutaremos

sudo apt-get install lighttpd

este se instalará y se auto-ejecutará, además de que quedará configurado para arrancar cada vez que se encienda nuestra Raspberry.

– Paso (4) Instalación/configuración de PHP –

Vamos ahora a instalar PHP, un lenguaje del lado servidor que nos servirá -valga la redundancia- para realizar interesantes aplicaciones, y no estar anclados al típico código HTML. Para su instalación efectuamos el comando siguiente, el cual realizará una instalación de múltiples paquetes, pero es importante reseñar que estos se han de instalar estrictamente en el orden que damos, de otra forma se nos puede instalar el servidor Apache, cosa que no deseamos. Ejecutamos

sudo apt-get install php5-common php5-cgi php5

Una vez instalado PHP, hemos de efectuar alguna configuración adicional para que el servidor reconozca los scripts PHP, por ello habilitamos el módulo fastcgi-php mediante

sudo lighty-enable-mod fastcgi-php

y, a continuación, reiniciamos el servicio ya actualizado mediante

sudo service lighttpd force-reload

– Paso (5) Otorgamiento de permisos –

Los directorios típicamente utilizados por un servidor web en linux se sitúan en /var/www , y el usuario típico para dicho entorno suele ser www-data. Ahora vamos a crear el grupo y usuario estándar para nuestro servidor, a la par que otorgamos los permisos pertinentes y añadimos a nuestro usuario por defecto (pi) al grupo comentado. De esta forma no será preciso que el usuario root (su) sea siempre el que pueda operar en /var/www. Vamos allá

Cambiamos el usuario y grupo al directorio

sudo chown www-data:www-data /var/www/

Damos los permisos adecuados al directorio

sudo chmod 775 /var/www/

Añadimos el usuario pi al grupo www-data

sudo usermod -a -G www-data pi

Ahora, reiniciamos la Raspi… por si acaso.

– Paso (6) Prueba del servidor Web –

Una vez arrancada la Raspi procedemos a probar si el servicio Web (http) funciona correctamente, para lo cual tan solo hemos de abrir un navegador de cualquier ordenador de nuestra red doméstica (local) y teclear la IP de la Raspi anteriormente configurada (192.168.0.22 en nuestro ejemplo)

aunque también podemos probarlo desde la propia Raspberry, abriendo un navegador y tecleando en el mismo http://localhost

(http://127.0.0.1 también puede servirnos)

– Paso (7) Ejemplo sencillo en PHP –

Como quiera que Linux utiliza el directorio /var/www/ para posicionar sus archivos de servidor web, nos dirigimos allí y verificamos que la instalación de lighttpd ya ha colocado un fichero .html en dicha ubicación. Es, en concreto, el fichero que se nos muestra al acceder a la IP de la Raspi mediante el navegador externo.

Normalmente – y si el motor PHP está activado – podremos situar en este directorio el fichero que, por defecto, se visualizará al acceder al servidor desde un navegador. Lo “normal” es que el fichero por defecto sea nombrado como index.html (o .htm) si está constituido en lenguaje HTML; o bien index.php si se ha escrito utilizando este lenguaje.

A modo de prueba “muy práctica” vamos a colocar un nuevo fichero denominado index.php en la carpeta  /var/www/ , de forma y manera que al volver a acceder a nuestro servidor se muestre el mismo. Este fichero contiene parte de código HTML y parte PHP, razón por lo que su nombre habrá de ser index.php. Pero antes de efectuar escritura alguna en el disco efectuaremos una copia de seguridad del fichero que ahora tenemos allí, para lo cual ejecutaremos

sudo mv /var/www/index.lighttpd.html /var/www/index.lighttpd.old

y ahora procedemos a crear el fichero index.php comentado. Podemos teclear su contenido en la propia Raspi mediante el comando

sudo nano /var/www/index.php

y escribimos en el mismo

<html>
<head>
<title> Raspi-Web </title>
</head>
<body>
<p>Datos internos de mi Web-SERVER</p>
<br>
<?php
phpinfo();
?>
</body>
</html>

aunque también podemos – para más comodidad – descargarlo desde aquí …

[wpdm_file id=3 title=”true” ]

Ahora todo lo que hemos de hacer es descomprimir el fichero .zip, copiar index.php en /var/www/ y volver a acceder al servidor de nuestra Raspi.

Y hemos dicho que el fichero es “muy práctico” porque utiliza una función PHP – en concreto phpinfo() – que nos devuelve la configuración completa de nuestro servidor. Conviene darle un vistazo y, muy probablemente, tengamos que volver a consultarla si queremos seguir programando en PHP pero eso … es ya otra historia.

A DIVERTIRSE con el servidor Web-Raspi.

  Bitcoin Currency Converter
Amount of BTC to convert
To currency:
1BTC =