Cómo instalar un servidor web en la Raspberry Pi (Apache + PHP + MySQL)
ⓘ Este artículo puede haber sido traducido parcial o totalmente utilizando herramientas automáticas. Nos disculpamos por cualquier error que esto pueda causar.
Después de crear su tarjeta SD, y después de iniciar su Raspberry Pi por primera vez, hay fuertes posibilidades de que usted desea utilizar como un servidor web.
¿Por qué un Raspberry Pi como servidor web?
Pero ¿por qué utilizar una frambuesa como un servidor web, en lugar de utilizar los proveedores de servicios especializados en alojamiento web?
En primer lugar, desde un punto de vista económico, usted debe saber que los servicios de alojamiento web no son libres y que usted tiene que pagar cada mes / año. A diferencia de la frambuesa que sólo necesita una conexión.
Además, eligiendo frambuesa, tienes la posibilidad de modificar tus servicios como quieras (ejemplos: el tamaño del disco, el alojamiento de Base de datos, etc.), que generalmente no es el caso con hosts especializados , Que a menudo venden alojamiento compartido con baja capacidad de configuración.
Sin embargo, para apoyar a más usuarios, debe utilizar una frambuesa Pi 3 (el Pi 3 se puede encontrar aquí), la frambuesa Pi con 1 GB de RAM, en lugar de la frambuesa tipo B + (512 MB de RAM)
La pregunta que surge ahora es, ¿cómo hacer un servidor web en Raspeberry Pi ?Installation du serveur Apache avec Raspbian
¿Qué es Apache?
En primer lugar, instalaremos Apache, que es el servidor web como tal.
Cuando hablamos de un servidor web, a menudo pensamos en la máquina, pero este término también se refiere al software que permite a la máquina analizar las solicitudes de los usuarios (en forma http), y devolver el archivo correspondiente a la solicitud (O un error si el archivo no se encuentra, o la consulta formulada incorrectamente).
Como parte de Apache, es un software del que hablamos.
Actualmente, Apache es el servidor web más utilizado, con cerca del 60% de cuota de mercado. Apache tiene su propia licencia, utilizada por muchos otros proyectos. Además, el uso masivo de Apache (que se ha convertido en el estándar de los servidores web), unido a su gran popularidad, ha provocado una tremenda abundancia de documentación, cursos y otros libros que tratan sobre su uso, y su seguridad, como este libro.
Ya sea para la Raspberry Pi y Raspbian, o para una máquina de uso más general, Apache es por tanto una opción segura, y los conocimientos que podrás adquirir sobre el tema siempre serán útiles.
Instalación de Apache
Antes de instalar el servidor, asegúrate de que tenemos una máquina actualizada. Para ello debemos tener derechos de administrador, ya sea por el comando sudo.
sudo apt updatesudo apt upgradesudo apt update
Una vez que la Raspberry Pi esté actualizada, instalaremos el servidor Apache.
sudo apt install apache2
De paso, aprovecharemos para dar derechos al archivo apache que pueda gestionar fácilmente sus sitios. Para ello, ejecuta los siguientes comandos:
sudo chown -R pi:www-data /var/www/html/sudo chmod -R 770 /var/www/html/
Comprueba si Apache funciona
Una vez completada la instalación, podemos probar que Apache funciona correctamente accediendo a la dirección de la Raspberry.
Para ello, es necesario intentar acceder a la Raspberry desde el puerto 80 (este puerto no se abre desde el exterior, tendrá que hacerlo desde la propia Raspberry). No te preocupes, es muy fácil. Simplemente abre el navegador web de la Raspberry, y ve a «http://127.0.0.1». A continuación, debe obtener una página con un mensaje como «¡Funciona! » Y un montón de otros textos.
Si aún no tienes una GUI en tu Raspbian, o utilizas SSH para conectarte a tu Raspberry, puedes utilizar el siguiente comando:
wget -O check_apache.html http://127.0.0.1
Este comando guardará el código HTML de la página en el archivo «check_apache.html» en el directorio actual.
Así que sólo tienes que leer el archivo con el comando
cat ./check_apache.html
Si ves marcado en un lugar del código «¡Funciona! » es que Apache está funcionando.
Apache utiliza el directorio «/var/www/html» como raíz para su sitio. Esto significa que cuando usted llama a su Raspberry en el puerto 80 (http), Apache busca el archivo en «/var/www/html».
Por ejemplo, si usted llama a la dirección «http://127.0.0.1/ejemplo», Apache buscará el archivo «ejemplo» en el directorio «/var/www/html».
Para añadir nuevos archivos, sitios, etc., tendrá que añadirlos a este directorio.
Ahora puede utilizar su Raspberry para hacer un sitio en HTML, CSS y JavaScript, internamente.
Sin embargo, es posible que desee permitir rápidamente las interacciones entre el sitio y el usuario. Por ejemplo, para permitir que el usuario se registre, etc. Para esto, vas a necesitar PHP.
Instalación de PHP en tu Raspberry Pi
¿Qué es PHP?
En primer lugar, debes saber que PHP es un lenguaje interpretado. Y como en el caso de los servidores, las siglas PHP pueden tener varios significados. De hecho, cuando hablamos de PHP, podemos hablar tanto del lenguaje como del intérprete.
Aquí, cuando hablamos de instalar PHP, significa que instalaremos el intérprete, para poder utilizar el lenguaje.
PHP (el lenguaje esta vez) se utiliza principalmente para hacer que un sitio sea dinámico, es decir, que el usuario envíe información al servidor que devuelve los resultados modificados en función de esta información. Por el contrario, un sitio estático no se adapta a la información proporcionada por el usuario. Se guarda como un archivo de una vez por todas, y siempre entregará el mismo contenido.
PHP es gratuito, y es mantenido por la Fundación PHP, así como por Zend Enterprise, y varias otras empresas (cabe señalar que Zend es también el autor del famoso framework Zend PHP, ampliamente utilizado y reconocido en el mundo de los » negocios).
Es uno de los lenguajes de programación más utilizados, e incluso es el más utilizado para la programación web, con cerca del 79% de cuota de mercado.
De nuevo, todos los conocimientos que puedas adquirir, sobre el lenguaje, o sobre la instalación y configuración del intérprete, siempre serán útiles. Así que sólo podemos aconsejarte que aprendas el PHP, que es realmente un lenguaje maravilloso y demasiado a menudo subestimado.
Cómo instalar PHP
Volveremos a utilizar el administrador para instalar PHP con la línea de comandos.
sudo apt install php php-mbstring
Controlar si PHP está funcionando
Para saber si PHP está funcionando correctamente, no es muy complicado, y el método es bastante similar al utilizado para Apache.
Primero borrarás el fichero «index.html» en el directorio «/var/www/html».
sudo rm /var/www/html/index.html
Después crea un fichero «index.php» en este directorio, con esta línea de comandos
echo "<?php phpinfo ();?>" > /var/www/html/index.php
A partir de ahí, el funcionamiento es el mismo que para la comprobación de Apache. Intentas acceder a tu página, y deberías tener un resultado cercano a esta imagen (si no tienes una interfaz, utiliza el mismo método que antes, y busca las palabras «PHP Version»).
Tabla generada por el comando phpinfo en una Raspberry.
Una base de datos MySQL para tu servidor
¿Un DBMS qué es? ¿Por qué MySQL?
Ahora que hemos configurado PHP, probablemente querrás almacenar información para utilizarla en tus sitios. Para este propósito, las bases de datos son las más utilizadas.
Por lo tanto, vamos a configurar un SGBD (Sistema de Gestión de Bases de Datos), a saber, MySQL.
MySQL es un SGBD gratuito, potente y masivamente utilizado (alrededor del 56% de la cuota de mercado de los SGBD gratuitos). También en este caso, MySQL es tan esencial para el desarrollo, sea cual sea el lenguaje, que es absolutamente necesario aprenderlo y dominarlo, con este libro por ejemplo.
Cómo instalar MySQL
Para ello, instalaremos mariadb-server y php-mysql (que servirá de enlace entre php y mysql)
sudo apt install mariadb-server php-mysql
Verificar que MySQL funciona correctamente
Para comprobar el funcionamiento de MySQL, esta vez sólo utilizaremos la línea de comandos. Para ello, simplemente nos conectaremos a través del comando:
sudo mysql --user=root
No borraremos el usuario root de mysql por defecto y crearemos un nuevo usuario root de mysql, ya que el que viene por defecto sólo se puede utilizar con la cuenta root de Linux, y por tanto no está disponible para el servidor web y los scripts php.
Para ello, una vez que te conectes a MySQL, simplemente ejecuta estos comandos (sustituye password
por la contraseña que quieras) :
DROP USER 'root'@'localhost';CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
Así que ya tienes un servidor web, conectado a PHP y a MySQL. Eso es todo lo que se necesita.
(En tus próximas conexiones, podrás conectarte a mysql sin usar sudo, con el comando mysql --user=root --password=yourmysqlpassword
).
Añadir PHPMyAdmin
La instalación de PHPMyAdmin no es absolutamente necesaria. En esta instalación, no nos ocuparemos de ninguna configuración especial de seguridad!
La instalación de PHPMyAdmin es bastante rápida y fácil, simplemente tenemos que utilizar el gestor de paquetes con este comando :
sudo apt install phpmyadmin
El programa de instalación de PHPMyAdmin le hará algunas preguntas. Sobre la parte dbconfig-common
, elija no usarla (pues ya hemos configurado nuestra base de datos). Sobre el servidor para el que configurar PHPMyAdmin, elija Apache. Y la contraseña de root es la que configuraste para MySQL.
También debes habilitar la extensión mysqli usando el comando anterior :
sudo phpenmod mysqlisudo /etc/init.d/apache2 restart
Comprueba que PHPMyAdmin funciona correctamente
Para comprobar que PHPMyAdmin funciona, simplemente intentarás acceder a él, usando la dirección de tu Raspberry seguida de /phpmyadmin. Por ejemplo, localmente será http://127.0.0.1/phpmyadmin
Si aun así te da error, puede ser porque PHPMyAdmin se ha movido a otro directorio. En este caso, prueba el comando
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
Ahora, podemos acceder a PHPMyAdmin desde el navegador de la Raspberry Pi, con la url : http://127.0.0.1/phpmyadmin
Hacer un servidor accesible desde la web
Tu servidor web está listo. Sin embargo, es probable que no pueda acceder a él desde Internet. ¡En efecto, sería necesario para que su módem para redirigir las solicitudes a su frambuesa, los puertos buenos.
Para poner estas redirecciones, e incluso obtener una URL, usted debe mirar a DynDNS y reenvío de puertos !