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
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.
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
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
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
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;
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:
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
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
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
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.
Ahora puedes instalar algunas aplicaciones Nextcloud o hacer clic en Omitir.
Una vez finalizado el proceso, verás la siguiente página:
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.