En esta ocasión explicamos cómo instalar Nextcloud en Debian 10 Buster paso a paso, un servicio de nube de archivos que podrás montar tanto en tu red local como en Internet sobre tu propio servidor o VPS Debian.
Tabla de contenidos
Antes de instalar Nextcloud en Debian 10 Buster
Si tienes intención de seguir esta guía de instalación de Nextcloud en Debian 10 Buster debes satisfacer al menos los siguientes requisitos básicos:
- Un sistema Debian 10 Buster actualizado.
- Un entorno o pila tipo LAMP (servidor web con PHP y bases de datos).
- Acceso a línea de comandos con root o algún usuario con permisos de sudo.
- Conexión a Internet.
Si aún no tienes configurado el entorno necesario, quizás te interese echar un vistazo previo a nuestra guía de instalación LAMP en Debian 10 Buster.
Podrías instalar Nextcloud en tu sistema Debian 10 Buster como el sitio web principal, una parte de este sitio web o un sitio alternativo a través de un servidor virtual. Por sencillez, en esta guía integraremos Nextcloud como parte de la página web por defecto de Debian 10.
Aunque en este ejemplo no usamos seguridad HTTPS, es importantísimo que la uses en tu configuración.
Cómo descargar Nextcloud para Debian 10 Buster
Puesto que no hay paquetes disponibles en la distribución, vamos a descargar Nextcloud para Debian 10 Buster desde el sitio web del proyecto:
Seguiremos cualquiera de los enlaces «Get Nextcloud» para elegir «Server packages» y se abrirá una pequeña ventana donde en vez de seguir el enlace «Download Nextcloud» pincharemos el botón «Details and download options«, que nos mostrará otras opciones:
Hay disponibles dos formatos de paquete, la versión .tar.bz2 y la versión .zip. Puedes descargar el que prefieras directamente desde el navegador, pero en este caso copiaremos el enlace del paquete .tar.bz2 para realizar la descarga desde consola con el comando wget:
~$ wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.tar.bz2
Cómo instalar Nextcloud en Debian 10 Buster
Antes de empezar con el proceso de instalación de Nextcloud en Debian 10 Buster debemos preparar el sistema, mediante una serie de tareas previas que detallamos a continuación.
Preparando los archivos de Nextcloud
Vamos a descomprimir el paquete que acabamos de descargar en su ubicación definitiva, según cómo hayamos decidido integrar Nextcloud en el servidor web.
En este ejemplo, aunque formará parte del sitio web principal del servidor Debian 10 Buster, descomprimiremos Nextcloud fuera del directorio raíz de documentos web:
~$ sudo tar xf nextcloud-23.0.0.tar.bz2 -C /var/www/
Nextcloud necesita permisos de escritura sobre sus propios archivos. Como esto se hace a través del servidor web, cambiaremos el propietario y el grupo de la carpeta de Nextcloud que se acaba de crear, a los que usa el servidor web (www-data para Apache en Debian 10):
~$ sudo chown -R www-data: /var/www/nextcloud/
Preparando PHP
Nextcloud requiere la instalación de varias extensiones de PHP en Debian 10, como son curl, gd, imagick, intl, mbstring, xml o zip:. Si estamos usando la versión nativa de PHP para Debian 10 instalaremos estas extensiones con el siguiente comando:
~$ sudo apt install -y php-apcu php-bcmath php-bz php-curl php-gd php-gmp php-imagick php-imap php-intl php-ldap php-mbstring php-smbclient php-xml php-zip
Pero si usamos alguna versión procedente del repositorio alternativo, tendremos que indicar el número de versión en el nombre de los paquetes; por ejemplo, si se trata de PHP 7.4:
~$ sudo apt install -y php7.4-apcu php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-gd php7.4-gmp php7.4-imagick php7.4-imap php7.4-intl php7.4-ldap php7.4-mbstring php7.4-smbclient php7.4-xml php7.4-zip
O para la versión 8.0:
~$ sudo apt install -y php8.0-apcu php8.0-bcmath php8.0-bz2 php8.0-curl php8.0-gd php8.0-gmp php8.0-imagick php8.0-imap php8.0-intl php8.0-ldap php8.0-mbstring php8.0-smbclient php8.0-xml php8.0-zip
Es importante también tener instalada la extensión que permita conectar con el servicio de bases de datos que queramos utilizar (elimina la que no te interese y ten en cuenta lo ya dicho sobre la nomenclatura de los paquetes):
~$ sudo apt install -y php-mysql php-pgsql
Por último, para que completar las funcionalidades de la extensión imagick instalaremos el paquete imagemagick:
~$ sudo apt install -y imagemagick
Una vez instaladas las extensiones y sus dependencias será necesario recargar el servicio web o el servicio PHP-FPM. En este caso sería el servidor web:
~$ sudo systemctl reload apache2
Preparando el servidor web
Nextcloud es capaz de trabajar con los módulos Headers y Rewrite de Apache, si este es tu servidor web en Debian 10. Si es el caso, debemos activar estos módulos:
~$ sudo a2enmod headers rewrite
Para poder usar las configuraciones de los archivos .htaccess debemos asegurarnos de que el servidor web los toma en cuenta. En este ejemplo, el servidor web ignora estos archivos en la ubicación elegida para Nextcloud. Por tanto debemos añadir una configuración adicional que permita la carga de tales archivos.
Crearemos el archivo para esta configuración:
~$ sudo nano /etc/apache2/sites-available/nextcloud.conf
El contenido será un alias para hacer navegable la aplicación y un bloque Directory para configurarla:
Alias /nextcloud /var/www/nextcloud <Directory /var/www/nextcloud> AllowOverride all php_value memory_limit "512M" </Directory>
Y también aprovechamos para añadir cierta configuración de PHP. Guardados los cambios y cerrado el archivo, hay que activar esta nueva configuración:
~$ sudo a2ensite nextcloud.conf
Si estás instalando Nextcloud en un servidor virtual, la configuración anterior debería formar parte de la configuración del servidor virtual.
En cualquier caso, para aplicar los cambios reiniciaremos el servidor web:
~$ sudo systemctl restart apache2
Preparando la base de datos
Nextcloud necesita trabajar con el servicio de bases de datos que tenemos instalado en Debian 10, por lo que detallaremos la preparación de los dos más usados.
MariaDB/MySQL
Crearemos una nueva base de datos y el usuario que la administrará, cosa que podemos hacer desde consola con el cliente mysql y un usuario administrador:
~$ mysql -u root -p
Creamos la base de datos:
> create database nextcloud charset utf8mb4 collate utf8mb4_unicode_ci;
Si usamos MySQL 8, creamos el usuario asegurándonos de que utilice un plugin de autenticación compatible con PHP:
> create user nextcloud@localhost identified with mysql_native_password by 'XXXXXXXX';
Si usas MariaDB o una versión 5.x de MySQL, no es necesario especificar el plugin:
> create user nextcloud@localhost identified by 'XXXXXXXX';
Concedemos los permisos necesarios al usuario sobre la base:
> grant all privileges on nextcloud.* to nextcloud@localhost;
Y cerramos el cliente:
> exit
PostgreSQL
Crearemos un rol con contraseña:
~$ sudo -u postgres createuser nextcloud -P
Y una base de datos asociada a dicho rol:
~$ sudo -u postgres createdb nextcloud -O nextcloud
No pierdas de vista estos datos, porque los necesitaremos más adelante.
Instalar Nextcloud en Debian 10 vía web
Llegó el momento de instalar Nextcloud en Debian 10 Buster usando el instalador web desde un navegador.
Accederemos a la URL de Nextcloud según la hayamos configurado. En este ejemplo en el que el servidor Debian 10 es accesible en el dominio debian10.local.lan, la URL http://debian10.local.lan/nextcloud/ sería la indicada:
En esta página del instalador se nos pedirá el nombre del nuevo usuario administrador y su contraseña, y por otro lado los datos de conexión al servicio de bases de datos (que creamos anteriormente). Además, por defecto aparece marcada la opción de instalar ciertas aplicaciones del ecosistema de Nextcloud, que puedes desmarcar si no te interesan.
Tras introducir los datos seguiremos el enlace «Completar la instalación«.
Es muy posible que tras unos instantes el navegador muestre un mensaje de error similar al siguiente:
Si sucede podremos comprobar que se debe a que el instalador web ha realizado una redirección incorrecta. De hecho, observando la URL en la barra de dirección del navegador veremos que ha desaparecido el dominio, dirección IP, etc. dejando sólo la parte de la ruta web, en este ejemplo nextcloud/index.php/core/apps/recommended.
Podemos solucionarlo completando la URL, añadiendo la parte de la dirección que falta. En este ejemplo sería http://debian10.local.lan/nextcloud/index.php/core/apps/recommended.
La instalación finalizará y en unos instantes una nueva página nos mostrará en un carrusel algunas de las características más destacables de Nextcloud:
Tras pasar todas las diapositivas del carrusel, aparecerá la página principal de nuestro usuario administrador, con algunas de las aplicaciones más usadas de la plataforma en primer plano:
Si visitamos la sección «Archivos» del menú principal, veremos algunos archivos y carpetas de muestra, donde ya podremos empezar a cargar archivos, crear carpetas, etc.
También podremos crear nuevos usuarios asignándoles su corrrespondiente cuota de disco, etc.
Post-instalación de Nextcloud en Debian 10 Buster
Una vez instalada y funcionando la aplicación, tenemos la posibilidad de realizar algunas tareas adicionales destinadas a mejorar el rendimiento de Nextcloud en Debian 10.
Eliminar index.php de la URL
Puede ser interesante ocultar el archivo index.php en cada URL de Nextcloud, para lo que editaremos el archivo config.php:
~$ sudo nano /var/www/nextcloud/config/config.php
Y añadimos las siguientes dos líneas al final del archivo, justo antes de paréntesis de cierre:
... 'overwrite.cli.url' => 'http://debian10.local.lan/nextcloud', 'htaccess.RewriteBase' => '/nextcloud', );
Tras guardar y cerrar el archivo hay que lanzar el siguiente comando en consola:
~$ sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess
Activar la caché
Hemos instalado la extensión APCu para configurar una caché de datos, pero hay que activar su uso editando la configuración de Nextcloud:
~$ sudo nano /var/www/nextcloud/config/config.php
Al final del archivo insertaremos esta nueva línea:
... 'memcache.local' => '\OC\Memcache\APCu', );
Región telefónica
La configuración inicial no incluye región telefónica por defecto, por lo que si quieres guardar teléfonos en la aplicación necesitarás hacerlo añadiendo el indicativo correspondiente. Puedes configurar la región por defecto añadiendo la siguiente línea:
... 'default_phone_region' => 'ES', );
Si no conoces el código ISO 3166-1 correspondiente a tu región, podrás consultarlo en esta tabla.
Basta con guardar el archivo para que estos últimos cambios queden activados.
Tareas de mantenimiento
Por último, las tareas de mantenimiento en segundo plano de Nextcloud se realizan cada vez que se conectan usuarios, lo que podría degradar la experiencia de los mismos. Es más interesante realizar estas tareas mediante el servicio Cron de Debian 10, para lo que crearemos un archivo de configuración de dicho servicio:
~$ sudo nano /etc/cron.d/nextcloud
E incluiremos esta línea como contenido:
*/5 * * * * www-data /usr/bin/php /var/www/nextcloud/cron.php
Tras guardar el archivo, la tarea se lanzará regularmente según el intervalo establecido (5 minutos en este caso).
Cómo probar el servicio desde un cliente
Para probar el funcionamiento de tu nueva nube de archivos Nextcloud en Debian 10 puedes instalar un cliente descargado desde el sitio de Nextcloud (la misma página desde la que descargamos el paquete del servidor), para cualquier sistema o dispositivo.
Por ejemplo, tras instalar un cliente de escritorio en Windows, nos solicitará la URL de conexión al servicio:
Este tipo de cliente necesita autenticarse contra el servicio a través del navegador, así que abrirá una página para introducir los datos del usuario y confirmar que se desea enlazar el dispositivo con la cuenta.
Hecho esto el cliente mostrará las opciones de conexión:
Terminados los ajustes, si es que haces alguno, puedes iniciar la conexión con el servicio Nextcloud en el servidor Debian 10 y se producirá la transferencia de archivos:
En unos instantes la cuenta estará completamente sincronizada, pudiendo cerrarse el cliente (que queda en segundo plano) y comprobar en la carpeta configurada que los archivos en el servidor están disponibles localmente:
Conclusión
Ahora que sabes cómo instalar Nextcloud en Debian 10 ya puedes montar tu propio sistema de nube de archivos para tu red local, tanto doméstica como profesional, en entornos de red local o a través de Internet. Existen multitud de clientes de Nextcloud para gran variedad de dispositivos de escritorio y móviles, así que tus archivos estarán disponibles en cualquier momento y lugar.
Si tienes alguna duda, pregunta, sugerencia, o quieres informar de algún error, puedes dejar un comentario.
Y si gracias a esta pequeña guía de instalación de Nextcloud en Debian 10 Buster ya tienes montado el sistema y te apetece agradecérmelo, puedes dejar una propina de 1 $ desde PayPal:
O, si te sientes especialmente agradecido, puedes invitarme a un café:
¡Gracias!
Actualizado a la versión 23.0.0.
¿Dónde puedo encontrar el archivo php.ini? ¿Y cómo lo altero?
Echa un vistazo a nuestra guía de instalación de PHP en Debian 10 Buster.
Hola, chachocool, te cuento que tengo un inconveniente con el código que presentas y es que, al crear el archivo nextcloud.conf con la información arriba descrita, apache2 no permite reiniciar porque desconoce la palabra ‘php_value‘. ¿Sabes cómo puedo solucionar este tema?
Inicialmente, he eliminado la palabra php_value, sin embargo, si esta allí es por algo, ¿no?
Hola, Danilo. Si usas PHP como módulo de Apache no deberías tener problemas con la sentencia php_value, a no ser que la uses fuera de contexto, con valores erróneos, etc. En el caso de usar PHP como servicio independiente entonces no es posible usar php_value, en su lugar puedes alterar el valor necesario directamente en el archivo php.ini.
Hola, ¿quién realiza estos tutoriales?, les agradezco desde el alma porque son geniales y perfectos, bien detallados y precisos. Gracias, muchas gracias.
¡Hola! Pues los realizamos aquí en la redacción de chachocool.com y el secreto es que probamos todo lo que redactamos una y otra vez, hasta que encontramos la forma en que creemos que se entiende todo lo mejor posible, con la menor dificultad. Nos alegra saber que son útiles.