RASPBERRY PI COMO SERVIDOR WEB

RASPBERRY PI COMO SERVIDOR WEB

head

(07/08/14)

En este tutorial instalaremos un servidor Web en la Raspberry Pi con Apache, PHP, MySQL y PHPmyAdmin.

Material

-Raspberry Pi Model B

-Tarjeta SD con SO Raspbian

-Alimentador micro-USB 5V (mínimo 750mA)

-Cale Ethernet

 

Servidor Web

Un servidor web es una computadora que guarda y transmite datos vía red. La información que almacenan es en forma de página Web. Un servidor Web implementa el protocolo HTTP (Hypertext Transfer Protocol)para transmitir datos tales como hipertexto, páginas web o páginas HTML. Cuando un cliente (navegador Web) accede a un servidor Web, envía una petición HTTP que recibe el servidor Web. Luego este envía la información a través de protocolo HTTP al cliente en formato HTML.

SERVER

Instalar LAMP

LAMP (LinuxApacheMySQLPHP) son un conjunto de componentes que debemos instalar en la Raspberry Pi para poder crear un servidor Web.

–        Apache: Servidor Web HTTP open source.

–        MySQL: Base de datos Open Source.

–        PHP (Personal Home Pages): Lenguaje de programación que forma parte del servidor web para crear webs dinámicas.

–        PHPmyAdmin: Sirve para administrar la base de datos a través de interfaz web.

LAMP

 

En la siguiente imagen se puede observar el procedimiento de un servidor Web:

PROCEDIMIENTOWEBSERVER

 

Antes de empezar con la instalación del servidor, se recomienda actualizar la Raspberry Pi:

sudo apt-get update

sudo apt-get upgrade

 

Instalar Apache

Para instalar el servidor web Apache, primero tendremos que crear un grupo de usuarios para el servidor: 

sudo groupadd www-data

sudo usermod-a -G www-data www-data

Instalamos el Apache:

sudo apt-get install apache2

Una vez finalizado, vemos que se ha creado un directorio en /var/www donde se ubicaran los archivos HTML y PHP del servidor. Por defecto, hay un archivo llamado index.php. Si ponemos en un navegador la dirección IP de la Raspberry Pi (en el tutorial Raspberry Pi: Guía inicial se explica cómo establecer una IP fija) veremos una página con la frase It works!. Esto quiere decir que el servidor se ha instalado correctamente. Ahora podemos probar de crear un archivo html:

sudo nano /var/www/prueba.html

I escribimos el siguiente código:

<html>
<head>
<title>DIYMakers</title>
</head>
<body>
<h1>DIYMakers</h1>
<p>Prueba de archivo HTML</p>
</body>
</html>

Para guardar pulsamos CTRL+X, luego S e INTRO. Ahora en el navegador ponemos la dirección IP de la Raspberry más el nombre del archivo html para ver nuestra web:

http://192.168.1.134/prueba.html (poner vuestra dirección IP)

 

Instalar PHP

El lenguaje de programación PHP sirve para poder crear webs dinámicas. Procedemos a instalar el lenguaje PHP en la Raspberry Pi:

sudo apt-get install php5

Después instalaremos sus paquetes:

sudo apt-get install libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc

Para comprobar que se haya instalado correctamente, creamos un archivo php en el servidor:

sudo nano /var/www/pruebaphp.php

I escribimos el siguiente código php:

<?php
echo "Hello World";
?>

Para guardar pulsamos CTRL+X, luego S e INTRO. Ponemos en el navegador web lo siguiente:

http://192.168.1.134/pruebaphp.php (poner vuestra dirección IP)

I nos tiene que salir el texto “Hello World” en una página web.

 

Instalar MySQL

MySQL es una base de datos Open Source que sirve para almacenar datos. Para su instalación escribimos lo siguiente:

sudo apt-get install mysql-server mysql-client php5-mysql

Nos pedirá que pongamos una contraseña que nosotros queramos. Al terminar la instalación, debemos iniciar el MySQL:

sudo service mysql start

Para comprobar si se ha instalado correctamente, tenemos que escribir el siguiente comando poniendo la contraseña que hemos establecido antes en la instalación de MySQL después de la letra p:

mysql -uroot –pCONTRASEÑA

Si aparece el comando mysql> quiere decir que funciona correctamente. Para salir pulsamos CTRL+C.

 

