Cómo instalar Nextcloud en un servidor Ubuntu 24.04

Nextcloud es un software de código abierto para el almacenamiento de archivos públicos y privados. Te permite crear servicios autoalojados como Dropbox, Google Drive o Mega.nz. Inicialmente, fue creado por el desarrollador original de Owncloud, Frank Karlitschek. En 2016, bifurcó el proyecto Owncloud y creó un nuevo proyecto con el nuevo nombre «Nextcloud».

El proyecto Nextcloud está creciendo rápidamente y se está convirtiendo en algo más que un software de alojamiento de archivos. Es más bien una plataforma de sincronización de archivos y colaboración de contenidos. Respaldado con muchos plugins, Nextcloud se ha convertido en un potente software de colaboración. Puedes instalar plugins para gestión de proyectos, videoconferencia, edición colaborativa, toma de notas, cliente de correo electrónico, etc.

Este tutorial te enseña a instalar Nextcloud en un servidor Ubuntu 24.04. Instalarás Nextcloud con la Pila LAMP y luego asegurarás Netxcloud con HTTPS mediante Certbot y Letsencrypt.

Requisitos previos

Antes de empezar, asegúrate de que tienes lo siguiente:

  • Un servidor Ubuntu 24.04
  • Un usuario no root con privilegios de administrador
  • Un nombre de dominio apuntando a la dirección IP del servidor
  • Un UFW (Uncomplicated Firewall) en funcionamiento

Instalación de dependencias

En esta sección, instalarás las dependencias de los paquetes para Nextcloud. Ejecutarás Nextcloud con la Pila LAMP, utilizando curl para descargar el código fuente de Nextcloud, y luego utilizando Certbot y Letsencrypt para asegurar Nextcloud con HTTPS.

Antes de empezar, ejecuta el siguiente comando para actualizar tu índice de paquetes de Ubuntu

sudo apt update

actualizar repo

Ahora, instala las dependencias de Nextcloud con el siguiente comando apt install. Esto instalará la pila LAMP (Linux, Apache, MySQL/MariaDB y PHP), curl, unzip, ImageMagick y certbot.

sudo apt install apache2 mariadb-server 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 php-redis php-memcached curl unzip imagemagick certbot python3-certbot-apache

Introduce Y para confirmar la instalación.

instalar deps

Después de la instalación, comprueba el estado del servidor web Apache utilizando el siguiente comando. Verás que el servidor web Apache se está ejecutando y está habilitado.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

prueba apache2

Ahora comprueba el estado del servidor MariaDB con el siguiente comando. Deberías obtener una salida similar, ya que MariaDB se está ejecutando.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

prueba mariadb

Por último, ejecuta el siguiente comando para comprobar la versión PHP de tu sistema. Verás que PHP 8.3 está instalado.

php -v

prueba php

Configurar PHP

Después de haber instalado las dependencias, configurarás PHP editando el archivo php.ini. Puedes ajustar la configuración de PHP según sea necesario para algunas opciones, como el límite máximo de memoria y el tamaño máximo de carga.

Abre el archivo /etc/php/8.3/apache2/php.ini con el editor nano.

sudo nano /etc/php/8.3/apache2/php.ini

Cambia la configuración por defecto por la siguiente, y asegúrate de ajustar el límite_memoria con tu memoria máxima y la zona.horaria.fecha con la ubicación/zona horaria de tu servidor.

date.timezone = Europe/Amsterdam
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
file_uploads = On
allow_url_fopen = On
display_errors = Off
output_buffering = Off

Cuando termines, guarda el archivo y sal.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servidor web Apache y aplicar tu nueva configuración PHP.

sudo systemctl restart apache2

Configurar el servidor MariaDB

Ahora que has configurado PHP, configurarás el servidor MariaDB y crearás una nueva base de datos y un nuevo usuario para Nextcloud. Asegurarás MariaDB con la utilidad mariadb-secure-installation, y luego crearás una nueva base de datos y un nuevo usuario a través del cliente mariadb.

Para asegurar el servidor MariaDB, ejecuta el comando mariadb-secure-installation que se indica a continuación.

sudo mariadb-secure-installation

Durante el proceso, se te preguntará por las siguientes configuraciones del servidor MariaDB:

  • Pulsa ENTER cuando se te pregunte por la contraseña raíz de MariaDB.
  • Introduce n cuando se te pregunte por el método de autenticación unix_socket.
  • Introduce Y para establecer una nueva contraseña para el usuario raíz de MariaDB. A continuación, introduce la nueva contraseña y repite la operación.
  • Introduce Y para eliminar el usuario anónimo por defecto de MariaDB.
  • A continuación, vuelve a introducir Y para desactivar el inicio de sesión remoto para el usuario raíz de MariaDB.
  • Introduce Y para eliminar la prueba de base de datos por defecto de MariaDB.
  • Por último, vuelve a introducir Y para recargar los privilegios de la tabla y aplicar los cambios.

