Вы находитесь на странице: 1из 9

7 DE JUNIO DE 2012

Servidor web con Raspberry Pi

Antes de empezar recomiendo tener instalado y configurado la versin de Debian


oficial de la web de Raspberry Pi. En la web del IEEEsb-UniOvi he escrito un artculo
explicando los pasos para instalar y configurar adecuadamente el sistema.
Servidor Web
Hay que instalar/configurar 6 tipos de programas: Acceso SSH (para administrar
remotamente), Apache (servidor), PHP (para las pginas dinmicas), MySQL (base
de datos), phpMyAdmin (para administrar fcilmente las bases de datos) y Cliente
de DDNS (para mantener actualizada la IP de casa).
Para ello usar el manual publicado en: , y pondr aqu un resumen (recomiendo
visitar la web original, pues viene todo explicado paso a paso).

Habilitar SSH
Nos permitir ejecutar los comandos de la consola desde otro ordenador y de paso
podremos acceder a los ficheros del Raspberry Pi usando un cliente de sFTP
(recomiendo utilizar FileZilla).
Comandos a ejecutar (en el Raspberry Pi):

sudo service ssh start

Para iniciar el servicio ssh.

sudo insserv ssh

Para que se inicie siempre que encendamos el Raspberry Pi se pueda utilizar el


SSH. Desde que ejecutamos sto, los siguientes comandos que hay en este manual
se pueden ejecutar desde el propio Raspberry Pi o desde otro ordenador
(conectndonos al Raspberry Pi usando SSH).

Servidor Web Apache


[Texto original, en ingls] Para que todo funcione se necesita instalar el propio
servidor, el ms comn es Apache. Antes de empezar hay que prepararse para que
todo funcione. Primero crearemos el grupo de usuarios para el servidor:
sudo groupadd www-data
1
sudo usermod -a -G www-data www-data
2
Y despus actualizamos los repositorios para evitar fallos en la instalacin:

sudo apt-get update

Llegados a este punto, y antes de empezar la instalacin tambin recomiendo


actualizar los posibles programas que tengamos sin actualizar, mediante el
comando:

sudo apt-get upgrade

Ahora ya podremos instalar el Apache:

apt-get install apache2

Si todo ha ido bien, podremos visitar desde el navegador la pgina web de prueba,
se titular It works! y un par de frases ms. Si no funcionara nos dara un error
de no encontrado. Para poder visitar la web desde otro ordenador de nuestra habr
que conocer la IP del Raspberry Pi (en la web de las instrucciones hay capturas de
pantalla ms esclarecedoras) y para saber la IP se ejecutar el comando:
ifconfig
1
En el que el apartado inet add: veremos la IP (de la red eth0). Habitualmente
ser algo del tipo 192.168.10.xx
NOTA: La IP 127.0.0.1 es una IP reservada que se usa para conectarse al propio
ordenador o para comprobar que funciona la Red, ms informacin en la Wikipedia:
Localhost.
Accedemos con el navegador a la IP del Raspberry Pi desde nuestro
ordenador: http://192.168.2.105(en tu caso ser otra IP diferente). Si queremos
aadir ms ficheros, carpetas y similar se encontrarn en el
directorio /var/www/ del Raspberry Pi. Hagamos un Hola mundo:
sudo nano /var/www/holamundo.htm
1
Y escribimos lo siguiente en el fichero:

1
2
3
4
5
6
7
8
9

<html>
<head>
<title>Titulo de la web</title>
</head>
<body>
<h1>Hola mundo</h1>
<p>Acabo de escribir mi primera web en mi Raspberry Pi.<br />&iquest;Mola, no?</p>
</body>
</html>

Para cerrarlo, como siempre, Control+X, nos preguntar si quieres guardar el bfer
(pulsando la S, para decir que s) y luego ENTER para guardar el fichero con el
nombre que pusimos antes. Ahora si
visitamos: http://192.168.2.105/holamundo.htm veremos nuestra pgina web.

SERVIDOR WEB PHP


[WEB original, en ingls] Con Apache se pueden mostrar pginas con HTML, pero
para hacer webs de verdad ser necesario poder ejecutar contenido dinmico, y
en esto el PHP es el rey. Procedamos a su instalacin:
sudo apt-get install php5
1
Tras terminar, instalemos los dems paquetes que podramos necesitar (en la web
original ponen ms paquetes, as que pongo lo que a mi me funcion):

sudo apt-get install libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-comm


odbc

Tras esta segunda instalacin, reiniciar (sudo reboot).


Y para comprobar que funciona, haremos la web de pruebas de PHP, que consiste
en una nica funcin (son los mismos pasos que para crear la web en html):
sudo nano /var/www/phpinfo.php
1
Y luego rellenar el fichero con lo siguiente:

1
2
3

<?php
phpinfo();
?>

Si al entrar en http://192.168.2.105/phpinfo.php (usar la IP que corresponda)


vemos una web con mucha informacin es que todo ha funcionado correctamente.

SERVIDOR WEB MySQL

[WEB original, en ingls] Con Apache y PHP ya podremos hacer webs dinmicas y
muy chulas, pero en cuanto nos demos cuenta, necesitaremos una base de datos,
lo ms normal es utilizar MySQL, instalmoslo:
sudo apt-get install mysql-server mysql-client php5-mysql
1
Tras la instalacin, reiniciar. Y al terminar de reiniciar iniciaremos el servidor de
MySQL:

