En este artículo veremos cómo instalar Nextcloud en Ubuntu 18.04 LTS Bionic Beaver paso a paso, una forma de instalar tu propia nube en un entorno doméstico o empresarial, tanto en una red local como a través de Internet si dispones de un VPS Ubuntu.
Contenido
Antes de instalar Nextcloud en Ubuntu 18.04 LTS
Para seguir esta guía de instalación de Nextcloud en Ubuntu 18.04 necesitarás cumplir los siguientes requisitos:
- Un sistema Ubuntu 18.04 LTS Bionic Beaver actualizado.
- Una pila LAMP, o sea, servicio web con PHP (desde la versión 7.3) y motor de bases de datos.
- Un usuario con privilegios de sudo.
- Conexión a Internet.
Si aún no tienes el entorno necesario preparado, puedes consultar antes la guía de instalación de la pila LAMP en Ubuntu 18.04.
También necesitaremos algunas utilidades del sistema, por lo que actualizamos los repositorios de Ubuntu 18.04 LTS:
~$ sudo apt update
Y las instalamos:
~$ sudo apt install -y bzip2 wget
En esta guía vamos a instalar Nextcloud como parte de la página web por defecto de Ubuntu 18.04 por brevedad, pero lo ideal sería crear un servidor virtual para un dominio o subdominio propio, usando seguridad HTTPS. En este mismo sitio web encontrarás información sobre servidores virtuales y seguridad SSL y HTTPS.
Cómo descargar Nextcloud para Ubuntu 18.04 LTS
Vamos a descargar Nextcloud para Ubuntu 18.04 LTS Bionic Beaver, concretamente la última versión disponible que encontraremos visitando la web oficial del proyecto:
Siguiendo el enlace «Server packages» de la opción «Get Nextcloud» del menú principal encontraremos las descargas para el servidor.
La descarga está disponible en formato .zip o .tar.bz2 y la podemos realizar directamente desde el navegador, pero en este ejemplo copiaremos el enlace del paquete y lo descargaremos desde consola mediante el comando wget:
~$ wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.tar.bz2
Una vez descargado el paquete de Nextcloud en nuestro sistema Ubuntu 18.04 podemos descomprimirlo directamente en la carpeta de destino que nos interese, de acuerdo con la forma de integrar la aplicación en el servicio web:
~$ sudo tar xf nextcloud-23.0.0.tar.bz2 -C /var/www/html/
Se creará una subcarpeta nextcloud/ donde se encuentran todos los archivos organizados.
Nextcloud necesita poder escribir en su propio directorio, así que cambiaremos el propietario del directorio al usuario con el que se ejecuta el servidor web (www-data para Apache en Ubuntu):
~$ sudo chown -R www-data: /var/www/html/nextcloud/
Cómo instalar Nextcloud en Ubuntu 18.04 LTS
Antes de instalar Nextcloud en Ubuntu 18.04 LTS mediante su instalador web necesitaremos realizar una serie de ajustes sobre la pila LAMP sobre la que se apoya.
Preparativos de PHP
Nextcloud necesita varias extensiones de PHP instaladas para poder funcionar, extensiones como curl, gd, imagick, intl, mbstring, xml y zip, que instalaremos en un momento con apt.
Como la versión nativa de PHP en Ubuntu 18.04 no está soportada, habrá que especificar la versión del repositorio alternativo que estamos utilizando en los nombres de los paquetes al instalar las extensiones requeridas. Por ejemplo, para PHP 7.4:
~$ sudo apt install -y php7.4-bcmath php7.4-curl php7.4-gd php7.4-gmp php7.4-imagick php7.4-intl php7.4-mbstring php7.4-xml php7.4-zip
Si usas otra versión de PHP, sustituye php7.4- en el comando anterior por lo que proceda.
Si Nextcloud va a tener cierta carga de trabajo convendría activar algún sistema de caché de datos, como el que proporciona la extensión APCu, que podemos también instalar:
~$ sudo apt install -y php7.4-apcu
Además, es necesario instalar la extensión que corresponda al servicio de bases de datos que pensamos utilizar, para MariaDB/MySQL:
~$ sudo apt install -y php7.4-mysql
O para PostgreSQL:
~$ sudo apt install -y php7.4-pgsql
Para disponer de todas las posibilidades de la extensión imagick habrá que instalar adicionalmente el paquete imagemagick (no es una extensión de PHP, así que no hay que indicar versión):
~$ sudo apt install -y imagemagick
Hay que recargar la configuración del servidor web para aplicar los cambios:
~$ sudo systemctl reload apache2
Preparativos de la base de datos
Nextcloud necesita una base de datos como soporte, pudiendo trabajar con distintos tipos, así que veremos los dos más usados en Ubuntu 18.04 LTS.
MariaDB/MySQL
Si usas MariaDB procedente de los repositorios de Ubuntu 18.04 es importante realizar algunos ajustes de configuración:
~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
En la sección server habrá que añadir las siguientes líneas:
... [server] innodb_large_prefix=true innodb_file_format=barracuda innodb_file_per_table=1 ...
Guardados los cambios y cerrado el archivo, habrá que reiniciar el servicio:
~$ sudo systemctl restart mariadb
Accederemos con el cliente mysql y un usuario administrador:
~$ mysql -u root -p
O como root sin cotraseña si usa el plugin unix_socket o el auth_socket:
~$ sudo mysql
Creamos la base de datos para Nextcloud:
> create database nextcloud character set utf8mb4 collate utf8mb4_unicode_ci;
Si usamos MariaDB o MySQL 5 creamos un usuario de la forma habitual:
> create user nextcloud@localhost identified by 'XXXXXXXX';
Pero si usamos MySQL 8 interesa especificar además el plugin de autenticación correcto:
> create user nextcloud@localhost identified with mysql_native_password by 'XXXXXXXX';
Independientemente de la forma en que creemos el usuario, le daremos permisos para trabajar con la nueva base de datos:
> grant all privileges on nextcloud.* to nextcloud@localhost;
Ya podemos salir del cliente:
> exit;
PostgreSQL
En el caso de trabajar con este motor de bases de datos, crearemos un nuevo rol con contraseña:
~$ sudo -u postgres createuser nextcloud -P
Y creamos la base de datos para Nextcloud:
~$ sudo -u postgres createdb nextcloud -O nextcloud
Preparativos del servidor web
Nextcloud está configurado para usar reescritura de URLs, por lo que es interesante activar el módulo Rewrite de Apache.
Para ello, usaremos el comando a2enmod:
~$ sudo a2enmod headers rewrite
Asegúrate de que Apache permite el uso de archivos .htaccess en la ruta en la que está instalado Nextcloud .
En este ejemplo, al instalarlo en /var/www/html/ está explícitamente prohibido por la configuración principal de Apache, así que podemos añadir un archivo de configuración adicional que afecte exclusivamente a Nextcloud:
~$ sudo nano /etc/apache2/conf-available/nextcloud.conf
El contenido es un bloque Directory en el que, entre otras cosas, una directiva AllowOverride permitirá el uso de archivos .htaccess:
<Directory /var/www/html/nextcloud> AllowOverride all Require all granted Options FollowSymLinks MultiViews <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud php_value memory_limit "512M" </Directory>
Aprovechamos para añadir algunos ajustes más, como valores adecuados de parámetros de PHP.
Guardamos los cambios, cerramos el archivo y activamos la nueva configuración:
~$ sudo a2enconf nextcloud
Reiniciaremos el servicio web para que cargue el módulo y la nueva configuración:
~$ sudo systemctl restart apache2
Instalación vía web
Sólo queda iniciar el instalador web de Nextcloud en Ubuntu 18.04. Para ello, desde un navegador indicaremos la URL con la dirección de nuestro servidor Ubuntu 18.04 y la ruta donde hayamos instalado la carpeta de Nextcloud.
En este ejemplo el servidor Ubuntu 18.04 es accesible desde el dominio ubuntu64.local.lan y hemos instalado Nextcloud en la ruta /nextcloud/ de la página web por defecto, por lo que la URL http://ubuntu64.local.lan/nextcloud/ puede servir como acceso:
En la primera página se nos pedirá:
- Un nombre para la cuenta de administrador y su contraseña.
- El usuario de la base de datos de Nextcloud y su contraseña.
- El nombre de la base de datos de Nextcloud.
- Confirmación para instalar aplicaciones de Nextcloud recomendadas.
Una vez terminamos de introducir los datos, pulsaremos el botón «Completar la instalación» y en unos instantes el navegador debería redireccionar a la página de instalación de las aplicaciones recomendadas o a la página principal de Nextcloud si hemos omitido dicha instalación. Sin embargo, desde hace algunas versiones Nextcloud falla justo en este momento de la instalación:
Es ridículo que Nextcloud siga teniendo este problema versión tras versión. Lo que sucede es que a la hora de la redirección desaparece de la URL la dirección del servidor (IP, dominio, nombre DNS, etc.) y sólo queda la ruta, que en este ejemplo sería /nextcloud/index.php/core/apps/recommended.
Lo único que hay que hacer es insertar al principio de esta URL errónea la dirección correcta del servidor; en este tutorial quedaría como http://ubuntu64.local.lan/nextcloud/index.php/core/apps/recommended.
Introducimos la URL corregida y el proceso de instalación continuará desde el punto en que falló.
En unos instantes por fin accedemos a la interfaz de la aplicación, donde un carrusel nos informará sobre características destacables de Nextcloud:
Terminado el carrusel accedemos a la interfaz web de Nextcloud en nuestro servidor Ubuntu 18.04, donde se nos mostrará el nuevo escritorio de la plataforma:
Para empezar a gestionar nuestro espacio de almacenamiento de archivos, nos podemos dirigir a la sección «Archivos» del menú principal:
Ya tenemos todo listo para poder crear carpetas, cargar archivos, gestionar usuarios, etc.
Y recuerda que dispones de multitud de clientes de Nextcloud para gran cantidad de dispositivos y sistemas operativos.
Tareas de post-instalación
Una vez instalado Nextcloud en Ubuntu 18.04, es importante realizar algunas tareas para dejar el sistema en estado óptimo. Por ejemplo, en el caso de haber instalado el sistema de caché de datos a través de la extensión APCu, hay que activar su uso desde la configuración de Nextcloud:
~$ sudo nano /var/www/html/nextcloud/config/config.php
Al final del archivo, pero antes del paréntesis de cierre, insertaremos la línea siguiente:
... 'memcache.local' => '\OC\Memcache\APCu', );
Si quieres guardar números de teléfono en las aplicaciones auxiliares de Nextcloud, sin tener que indicar el código de región de tu ubicación predeterminada será necesario configurar una región por defecto, para lo que añadiremos una línea similar a la siguiente:
... 'default_phone_region' => 'ES', );
Si no conoces el identificativo para tu país, puedes consultarlo en esta tabla de códigos ISO 3166-1.
Una vez guardados los cambios el efecto de la configuración es inmediato.
El método por defecto de ejecución de las tareas de mantenimiento de Nextcloud se basa en la conexión de usuarios a la plataforma web. Es más interesante dejar esto a cargo del servicio Cron de Ubuntu 18.04 para lo que crearemos un archivo de tarea programada:
~$ sudo nano /etc/cron.d/nextcloud
Que tendrá como contenido la siguiente línea:
*/5 * * * * www-data /usr/bin/php /var/www/html/nextcloud/cron.php
Tras guardar el archivo la tarea de mantenimiento será lanzada a intervalos regulares (5 minutos en este caso).
Conclusión
Ya has visto que instalar Nextcloud en Ubuntu 18.04 es sin duda un sencillo ejercicio de instalación de aplicaciones sobre entornos LAMP. Ahora ya puedes disfrutar de un sistema para salvaguardar archivos y tenerlos disponibles en cualquier lugar, sobre todo si decides montar tu propia nube usando un servidor VPS Ubuntu.
¡Apoya este sitio!
¿Te ha resultado útil esta guía de instalación de Nextcloud en Ubuntu 18.04 para montar tu propia nube virtual? Si es así y quieres agradecérnoslo, el más mínimo aporte al mantenimiento de este sitio y creación de nuevas guías y tutoriales es bien recibido, y puedes hacerlo dejando 1 $ de propina en PayPal:
O, si te sientes especialmente generoso, invitándonos a un café:
¡Gracias!
Actualizado a la versión 23.0.0.
¡Hola!
¡Excelente tutorial!
Ya me funciona mi Nextcloud. Pero mis otros sitios que tenía dentro de mi carpeta /var/www/misitio/ no me deja acceder. Debo decir que Nextcloud se habilitó con sus certificados SSL, pero ya no me permite entrar a mis otros sitios. Algo hice mal por que Nextcloud entra directamente cuando pongo el dominio y no como un subdominio, es decir entra directo cuando tecleo «misitio.com» en lugar de «misitio.com/nextcloud«.
Ojalá exista alguna solución y agradezco su ayuda.
Hola, Charlie. Parece que tienes un buen lío con la configuración del servidor web, el sitio web por defecto y tus otros sitios. Deberías tener claro cuál es el directorio en el que has instalado NextCloud y cuál es el DocumentRoot del servidor virtual por defecto de Apache, para poder acceder sólo con el dominio o con alguna ruta añadida al dominio.