Como instalar Nextcloud en Debian 12
¿Que es Nextcloud?
Nextcloud es un software de código abierto para el almacenamiento y uso compartido de archivos en la nube. Es una alternativa a Dropbox, Google Drive, etc.
Requisitos
- Sistema Debian 12 actualizado.
- Privilegios de root o sudo.
- Acceso a internet.
- Una pila LAMP (servidor web apache con php y mariadb/mysql).
Instalación de Nextcloud
Si no tienes instalado una pila LAMP, podria interesarte el siguiente articulo: Como instalar LAMP en Debian 12.
Si tenemos instalada una pila LAMP, podemos continuar con la instalación de Nextcloud.
Lo primero que debemos hacer es instalar las extensiones necesarias de php, para ello ejecutamos el siguiente comando:
root@nextcloud:~# apt install php php-curl php-cli 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 php-mysql libmagickcore-dev -y
A continuación, realizaremos algunas modificaciones en la configuración de php, para ello ejecutamos el siguiente comando:
root@nextcloud:~# nano /etc/php/8.2/apache2/php.ini
Descomentamos la siguiente linea e indicamos nuestra zona horaria:
date.timezone = Europe/Madrid
Aumentamos el valor por defecto de los parametros memory_limit, upload_max_filesize, post_max_size y max_execution_time según nuestras necesidades:
memory_limit = 512M
upload_max_filesize = 700M
post_max_size = 600M
max_execution_time = 400
output_buffering = Off
Descomentamos el parametro zend_extension:
zend_extension=opcache
Descomentamos las siguientes lineas de la sección [opcache]:
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
Guardamos los cambios y salimos del editor.
Reiniciamos el servicio de apache:
root@nextcloud:~# systemctl restart apache2
Ahora debemos crear una base de datos y un usuario para Nextcloud, para ello ejecutamos los siguientes comandos:
root@nextcloud:~# mariadb -u root -p
CREATE DATABASE nextcloud_db;
grant all privileges on nextcloud_db.* to nextcloud_user identified by 'nextcloud_pass';
FLUSH PRIVILEGES;
exit
salida:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 33
Server version: 10.11.3-MariaDB-1 Debian 12
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE nextcloud_db;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all privileges on nextcloud_db.* to nextcloud_user identified by 'nextcloud_pass';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> exit
Bye
Antes de descargar el paquete de Nextcloud, debemos instalar los paquetes curl y unzip, para ello ejecutamos el siguiente comando:
root@nextcloud:~# apt install curl unzip -y
Ahora nos desplazamos al directorio /var/www/ y descargamos la última versión de Nextcloud, para ello ejecutamos los siguientes comandos:
root@nextcloud:~# cd /var/www/
root@nextcloud:/var/www# curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
Descomprimimos el paquete de Nextcloud y cambiamos el propietario de los archivos al usuario www-data:
root@nextcloud:/var/www# unzip nextcloud.zip
root@nextcloud:/var/www# chown -R www-data: nextcloud/
A continuación, tenemos que crear un virtualhost en apache para Nextcloud, para ello ejecutamos el siguiente comando:
root@nextcloud:/var/www# nano /etc/apache2/sites-available/nextcloud.conf
Añadimos el siguiente contenido:
<VirtualHost *:80>
ServerName nextcloud.example.com
DocumentRoot /var/www/nextcloud/
# log files
ErrorLog /var/log/apache2/files.hwdomain.io-error.log
CustomLog /var/log/apache2/files.hwdomain.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>
Guardamos los cambios y salimos del editor.
Activamos el virtualhost y reiniciamos el servicio de apache:
root@nextcloud:/var/www# a2ensite nextcloud.conf
root@nextcloud:/var/www# systemctl restart apache2
Una vez reiniado apache, debemos acceder a la url de Nextcloud desde un navegador web para continuar con la instalación, en mi caso la url es http://nextcloud.example.com, nos aparecerá la siguiente pantalla:
Rellenamos los campos para crear el usuario administrador, para configurar la base de datos y pulsamos en el botón “Instalar”:
En mitad del proceso de instalación nos preguntará si queremos instalar algunas aplicaciones recomendadas de nextcloud, en mi caso las instalaré:
Una vez finalizado el proceso de instalación, iniciará automáticamente sesión con el usuario administrador y nos llevará a la pantalla de bienvenida:
Con esto ya tendremos instalado nextcloud en nuestro servidor.