Webserver en Raspberry Pi

Vamos a configurar un completo servidor web en nuestra estimada Raspberry Pi.

 

El servidor estará provisto de los siguientes componentes:

Apache 2, PHP 7, MySQL + MaríaDB + PHPMyAdmin, WordPress, DDNS, FTP, SMTP, Samba.

 

Por otro lado, configuraremos BerryConda para instalar de forma sencilla librerías de Machine Learning como NLTK o Scikit-Learn.

 

Paso 1Paso 2Paso 3

RASPBIAN

Instalar Raspbian en la microSD, actualizarla con el asistente inicial. Reiniciar

Lanzar la configuración de nuevo y Activar SSH y VNC. Reiniciar.

Crear el directorio Librerías:

 

BERRYCONDA 3

Descargar este archivo: BerryConda3 para ARM 7

Moverlo al escritorio y ejecutar esto:

 

PYTHON 3.7

 

Para configurar esta nueva, como versión por defecto:

 

Buscar la línea que pone:

# added by Berryconda3 installer

export PATH=”/home/[usuario local]/Librerias/BerryConda3/bin:$PATH”

 

Y debajo escribir esta otra:

alias python3=”/usr/local/bin/python3.7″

 

Salir guardando cambios y:

APACHE

Buscar la línea: <Directory /var/www/>

Cambiar AllowOverride None por AllowOverride All.

 

PHP 7

 

MYSQL

 

PHPMYADMIN

 

Seleccionamos ‘Apache2’ cuando nos dé a elegir.

Luego nos preguntará para configurar la base de datos phpmyadmin, le decimos “Sí”

Metemos una contraseña para la base de datos, dos veces. Anotad las diferentes contraseñas, que a lo largo del tutorial se van a utilizar varias y es fácil terminar confundiéndolas.

El usuario de acceso a la gestión de PHPMyAdmin vía web, es: phpmyadmin

 

DUCKDNS (DDNS)

 

Pegamos esto (si te logueas en DuckDNS.org puedes encontrar la línea completa con toda la info):

echo url=”https://www.duckdns.org/update?domains=[nuestro dominio sin extensión]&token=[nuestro token]&ip=” | curl -k -o /home/[usuario local]/Librerias/DuckDNS/duck.log -K –

Salimos guardando cambios y:

elegimos el 2 (nano) y escribimos:

Salimos guardando y:

 

SERVICIO FTP

Comentamos (interponiendo la #) las líneas:

local_enable=YES
ssl_enable=NO

y agregamos al final del archivo:

# CUSTOM ssl_enable=YES
local_enable=YES
chroot_local_user=YES
local_root=/var/www user_sub_token=[usuario local] write_enable=YES
local_umask=002
allow_writeable_chroot=YES
ftpd_banner=Servicio FTP de Server.

Ejecutamos:

 

WORDPRESS

 

aquí estamos en el prompt de MariaDB, insertaremos estos comandos:

 

Ampliar el límite de subida (para evitar el error “El archivo subido excede la directiva upload_max_filesize en php.ini.”):

Ejecutar:

Buscar:  

upload_max_filesize = 2M 

Cambiar 2M por 50M

 

SMTP

 

Y la configuración que debemos poner para que Raspberry pueda enviar correos vía Gmail:

* El correo se envía mediante un “smarthost”; se recibe a través de SMTP o fetchmail
* Nombre del sistema de correo: utilizar el nombre del servidor (Servidor por defecto)
* Direcciones IP en las que recibir conexiones SMTP entrantes: 127.0.0.1 ; ::1
* Otros destinos para los que se acepta el correo: dejar como en la segunda pregunta (Servidor)
* Máquinas para las cuales reenviar correo: dejar en blanco
* Dirección IP o nombre de equipo para el “smarthost” saliente: poner el servidor SMTP por el cual queremos enviar el correo saliente. Para Gmail smtp.gmail.com::587 (doble dos puntos)
* Desea ocultar el nombre de correo local en los mensajes salientes? Responder que no
* Limitar el número de consultas de DNS (marcación bajo demanda)? Responder que no
* Mecanismo de entrega para el correo local: formato mbox en “/var/mail”
* Dividir la configuración en pequeños ficheros? Responder que no
* Root and postmaster: [direccion de correo electrónico del admin]

 

Agregar esta linea:

*.google.com:[correo electronico]:[contraseña] gmail-smtp.l.google.com:[correo electronico]:[contraseña] smtp.gmail.com:[correo electronico]:[contraseña]

Ejecutar:

Pegamos esto:

root=[correo electronico] mailhub=smtp.gmail.com:587 rewriteDomain=[dominio] UseTLS=Yes UseSTARTTLS=Yes AuthUser=[correo electronico] AuthPass=[contraseña] FromLineOverride=YES

SAMBA

 

Agregamos al final del archivo:

[Compartida] comment = Carpeta compartida en Raspi
path = /home/[usuario local]/Compartida
browseable = yes
writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
public = no
guest ok = yes

Ejecutar:

 

Metemos la contraseña para el recurso compartido, dos veces

 

Vamos al Finder, menú Ir -> conectarse al servidor

[IP de la Raspberry] (conéctate a Compartida)

Usuario: [tu usuario local] password: [contraseña]

Ya estamos conectados a la Raspi por Samba.

CONFIGURACIÓN DE WORDPRESS

Abrimos el navegador a nuestro dominio e instalamos WordPress con estos datos:

Database Name – [nombre base datos] Username – [usuario] Password – [contraseña] Database Host – locahost
Table Prefix – wp_

 

FIREFOX

Lo tendremos disponible en el menú inicio > Internet > Firefox ESR

 

EDITOR VISUAL DE TAREAS CRON

 

NODE.JS

Ejecutar:

 

TENSORFLOW

 

FLASK

 

PANDAS

 

JUPYTER NOTEBOOK

 

MATPLOTLIB
La instalación de Matplotlib dura aproximadamente una hora

 

NLTK