Nextcloud en Debian 12: ¿cómo se instala?
En solo unos pasos es posible instalar Nextcloud en Debian 12. No solo se configura la solución en la nube real, sino que también queda protegida por varias medidas de seguridad.
Nextcloud en Debian
Nextcloud es una solución gratuita de computación en la nube muy recomendable que ofrece numerosas ventajas, tanto para uso personal como comercial. Entre ellas destacan las sólidas funciones de seguridad para la protección de datos, como el cifrado SSL/TLS, la autenticación de dos factores y el cumplimiento del RGPD. Además, ofrece la posibilidad de elegir entre servidores privados locales o servidores de alojamiento subcontratados. Al igual que muchas alternativas a Nextcloud, la bifurcación (fork) de OwnCloud es compatible con todos los sistemas operativos habituales y ofrece una integración sencilla con numerosos servicios.
A continuación, te explicamos paso a paso cómo instalar Nextcloud en Debian 12. Para lograrlo, necesitarás instalar un servidor web Apache2, un servidor MariaDB y PHP 8.2. Además, te mostramos cómo configurar un Firewall sencillo (UFW) y los certificados SSL/TLS necesarios para que protejas el sistema.
Si, en cambio, prefieres instalar Nextcloud en Ubuntu, puedes echar un vistazo a nuestro artículo sobre la [instalación de Nextcloud en Ubuntu 20.04] o al tutorial de Ubuntu 22.04. También te enseñamos los pasos para la instalación de Nextcloud con Docker.
¿Qué requisitos deben cumplirse?
Para instalar Nextcloud en Debian 12, solo se tienen que cumplir algunos requisitos. Necesitas tener un servidor en el que Debian 12 ya esté instalado, 4 GB de RAM y dos CPU. Además, es importante que dispongas de un acceso de usuario no root con derechos de administrador y que y configures un nombre de dominio que esté vinculado a la dirección IP del servidor.
Instalar el servidor web Apache2
Primero, debes instalar un servidor web Apache2. Para ello, utiliza el comando apt update, con el que podrás actualizar el índice de paquetes de Debian y descargar así la última versión:
sudo apt update
bashDespués, realiza la instalación de la última versión del paquete de Apache2 utilizando este comando:
sudo apt install apache2
bashConfirma la instalación con el botón [y] y, a continuación, pulsa [Intro] para iniciar la instalación.
Después de la instalación, utiliza este comando de systemctl para comprobar el estado del servicio:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
bashEn el primer comando, deberías ver que el servicio se inicia automáticamente al arrancar el sistema. El estado “active” indica que Apache2 puede comenzarse a usar.
Configurar el cortafuegos
Al disponer del cortafuegos o firewall adecuado, puedes proteger tu sistema y tus datos. Se recomienda usar el Firewall sin complicaciones (UFW), que puedes configurar como predeterminado. Para ello, debes abrir los puertos para OpenSSH, HTTP y HTTPS. Primero, instala el paquete UFW con el siguiente comando:
sudo apt install ufw
bashDebes confirmar la instalación pulsando la tecla [y] y finalizarla pulsando [Intro]. Activa después OpenSSH y UFW utilizando estos comandos:
sudo ufw allow OpenSSH
sudo ufw enable
bashPara iniciar UFW, debes confirmar utilizando [y]. A continuación, aparecerá el mensaje “Firewall is active and enabled on system startup”. Después, debes añadir los puertos HTTP y HTTPS que deberá utilizar el servidor web. Para ello, ejecuta este comando:
sudo ufw allow "WWW Full"
bashA continuación, vuelve a cargar UFW:
sudo ufw reload
bashPara ver las reglas activadas, consulta el estado de UFW. En este punto, WWW Full debe estar activado.
sudo ufw status
bashActivar PHP 8.2
Para obtener el mejor rendimiento posible y la máxima compatibilidad, el propio Nextcloud recomienda usar PHP 8.2. Viene incluido por defecto en Debian 12, por lo que solo deben instalarse los paquetes necesarios. Utiliza este comando:
sudo apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu libmagickcore-dev
bashUtiliza [y] e [Enter] para confirmar y, después, comprueba la versión de PHP y activa las extensiones:
php --version
php -m
bashAhora abre el archivo de configuración de PHP con el editor Nano:
sudo nano /etc/php/8.2/apache2/php.ini
bashAhora haz algunos cambios y adapta la configuración a tus necesidades. Dependiendo de cómo quieras usar Nextcloud con Debian 12, puede que sean recomendables otros valores. En ese caso, cambia la configuración según tus necesidades.
En el primer paso, establece la zona horaria escribiendo lo siguiente:
data.timezone = Europe/Amsterdam
bashDespués, cambia los parámetros de memory_limit, upload_max_filesize, post-max_size y max_execution_time:
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
bashActiva ahora file_uploads y allow_url_fopen. En ambos casos, el valor debe ser “On” (activado):
file_uploads = On
allow_url_fopen = On
bashDesactiva ahora display_errors y output_buffering y cambia los valores respectivos a “Off” (desactivado):
display_errors = Off
output_buffering = Off
bashUtiliza el siguiente comando para activar PHP OPcache:
zend_extension=opcache
bashAñade la configuración en la sección opcache recomendada por Nextcloud para Debian 12 escribiendo lo siguiente:
opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
bashA continuación, guarda el archivo y termina el editor Nano. Ahora, reinicia el servicio Apache2:
sudo systemctl restart apache2
bashConfigurar el servidor MariaDB
Nextcloud utiliza un servidor MariaDB como base de datos. Se instala y comprueba con estos comandos:
sudo apt install mariadb-server
bashUtiliza [y] e [Intro] para confirmar. Cuando termine la instalación, introduce lo siguiente:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
bashSi el servidor funciona correctamente, protege el sistema. Utiliza el siguiente comando para crear una contraseña de root, eliminar usuarios anónimos y borrar la base de datos de prueba:
sudo mariadb-secure-installation
bashRealiza los ajustes pulsando [y] para aceptar y [n] para rechazar.
Crear una base de datos y usuarios
A continuación, crea una nueva base de datos y el usuario correspondiente. Para iniciar sesión en el servidor MariaDB, utiliza este comando e introduce tu contraseña de root:
sudo mariadb -u root -p
bashPara crear una nueva base de datos, un usuario y la contraseña correspondiente, utiliza los siguientes comandos:
CREATE DATABASE nextcloud_db;
CREATE USER nextclouduser@localhost IDENTIFIED BY 'YourPassword';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
FLUSH PRIVILEGES;
bashSustituye 'YourPassword'
(tu contraseña) por una contraseña segura creada por ti. Por último, comprueba si “nextclouduser” tiene acceso a la base de datos “nextcloud_db”:
SHOW GRANTS FOR nextclouduser@localhost;
bashDescargar los códigos fuente actuales
Descarga ahora los últimos códigos fuente para poder utilizar Nextcloud en Debian 12 de manera óptima. Primero, selecciona este comando:
sudo apt install curl unzip -y
bashDespués, cambia al directorio /var/www y descarga el último código fuente:
cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
bashDescomprime el archivo y cambia el propietario del directorio en www-data:
unzip nextcloud.zip
sudo chown -R www-data:www-data nextcloud
bashConfigurar el host en Apache2
Configura ahora un host virtual en Apache2 utilizando este comando de Nano:
sudo nano /etc/apache2/sites-available/nextcloud.conf
bashAjusta el nombre de dominio y los dos parámetros ErrorLog y CustomLog. Reemplaza el marcador de posición “example” (ejemplo) con el nombre de tu dominio.
<VirtualHost *:80>
ServerName nextcloud.example.io
DocumentRoot /var/www/nextcloud/
# log files
ErrorLog /var/log/apache2/files.example.io-error.log
CustomLog /var/log/apache2/files.example.io-access.log combined
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost>
bashGuarda los cambios y sal del editor. Seguidamente, activa la configuración con el siguiente comando y comprúebala:
sudo a2ensite nextcloud.conf
sudo apachectl configtest
bashSi obtienes el resultado “Syntax OK”, que indica que no hay errores de sintaxis, debes reiniciar Apache2 para aplicar la nueva configuración del host virtual:
sudo systemctl restart apache2
bashProteger los datos con SSL/TLS
Sin la necesidad de realizar configuraciones adicionales, ahora estás utilizando Nextcloud en Debian 12 a través de un protocolo HTTP que no es seguro. Para mejorar la seguridad y proteger tus datos, es mejor configurar HTTPS. Lo puedes hacer utilizando este comando:
sudo apt install certbot python3-certbot-apache
bashA continuación, genera un certificado SSL reemplazando de nuevo el marcador de posición “beispiel” por el nombre de tu dominio.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email user@example.io -d nextcloud.example.io
bashCompletar la instalación de Nextcloud en Debian 12
Para finalizar la instalación de Nextcloud en Debian 12, abre tu navegador web y accede al nombre de dominio de tu instalación de Nextcloud. Introduce un nombre de usuario y su contraseña para crear un administrador. Después, añade el nombre de tu base de datos, el nombre de usuario y la contraseña, y haz clic en “Install” (instalar). A continuación, puedes optar por descargar algunas aplicaciones que sean compatibles u omitir este paso por ahora. Ahora se te redigirá a tu panel de control y podrás comenzar a usar Nextcloud para gestionar tus datos.