Ubuntu Server es un sistema operativo con versiones de los programas algo más modernas que el Raspberry OS que usan (evidentemente) las Raspberrys. Veremos si nos es suficiente para utilizar Nextcloud.
Apache es el servidor web, el programa que recibe las peticiones de otros ordenadores y manda páginas web. Hay otros servidores más ligeros (Nginx, lighthttp) que seguramente harían que el servidor en general y nuestra nube de Nextcloud en particular funcionaran algo más rápido, pero en mi caso opto por Apache por dos motivos. En primer lugar, porque es el único que he manejado y que algo entiendo de su configuración (poco, realmente poco, en realidad) y en segundo lugar porque hay algunas apps de Nextcloud que piden Apache.
Nextcloud está escrita mayormente en PHP, un lenguaje del que (sin ser yo programador ni nada de eso) solo oigo quejas, pero es omnipresente en la web, normalmente combinado con una base de datos que puede ser PostgresSQL o MySQL, pero nosotros vamos a usar MariaDB, una bifurcación (fork) de MySQL que tiene todas las características de MySQL y alguna más, aparte de (según parece) ser más rápida.
Vamos a ver cómo podemos conseguir instalar Apache2, PHP 7.3 y MariaDB 10 en nuestra flamante Raspbian.
Para entender lo que vamos a hacer, es interesante saber cómo funcional los repositorios en Linux. En Windows, cuando instalamos un programa, nos bajamos un archivo que tiene todo lo que necesita el programa. Es sencillo, pero si varios programas necesitan lo mismo, tendremos eso tres veces en lugar de solo una. En Linux el software se organiza en repositorios, servidores que contienen los programas organizados en paquetes, de tal manera que si tres aplicaciones necesitan PHP, por ejemplo, en lugar de que cada aplicación incluya PHP, las tres declaran que necesitan PHP y se instala una sola vez. Es una solución elegante, aunque puede dar problemas de dependencias (esas necesidades se llaman dependencias y se pueden convertir en un dolor de cabeza).
Consiste en ejecutar la orden sudo apt install apache2 mariadb-server mariadb-client-compat php8.3 php8.3-redis php8.3-cli php8.3-curl php8.3-gd php8.3-ldap php8.3-mbstring php8.3-mysql php8.3-xml php8.3-xmlrpc php8.3-zip libapache2-mod-php8.3 php8.3-intl ffmpeg
. Tardará un buen rato en descargar y configurar todo esto.
Podemos comprobar que la instalación ha funcionado así:
- Apache: abrimos un navegador y en la barra de direcciones (no en Google, sino ahí arriba del todo, donde ahora mismo pone polkillas.net y un montón de cosas más) ponemos la dirección IP de nuestro servidor. Ya sabemos: 192.168.xx.xx. Debería aparecer la siguiente pantalla:
- PHP: Podemos comprobar que lo hemos hecho bien escribiendo
php -v
en el terminal y nos debe aparecer el número exacto de versión). También podemos crear un archivo de información para verlo en el navegador. Esta versión es más chula y da más información, lo cual puede ser peligroso si nos quieren atacar, así que la recomendación es borrar este archivo después de comprobar que lo hemos hecho bien.creamos el archivo consudo nano /etc/www/html/info.php
y escribimos lo siguiente en su interior:
<?php
phpinfo();
?>
Guardamos con CTRL-X, s y lo vemos en el navegador en la direción http://192.168.xx.xx/info.php, que debe dar algo parecido a esto:
- MariaDB: entramos en la Raspberry vía SSH y escribimos
sudo mysql --user=root mysql
, lo que debe hacer que el cursor cambie a lo siguiente:
Preparación de la base de datos
Una vez que hemos comprobado que todo funciona, podemos crear el usuario
Ahora debemos crear la base de datos y el usuario que vamos a utilizar con nuestra instalación de Nextcloud. Parar ello, lanzamos estos comandos SQL:
create user 'USUARIO'@'localhost' identified by 'CONTRASEÑA';
cambiando las mayúsculas por el usuario y contraseña que queramos.
create database NOMBREDELABASEDEDATOS;
cambiando las mayúsculas por el nombre que queramos.
Y le concedemos derechos de uso a este usuario que acabamos de crear con
grant all privileges on NOMBREDELABASEDEDATOS.* to 'USUARIO'@'localhost' with grant option;
Por último, recargamos los privilegios de MariaDB con flush privileges;
y salimos con exit.
Retoques y mejoras
De inicio, tanto MySQL como MariaDB vienen con ciertas configuraciones de prueba que es mejor eliminar. Para ello escribimos sudo mariadb_secure_installation
(truco sacado de aquí) y respondemos las preguntas:
Nos ipde en primer lugar la contraseña del usuario root, el superadministrador. Por defecto, no tiene, así que pulsamos Enter. A continuación nos sugiere cambiar a un método diferente de identificación que no usa contaseña. Me ha dado problemas alguna vez, así que yo le digo que no y a continuación nos pide que cambiemos la contraseña de root. Ponemos la que queramos y la volvemos a escribir para confirmarla. Después nos pide eliminar los usuarios anónimos, impedir el acceso de root en remoto y borrar una tabla de ejemplo. Le decimos que sí a todo y solo queda volver a cargar las tablas de privilegios y acaba el script.
Comentarios recientes