Cómo configurar un servidor web en la Raspberry Pi

Alojar un sitio web por su cuenta no es difícil; de hecho, puede hacerlo en su Raspberry Pi con nada más que una instalación de Raspbian y un poco de trabajo de línea de comandos. Su Raspberry Pi ofrece una forma sencilla de alojar un sitio web personal o profesional, y todo lo que necesita saber para hacerlo se encuentra en esta práctica guía. Aquí se explica cómo configurar un servidor web en Raspberry Pi.

Cómo configurar un servidor web en la Raspberry Pi

Para ejecutar nuestro servidor web, usamos lo que comúnmente se llama la pila LEMP: Linux, nginx, MySQL y PHP. En resumen, LEMP utiliza Linux como sistema operativo en el dispositivo que aloja el servidor, nginx como el propio servidor, MySQL como sistema de gestión de bases de datos y PHP para el procesamiento dinámico.

En nuestro caso, la distribución de Linux en cuestión será Raspbian. Una vez que Raspbian esté funcionando en su Raspberry Pi, descubrirá que es bastante fácil hacer que todo lo demás funcione.

Paso 1: Instalar Raspbian

Instale Raspbian usando una tarjeta SD, tal como lo haría con cualquier otro proyecto basado en Raspbian. Para refrescar la instalación del sistema operativo, diríjase a nuestra publicación sobre cómo instalar Raspbian en la Raspberry Pi.

Paso 2: Instalar Nginx

La «E» en LEMP es «nginx», lo crea o no. Vamos a conseguir eso a continuación. Actualizaremos nuestros paquetes y luego instalaremos nginx. Abre la terminal y ejecuta estos comandos, uno tras otro:

sudo apt-get update
 sudo apt-get install nginx

Di sí cuando se te indique. Nginx es el servidor en sí mismo y es muy eficiente.

Paso 3: Instalar MySQL

Necesitamos MySQL, un sistema de administración de bases de datos, para almacenar y administrar los datos de nuestro sitio. Al igual que con nginx, MySQL se instala con un par de líneas sencillas en la terminal.

sudo apt-get install mysql-server

Durante la instalación, se le pedirá que establezca una contraseña de root (dejar el espacio en blanco significa que no tendrá contraseña).

sudo mysql_secure_installation

En esta etapa, tendrá la opción de cambiar su contraseña de root. Como acabas de configurarlo, también podrías decir que no. Di sí a todo lo demás.

Paso 4: Instalar PHP

¡Finalmente estamos al final de nuestro acrónimo! PHP es responsable del contenido dinámico de nuestro sitio. De vuelta a la terminal, ahora, con este comando:

sudo apt-get install php5-fpm php5-mysql

Editemos un archivo. Estas son las configuraciones de PHP, y vamos a hacerlas más seguras.

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

Busque la línea que dice #cgi.fix_pathinfo=1 y cámbiela a cgi.fix_pathinfo=0. Puede encontrarlo con la función de búsqueda (Ctrl+W). Luego salga con Ctrl+X y guarde con Y.

Luego simplemente reiniciará PHP:

sudo systemctl restart php5-fpm

Paso 5: Configure nginx para usar PHP

Hagamos que estos dos jueguen bien juntos. Hora de editar otro archivo:

sudo nano /etc/nginx/sites-available/default

Una vez aquí, querrás cambiar algunas cosas. Edítalo para que se vea así:

server {
     listen 80 default_server;
     listen [::]:80 default_server;
 
     root /var/www/html;
 
     index index.php index.html index.htm index.nginx-debian.html;
 
     server_name [your public IP];
 
     location / {
         try_files €uri €uri/ =404;
     }
 
     location ~ .php€ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php5-fpm.sock;
     }
 
     location ~ /.ht {
         deny all;
     }
 }

Junto a server_name, donde tengo [your public IP]ingrese su dirección IP pública (puede encontrarla preguntando a Google u otro motor de búsqueda).

Luego probaremos esto y volveremos a cargar nginx.

sudo nginx -t
 sudo systemctl reload nginx

¡Eso es todo lo que tenemos que hacer en el extremo del Pi!

Paso 6: configurar el reenvío de puertos

Acceda a la interfaz de administración de su enrutador (deberá ingresar la dirección IP privada de su enrutador en su navegador y luego, por lo general, iniciar sesión; verifique su enrutador para obtener más información). Configure el reenvío de puertos así:

Service Port: 80
 Internal Port: 80
 IP Address: [your Pi's IP address]
 Protocol: TCP
 Common Service Port: HTTP

Reemplazar [your Pi’s IP address] con, lo adivinó, la dirección IP de su Pi, que puede encontrar con el comando de terminal nombre de host -I. Use 80 para sus puertos y RCP para su protocolo. Sus opciones pueden verse ligeramente diferentes a esto, pero deberían ser más o menos reconocibles.

Si hizo todo bien, al escribir su dirección IP pública en la barra de direcciones de su navegador debería aparecer esta página.

¡Eso es! Ahora tiene un servidor web en funcionamiento. Acceda a su sitio web escribiendo su dirección IP pública en la barra de direcciones de su navegador web desde cualquier dispositivo conectado a Internet. Su sitio solo tendrá la página de bienvenida de nginx por ahora, ubicada en /var/www/html. Puede eliminar eso y crear un archivo llamado index.php (sudo nano index.php), o index.html, si sabe que no va a usar PHP, y continuar desde allí.