# 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](https://www.ionos.mx/digitalguide/servidores/herramientas/que-es-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](https://www.ionos.mx/digitalguide/servidores/herramientas/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.

Consejo 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](https://www.ionos.mx/digitalguide/servidores/configuracion/nextcloud-ubuntu-2204/). También te enseñamos los pasos para la [instalación de Nextcloud con Docker](https://www.ionos.mx/digitalguide/servidores/configuracion/instalacion-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:

```bash
sudo apt update
```

Después, realiza la instalación de la última versión del paquete de Apache2 utilizando este comando:

```bash
sudo apt install apache2
```

Confirma 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:

```bash
sudo systemctl is-enabled apache2
sudo systemctl status apache2
```

En 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](https://www.ionos.mx/digitalguide/servidores/seguridad/que-es-un-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](https://www.ionos.mx/digitalguide/hosting/cuestiones-tecnicas/que-es-https/). Primero, instala el paquete UFW con el siguiente comando:

```bash
sudo apt install ufw
```

Debes confirmar la instalación pulsando la tecla \[y\] y finalizarla pulsando \[Intro\]. Activa después OpenSSH y UFW utilizando estos comandos:

```bash
sudo ufw allow OpenSSH
sudo ufw enable
```

Para 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:

```bash
sudo ufw allow "WWW Full"
```

A continuación, vuelve a cargar UFW:

```bash
sudo ufw reload
```

Para ver las reglas activadas, consulta el estado de UFW. En este punto, WWW Full debe estar activado.

```bash
sudo ufw status
```

## Activar 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:

```bash
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
```

Utiliza \[y\] e \[Enter\] para confirmar y, después, comprueba la versión de PHP y activa las extensiones:

```bash
php --version
php -m
```

Ahora abre el archivo de configuración de PHP con el editor Nano:

```bash
sudo nano /etc/php/8.2/apache2/php.ini
```

Ahora 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:

```bash
data.timezone = Europe/Amsterdam
```

Después, cambia los parámetros de memory\_limit, upload\_max\_filesize, post-max\_size y max\_execution\_time:

```bash
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
```

Activa ahora file\_uploads y allow\_url\_fopen. En ambos casos, el valor debe ser “On” (activado):

```bash
file_uploads = On
allow_url_fopen = On
```

Desactiva ahora display\_errors y output\_buffering y cambia los valores respectivos a “Off” (desactivado):

```bash
display_errors = Off
output_buffering = Off
```

Utiliza el siguiente comando para activar PHP OPcache:

```bash
zend_extension=opcache
```

Añade la configuración en la sección opcache recomendada por Nextcloud para Debian 12 escribiendo lo siguiente:

```bash
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
```

A continuación, guarda el archivo y termina el editor Nano. Ahora, reinicia el servicio Apache2:

```bash
sudo systemctl restart apache2
```

## Configurar el servidor MariaDB

Nextcloud utiliza un servidor MariaDB como base de datos. Se instala y comprueba con estos comandos:

```bash
sudo apt install mariadb-server
```

Utiliza \[y\] e \[Intro\] para confirmar. Cuando termine la instalación, introduce lo siguiente:

```bash
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
```

Si 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:

```bash
sudo mariadb-secure-installation
```

Realiza 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:

```bash
sudo mariadb -u root -p
```

Para crear una nueva base de datos, un usuario y la contraseña correspondiente, utiliza los siguientes comandos:

```bash
CREATE DATABASE nextcloud_db;
CREATE USER nextclouduser@localhost IDENTIFIED BY 'YourPassword';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
FLUSH PRIVILEGES;
```

Sustituye `'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”:

```bash
SHOW GRANTS FOR nextclouduser@localhost;
```

## Descargar 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:

```bash
sudo apt install curl unzip -y
```

Después, cambia al directorio /var/www y descarga el último código fuente:

```bash
cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
```

Descomprime el archivo y cambia el propietario del directorio en www-data:

```bash
unzip nextcloud.zip
sudo chown -R www-data:www-data nextcloud
```

## Configurar el host en Apache2

Configura ahora un host virtual en Apache2 utilizando este comando de Nano:

```bash
sudo nano /etc/apache2/sites-available/nextcloud.conf
```

Ajusta 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.

```bash
<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>
```

Guarda los cambios y sal del editor. Seguidamente, activa la configuración con el siguiente comando y comprúebala:

```bash
sudo a2ensite nextcloud.conf
sudo apachectl configtest
```

Si 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:

```bash
sudo systemctl restart apache2
```

## Proteger 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:

```bash
sudo apt install certbot python3-certbot-apache
```

A continuación, genera un [certificado SSL](https://www.ionos.mx/digitalguide/paginas-web/creacion-de-paginas-web/certificado-ssl/) reemplazando de nuevo el marcador de posición “beispiel” por el nombre de tu dominio.

```bash
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email user@example.io -d nextcloud.example.io
```

## Completar 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.


This is a markdown version of: [https://www.ionos.mx/digitalguide/servidores/configuracion/nextcloud-debian-12/](https://www.ionos.mx/digitalguide/servidores/configuracion/nextcloud-debian-12/) for AI/LLM consumption.