Instalar PHPmyAdmin

PHPmyAdmin és un software basado en PHP que sirve para administrar la base de datos MySQL a través de interfaz web. Para su instalación escribimos el siguiente comando:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Nos preguntará que servidor web hemos instalado. Seleccionamos Apache con la tecla Espacio y pulsamos Enter. Después preguntará si queremos configurar la base de datos, decimos que Sí. Luego tendremos que poner la contraseña  que establecimos previamente en el MySQL y finalmente nos pedirá que pongamos una nueva contraseña para PHPmyAdmin.

 

Al finalizar la instalación, tenemos que modificar el siguiente archivo:

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

Tenemos que escribir el siguiente comando en una nueva línea en cualquier sitio, aunque si queremos tener el archivo ordenado lo pondremos en la sección “Dynamic Extensions”:

extension=mysql.so

phpmyadmin

Para guardar pulsamos CTRL+X, luego S e INTRO. Esta modificación sirve para si usamos la base de datos MySQLi (distinta a MySQL).

Después, como hemos modificado un archivo tendremos que reiniciar la Raspberry Pi:

sudo reboot

Tras reiniciar, tenemos que ejecutar dos comandos más:

sudo ln-s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

sudo/etc/init.d/apache2reload

Finalmente, vamos al navegador y ponemos:

http://192.168.1.134/phpmyadmin/  (poner vuestra dirección IP)

Nos saldrá una interfaz como esta donde usuario es root y la contraseña la que hemos asignado en la instalación:

phpmyadmininterfaz

 

Con este tutorial tenemos preparada nuestra Raspberry Pi para ser utilizada como servidor web que nos servirá para futuros tutoriales y proyectos donde dependeremos de un servidor.

 