A continuación, ejecuta el siguiente comando de cliente mariadb para iniciar sesión en el servidor MariaDB. Introduce tu contraseña de root cuando se te solicite.

sudo mariadb -u root -p

Ejecuta las siguientes consultas para crear una nueva base de datos nextclouddb, un usuario nextcloud@localhost, con la contraseña passw0rd. Puedes ajustar los detalles de la base de datos con tu información.

CREATE DATABASE nextclouddb;
CREATE USER nextcloud@localhost IDENTIFIED BY 'passw0rd';
GRANT ALL PRIVILEGES ON nextclouddb.* to nextcloud@localhost;
FLUSH PRIVILEGES;

crear base de datos y usuario

Ahora ejecuta la consulta siguiente para asegurarte de que el usuario nextcloud@localhost puede acceder a la base de datos nextclouddb.

SHOW GRANTS FOR nextcloud@localhost;

Verás una salida como la siguiente:

mostrar privilegios de usuario

Escribe quit para salir del servidor MariaDB.

Abrir puertos HTTP y HTTPS

En esta sección, abrirás los puertos HTTP y HTTPS para permitir el acceso a Nextcloud. Para ello, debes asegurarte de que UFW está configurado y habilitado en tu servidor Ubuntu.

Para abrir los puertos HTTP y HTTPS en Ubuntu, ejecuta el siguiente comando ufw. Con el perfil Apache Completo, permitirás las conexiones a los puertos HTTP y HTTPS.

sudo ufw allow 'Apache Full'
sudo ufw reload

Ahora verifica las reglas de la lista en UFW con el comando que aparece a continuación. Asegúrate de que el perfil Apache Full está habilitado en tu servidor Ubuntu.

sudo ufw status

configuración ufw

Descargar Nextcloud

Ahora que has configurado PHP, MariaDB y UFW, descargarás el código fuente de Nextcloud y configurarás el directorio raíz de documentos para la instalación de Nextcloud.

Ve al directorio /var/www y descarga el código fuente de Nextcloud con el siguiente comando curl.

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

Una vez descargado, ejecuta el siguiente comando unzip para extraer Nextcloud. Esto establecerá el directorio raíz de Netxcloud en /var/www/nextcloud.

sudo unzip nextcloud.zip

Ahora ejecuta el siguiente comando para cambiar la propiedad del directorio /var/www/nextcloud al usuario www-data.

sudo chown -R www-data:www-data /var/www/nextcloud

descargar nextcloud

Configurar el host virtual Apache para Nextcloud

Después de descargar Nextcloud, crearás un nuevo host virtual Apache para Nextcloud. A continuación, generarás certificados SSL y asegurarás Nextcloud con HTTPS.

Crea una nueva configuración de host virtual Apache /etc/apache2/sites-available/nextcloud.conf con el siguiente editor nano.

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

Introduce la configuración que aparece a continuación y asegúrate de cambiar el nombre de dominio nextcloud.howtoforge.local.

<VirtualHost *:80>
 ServerName nextcloud.howtoforge.local
 DocumentRoot /var/www/nextcloud/
# log files
ErrorLog /var/log/apache2/nextclouds.howtoforge.local-error.log
CustomLog /var/log/apache2/nextcloud.howtoforge.local-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>

Cuando hayas terminado, guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando para activar el archivo de host virtual nextcloud .conf y verifica tu sintaxis de Apache. Si la sintaxis de Apache es correcta, obtendrás una salida La sintaxis es correcta.

sudo a2ensite nextcloud.conf
sudo apachectl configtest

A continuación, ejecuta el siguiente comando systemctl para reiniciar el servidor web Apache y aplicar tus cambios.

sudo systemctl restart apache2

configurar apache

Una vez reiniciado Apache, ejecuta el siguiente comando certbot para generar certificados SSL y asegurar tu instalación Nextcloud con HTTPS. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tu información.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d nextcloud.howtoforge.local

Instalar Nextcloud

Abre tu navegador web y visita https://nexcloud.howtoforge.local/. Si la configuración es correcta, verás la página de instalación de Nextcloud.

En la página de instalación de Nextcloud, configura lo siguiente:

  • Introduce tu usuario y contraseña de administrador para Nextcloud
  • Selecciona la ruta de almacenamiento como directorio por defecto
  • Introduce los detalles de la base de datos Nextcloud que has creado
  • Haz clic en Instalar para iniciar la instalación.

instalar nextcloud

Ahora puedes instalar algunas aplicaciones Nextcloud o hacer clic en Omitir.

omitir la instalación de aplicaciones

Una vez finalizado el proceso, verás la siguiente página:

panel nextcloud

Conclusión

¡Enhorabuena! Has completado la instalación de Nextcloud en el servidor Ubuntu 24.04. Nextcloud está funcionando con la pila LAMP y asegurado con HTTPS a través de Certbot y Letsencrypt. Ahora puedes crear nuevos usuarios y subir archivos a tu Nextcloud, o puedes añadir nuevos métodos de almacenamiento en caché para mejorar su rendimiento.

También te podría gustar...