sudo service mysql start

Para comprobar que funciona ejecutaremos el siguiente comando (siendo


CONTRASEA la contrasea que hayamos puesto antes, ojo, que delante de
nuestra contrasea hay que poner una p):

mysql -uroot -pCONTRASEA

Si aparece mysql> en la pantalla es que todo ha funcionado. Para poder volver a


ejecutar comandos de Linux normales pulsaremos Control+C y desaparecer el
mysql> para mostrar el habitual pi@raspberrypi:~$.
Durante la instalacin preguntar por la contrasea del administrador de la base
de datos, recomiendo utilizar una contrasea segura y diferente de la que usemos
en el Raspberry Pi.

SERVIDOR WEB phpMyAdmin


[WEB original, en ingls] Para administrar una base de datos MySQL lo ms sencillo
es utilizar phpMyAdmin, pues tiene una interfaz web con mucha ayuda y fcil de
utilizar.
sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
1
Durante la instalacin nos preguntar qu tipo de servidor tenemos,
seleccionaremos Apache (aparece un * en los corchetes, se marca/desmarca con el
espacio y se acepta con el ENTER). Despus preguntar si se quiere configurar la
base de datos, diremos que s. Y nos preguntar por la contrasea de MySQL (la
que pusimos antes) y a continuacin por una contrasea para phpMyAdmin
(recomendable que sea diferente, pero si es para pruebas podemos usar la
misma). Al finalizar editaremos el siguiente fichero:

sudo nano /etc/php5/apache2/php.ini

El siguiente cdigo se puede escribir en cualquier sitio, pero para ser coherentes
bajaremos unos dos tercios de la web hasta encontrar la seccin Dynamic
Extensions y escribiremos en una nueva lnea (es decir, que la lnea no empiece
por ;), yo lo hice justo despus del ttulo:
extension=mysql.so
1
Guardamos el fichero con los cambios efectuados y visitamos la siguiente web
(usando la IP que tenga nuestro rasPi): http://192.168.2.105/phpmyadmin/ En
este punto es muy posible que no funcione, ejecutaremos los 2 siguiente
comandos:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
1
sudo /etc/init.d/apache2 reload
2
Tras ejecutarlos actualizar en el navegador (en lugar de pulsar F5
pulsar Control+F5). Si pese a todo no funcionase, reiniciar el Raspberry Pi.
En la web del phpMyAdmin el usuario ser root y la contrasea la que hayamos
elegido cuando lo instalamos.

SERVIDOR WEB IP dinmica


Con casi total seguridad en nuestra casa tendremos una IP dinmica (esto significa
que cambiar de vez en cuando). Para que nuestra web est siempre visible
necesitaremos algo estable y permanente en el tiempo. Para eso existen servicios
como DynDNS No-IP, adems de crear una cuenta en esos servicios
necesitaremos instalar un programa en el Raspberry Pi que mantenga actualizada
nuestra IP actual [Web original]:
sudo apt-get install ddclient
1
Durante la instalacin preguntar los datos de registro. Y si queremos ejecutar el
cliente cuando establezca una conexin PPP, diremos que no, para que se ejecute
como demonio, y ejecutaremos la comprobacin segn las veces que reiniciemos
el mdem cada da? = comprobar cada 1h. Cada mes? = comprobar cada 6h.
Si fuese necesario volver a cambiarlos podemos utilizar el siguiente comando:

sudo dpkg-reconfigure ddclient

SERVIDOR WEB FIN!

Y eso es todo, ahora tendremos un servidor web completo, no podremos tener


miles de visitas, pero para hacer pruebas y publicar nuestra primera web es lo ms
barato que puede existir, ya que con el coste de la electricidad actual, tener el
Raspberry Pi encendido las 24h durante todo el mes, nos costar un poco menos
de 1,10 mientras que cualquier hosting con caractersticas similares costar algo
ms del doble, entre 2 y 3 mensuales.
Adems podemos desconectar todo lo que tengamos al Raspberry Pi, pues con
alimentar con un cargador de mvil (mnimo de 700mA) y poner el cable de red ya
funcionar. Como tenemos el SSH no precisamos de ratn y teclado, ni mucho
menos de una pantalla externa.
ERRORES ENCONTRADOS

Error ServerName
Al iniciarse el Raspberry Pi dar un error con el siguiente texto:

Could not reliably determine the servers fully qualified domain


name, using 127.0.0.1 for ServerName
Una manera de solucionarlo es escribiendo una nueva lnea que contenga
ServerName nombre.servidordns.org en los 2 ficheros diferentes:

Una nueva lnea en el siguiente fichero:


sudo nano /etc/apache2/httpd.conf

Una lnea para cada <VirtualHost > que tengamos en:


sudo nano /etc/apache2/sites-enabled/000-default

Ser necesario reiniciar Apache para que se apliquen los cambios.

REINICIO DE LOS SERVICIOS


Reinicio de Apache:

sudo /etc/init.d/apache2 restart

Reinicio de MySQL:

sudo /etc/init.d/mysql restart

Si se reemplaza restart por stop parar el servidor correspondiente (para


arrancarlo sera necesario escribir start).

Вам также может понравиться