27 thoughts on “RASPBERRY PI COMO SERVIDOR WEB

  • Avatar

    Ignacio Rubin

    Hola, buenos días,

    Todo fue impecable mil veces gracias, lo que no entendí como hacer ni para que esta es esto:
    Al finalizar la instalación, tenemos que modificar el siguiente archivo:

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

    Tenemos que escribir el siguiente comando en una nueva línea en cualquier sitio, aunque si queremos tener el archivo ordenado lo pondremos en la sección “Dynamic Extensions”:

    extension=mysql.so

    phpmyadmin

    Para guardar pulsamos CTRL+X, luego S e INTRO. Esta modificación sirve para si usamos la base de datos MySQLi (distinta a MySQL).

    Después, como hemos modificado un archivo tendremos que reiniciar la Raspberry Pi:

    Otra ves gracias y hasta pronto desde Bélgica

    Ignacio Rubin

    Reply
    • DIYMakers

      DIYMakers Post author

      Lo que tienes que hacer es poner esa línea de código dentro de este archivo. Es para tener preparado el PHPmyAdmin para la base de datos tipo MySQLi. Para la MySQL que se instala en el tutorial no hace falta.
      Un saludo y gracias.

      Reply
  • Avatar

    luis

    el comando sudo/etc/init.d/apache2reload no lo reconoce mi raspberry o no lo encuentra.
    que se puede hacer.
    gracias

    Reply
    • Avatar

      errekanatureobarruso

      Necesitas espacios:

      sudo /etc/init.d/apache2 reload

      ‘sudo’ es para ejecutar como administrador, ‘/etc/init.d/apache2’ es el servicio y por último ‘reload’ es para la orden al servicio (en este caso para recargarla).

      Reply
  • Avatar

    Jhon

    Muchas gracias. Es perfecto, , solo me quedo una duda, en un intento instale la version whezzy, la cual marcho muy bien hasta la instalacion de phpmyadmin , se bloqueo y no me volvio a iniciar la raspberry pi.

    entonces instale la version jessie la cual me funciono muy bien, pero tuve que suprimir el paso del comando «sudo ln-s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf» porque no existe la carpeta conf.d en apache2 , sin embargo asi esta trabajando muy bien.

    de antemano muchas gracias

    Reply
  • Avatar

    Andrés

    Hola, cuando intento acceder a ambos archivos de prueba me sale el siguiente error en el navegador:

    Not Found

    The requested URL /prueba.html was not found on this server.

    Apache/2.4.10 (Raspbian) Server at 192.168.0.12 Port 80

    Reply
    • Avatar

      Carlos

      El de IT WORKS si te debe salir, luego me di cuenta q aparte de esta direccion /etc/var/www crea una carpeta llamada html es decir la dirección quedaría /etc/var/www/html ahi es donde guardarias tu pruebaphp.php para q pueda salir.
      Esa fue mi solucion espero sirva.

      Reply
  • Avatar

    Andres

    Parece que instalo todo mal, 🙁 al comprobar si mysql esta instalado:

    pi@raspberrypi ~ $ mysql -uroot –pEntrar01
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    pi@raspb

    Reply
  • Avatar

    Andrés

    Y la ultima duda, que también me da error. Creo que debe ser algo de configuración inicial porque sino no lo entiendo (soy novato con la raspberry):

    pi@raspberrypi ~ $ sudo ln-s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
    sudo: ln-s: command not found
    pi@raspberrypi ~ $ sudo/etc/init.d/apache2reload
    bash: sudo/etc/init.d/apache2reload: No existe el fichero o el directorio
    pi@raspberrypi ~ $

    Reply
  • Avatar

    Ignacio

    Hola, buenas tardes,

    Una pregunta, es posible utilizar NGINX en lugar de Mysql et apache2, para así economizar recursos,

    Gracias

    Ignacio

    Reply
  • Avatar

    rodrigo

    Buenas noches , yo instale todo perfectamente hasta la ultima parte , no cual sera el problema pero despues de seguir todos los pasos satisfacoriamente al abrir phpmyadmin en el navegador , me da el error 404 not found…Supongo que sera culpa de alguna cosa que no este guardada en la carpeta correcta pero no tengo ni idea de donde puede ser.Alguna ayuda?
    Muchas gracias a todos y muy buen post.

    Reply
  • Avatar

    Antonio David

    Quería montar un pequeño servidor en mi casa para alojar un foro en smf para uno 20 o 30 usuarios. Tengo fibra simétrica de 120mb. ¿Me valdrá o será un servidor lento?

    Reply
  • Avatar

    Antonio Robles

    Hola, primero muchas gracias por toda la información. He seguido todos los pasos y he montado el servidor web, pero tengo un problema, mis páginas web no se ven, parece que ni se cargan. Las he puesto tanto en /home/pi/public_html/ como en /var/www/html/ y nada, no consigo que se vea nada. ¿que podría ser?. Muchas gracias.

    Reply
    • Avatar

      JoseWirman

      Hola Antonio. Si al seguir el tutorial te ha salido la página por defecto de Apache (la de IT WORKS), el servidor funciona. Cuando escribas la dirección de tu página en el navegador, asegúrate de que lo haces así:

      192.168.1.123/tupágina.html

      Donde ‘192.168.1.123’ es la URL de tu raspberry, y ‘tupágina.html’ el nombre de tu página web (.html si es con HTML, o .php si además contiene código en PHP).

      Si aún así no te sale, comprueba que las páginas tienen la extensión adecuada (.html o .php, según lo comentado antes).

      Reply
  • Avatar

    JoseWirman

    Genial tutorial para iniciarse en el manejo de servidor web personal! Yo quería anotar un detalle acerca del comando «mysql -uroot –pCONTRASEÑA»: Tiene el inconveniente de que al ser un comando de terminal, queda registrado en el historial de comandos, usuario y contraseña incluidos! Si se tiene intención de abrir el servidor a Internet, es mejor tener cuidado con esto, y utilizarlo de la siguiente forma:

    mysql -uroot –p

    Acto seguido, pregunta por la contraseña, pero de esta forma no queda reflejada en el historial (aunque el usuario sí, desgraciadamente). ¿Hay algún método más adecuado para esta circunstancia?
    Gracias!

    Reply
  • Avatar

    rroderickk

    Hola y a esa ip que se crea con la pagina web alojada se puede acceder de cualquier parte del mundo que se tenga el link ?

    Reply
  • Avatar

    rroderickk

    y que capacidad de usuarios podria alojar ? es decir podria yo montar cualquier pagina web que yo de para desarrollar?

    Reply
  • Avatar

    Adolfo

    Está de puta madre tu tutorial. Sólo que tengo un problema, creo que no me respeta la IP fija que le pongo cuando sigo el tutorial anterior, ¿Sabes por qué es?

    Reply
  • Avatar

    pam

    Porquè sale esto?

    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Package php5-mysql is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Package ‘php5-mysql’ has no installation candidate

    Reply

Deja un comentario