• Inicio
  • VMware
  • Veeam
  • Office 365
  • Linux
  • Varios
Menu
  • Inicio
  • VMware
  • Veeam
  • Office 365
  • Linux
  • Varios
Home  /  Linux  /  Instalar Nextcloud 21 en Ubuntu 20.04
Nextcloud 21 en Ubuntu
05 abril 2021

Instalar Nextcloud 21 en Ubuntu 20.04

Written by Eduardo Diaz
Linux nextcloud 1 Comment

Buenas a todos y bienvenidos a este artículo en el que os mostraré como realizar la instalación de Nextcloud 21.0.0 en un servidor con Ubuntu 20.04 Focal Fossa.

Nextcloud es una plataforma que proporciona una solución de colaboración muy similar a Google Docs o Dropbox pero que opera de forma local, y que no está vinculada a servicios externos en la nube.

Si necesitáis más información sobre esta herramienta, aquí os dejo el enlace de la web oficial: https://nextcloud.com/hub/

Sin más dilación, ¡comencemos con la guía paso a paso para configurarlo!

1. Configuración Inicial Ubuntu 20.04

Antes de realizar la instalación de Nextcloud, hemos de instalar Apache, que será el servidor web en el que se ejecutará nuestra nube, así como MySQL, que será el servidor de base de datos que Nextcloud usará para guardar los archivos.

Primero, actualizaremos los repositorios de nuestra máquina:

sudo apt update

Y posteriormente, instalaremos Apache y MySQL:

sudo apt install apache2
sudo apt install mysql-server

Antes de comenzar a utilizar MySQL, es importante securizarlo. Para ello, lanzaremos el siguiente comando:

sudo mysql_secure_installation

En primer lugar, nos pregunta si deseamos establecer un componente de contraseñas seguras y establecer una contraseña para el usuario root.

Y a continuación nos consulta acerca de los componentes de la instalación de MySQL, preguntando si queremos eliminar el usuario “Anónimo” creado por MySQL para facilitar la instalación del servidor, deshabilitar la opción de login remoto del usuario root, eliminación de la base de datos “test” que por defecto se encuentra en nuestra instalación limpia de MySQL, los accesos a la misma, y refrescar la tabla de privilegios.

Tras este paso, nos conectaremos a la base de datos y la configuraremos:

sudo mysql -u root -p

Introducimos la contraseña que establecimos en el paso anterior, y crearemos la base de datos llamada “nextcloud“, el usuario “nextcloud” y su contraseña correspondiente, y le daremos privilegios sobre la base de datos recién creada.

create database nextcloud;
create user 'nextcloud'@'localhost' identified by 'mipassword';
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';
flush privileges;
quit

Para terminar con el proceso de preparación de la máquina, instalaremos ahora PHP. Para garantizar la mayor compatibilidad con Nextcloud 21, se recomienda instalar la última versión de PHP, en este caso, 7.4.

sudo apt install php7.4

También instalaremos los componentes de PHP necesarios:

sudo apt install php7.4-gd php7.4-mysql php7.4-curl php7.4-mbstring
sudo apt install php7.4-intl php7.4-gmp php7.4-bcmath php7.4-xml
sudo apt install php7.4-zip php-imagick php-apcu

Finalizado este proceso, ya tenemos nuestro servidor Ubuntu 20.04 listo para comenzar la instalación de Nextcloud.

2. Instalación de Nextcloud

Nos dirigiremos a la página https://nextcloud.com para conseguir el link de descarga del mismo. A continuación, hacemos click en “Get Nextcloud”, “Server Packages”, click derecho en “Download Nextcloud”, y copiamos el link de descarga como se muestra en la imagen:

Imagen2 - Instalar Nextcloud 21 en Ubuntu 20.04

Vamos a nuestra máquina, descargamos y descomprimimos la aplicación:

wget https://download.nextcloud.com/server/releases/nextcloud-21.0.0.zip
sudo apt install unzip
sudo unzip nextcloud-21.0.0.zip -d /var/www

Cambiaremos el propietario del directorio Nextcloud recién creado:

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

Y ahora realizaremos unos pasos de configuración en Apache para poder acceder a nuestra instalación de Nextcloud mediante el navegador:

sudo a2enmod headers env dir mime

Añadiremos una entrada virtual en el archivo de configuración de Apache, para poder dirigir a quien apunte a nuestro servidor, al directorio de Nextcloud:

cd /etc/apache2/sites-available/
sudo vi 000-default.conf

Comentaremos la línea 2, y cambiaremos el apunte de “DocumentRoot” a nuestro directorio de Nextcloud, y añadiremos unos parámetros de configuración dentro del directorio, quedando de la siguiente forma:

<VirtualHost *:80>
        #ServerAdmin webmaster@localhost
        DocumentRoot /var/www/nextcloud
        <Directory /var/www/nextcloud/>

                Require all granted
                AllowOverride All
                Options FollowSymLinks Multiviews

                <Ifmodule mod_dav.c>
                        Dav off
                </IfModule>

        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Si disponemos de un dominio, y queremos acceder al servidor desde el exterior, añadiremos debajo de “DocumentRoot” la siguiente línea:

ServerName cloud.tudominio.com

Ahora, reiniciaremos Apache para aplicar los cambios realizados en los módulos:

sudo service apache2 restart

Y ya podremos acceder a la instalación de Nextcloud con nuestro navegador, accediendo mediante la IP interna de nuestra máquina:

Imagen4 - Instalar Nextcloud 21 en Ubuntu 20.04

En la parte superior, crearemos nuestro usuario administrador de la aplicación, y en la inferior, pondremos los datos relativos a la base de datos que configuramos previamente. Tendremos un checkbox habilitado por defecto, que nos instalará todo el Hub. Desactivarlo si queremos utilizar Nextcloud exclusivamente como un espacio de almacenamiento compartido.

Hacemos click en instalar, y tras unos minutos de espera, habrá concluido la instalación de Nextcloud.

3. Optimización de la instalación

Si hemos seguido el procedimiento de forma correcta, tendremos ya lista nuestra plataforma y podremos hacer uso de ella. Sin embargo, echando un vistazo rápido en Configuración > Administración > Vista general , vemos que hay una serie de errores que debemos solucionar:

Imagen3 1024x579 - Instalar Nextcloud 21 en Ubuntu 20.04

Comenzaremos solucionando el error de límite de memoria de PHP, dirigiéndonos a nuestra máquina para cambiar el dicho límite en el archivo “php.ini”, cambiando el valor “memory-limit” a 512M:

sudo vi /etc/php/7.4/apache2/php.ini
sudo service apache2 restart

A continuación, corregiremos el error relativo a la memoria caché, así como la incidencia de código de pais. Para ello, editaremos el archivo “config.php” de nuestro directorio de Nextcloud:

sudo vi /var/www/nextcloud/config/config.php

Y añadiremos las siguientes líneas al final del archivo:

'default_phone_region' => 'ES',
'memcache.local' => '\OC\Memcache\APCu',

Ahora, abordaremos el problema de servidor web “caldav” y “carddav“. Para ello, tendremos que recargar el fichero “.htaccess” con el siguiente comando:

cd /var/www/nextcloud
sudo -u www-data php occ maintenance:update:htaccess

Y posteriormente, modificar el archivo “.conf” de nuestro directorio de Apache:

vi /etc/apache2/sites-available/000-default.conf

Añadiendo el módulo “RewriteEngine“, dejando el archivo como se detalla a continuación:

<VirtualHost *:80>

     DocumentRoot /var/www/nextcloud

    <Directory /var/www/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        RewriteEngine On
        RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
        RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
        RewriteRule ^/\.well-known/host-meta https://%{SERVER_NAME}/public.php?service=host-meta [QSA,L]
        RewriteRule ^/\.well-known/host-meta\.json https://%{SERVER_NAME}/public.php?service=host-meta-json [QSA,L]
        RewriteRule ^/\.well-known/webfinger https://%{SERVER_NAME}/public.php?service=webfinger [QSA,L]

    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Ahora, habilitaremos el módulo, y reiniciaremos Apache:

sudo a2enmod rewrite
service apache2 restart

Por último solucionaremos el último error, relativo al módulo “php-imagick“. Este módulo fue instalado durante la preparación de la máquina, pero no es reconocido por la instalación de la plataforma. Para que sea reconocido, hemos de desinstalarlo e instalarlo nuevamente:

sudo apt remove imagemagick-6-common
sudo apt remove php-imagick
sudo apt autoremove
sudo apt install php-imagick imagemagick
service apache2 restart

Ahora volveremos a nuestro navegador web, y actualizaremos la página en la que teníamos los avisos de seguridad, y podremos comprobar que han desaparecido, salvo el aviso de navegación HTTP, que corregiremos unas líneas más adelante.

4. Configuración SSL y navegación segura

Tendremos aun el aviso de que la conexión no es segura, ya que estamos realizando la navegación mediante HTTP. Para poder eliminar este aviso, tendremos que instalar un certificado SSL en nuestra máquina, y editar el archivo “default-ssl.conf“:

vi /etc/apache2/sites-available/default-ssl.conf

Y añadir las modificaciones que realizamos anteriormente al archivo “000-default.conf“, pero aplicando los apuntes correspondientes hacia el certificado instalado y a su key correspondiente, así como hacia el subdominio correcto, dejándolo de la siguiente manera:

<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerName nextcloud.tudominio.com
                SSLEngine On
                SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
                SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
                DocumentRoot /var/www/nextcloud/

        <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
                RewriteEngine On
                RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
                RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
                RewriteRule ^/\.well-known/host-meta https://%{SERVER_NAME}/public.php?service=host-meta [QSA,L]
                RewriteRule ^/\.well-known/host-meta\.json https://%{SERVER_NAME}/public.php?service=host-meta-json [QSA,L]
                RewriteRule ^/\.well-known/webfinger https://%{SERVER_NAME}/public.php?service=webfinger [QSA,L]

        </Directory>

        <IfModule mod_headers.c>
                Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
        </IfModule>

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

        </VirtualHost>

Una vez realicemos estos cambios, cargaremos los módulos correspondientes, y reiniciaremos Apache:

sudo a2ensite default-ssl.conf
sudo a2enmod ssl
sudo a2enmod rewrite
service apache2 restart

Para finalizar, os recomiendo cambiar el ajuste de “Trabajos en segundo plano”. Para ello iremos a Configuración > Administración > Ajustes Básicos , y cambiaremos el tipo “AJAX” a “Cron“, y nos dirigiremos a nuestra máquina para configurar este cronjob:

sudo crontab -u www-data -e

Seleccionaremos la opción 1 “(/bin/nano)“, y añadiremos el texto a continuación al final del archivo:

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

Con esto, habremos terminado de configurar completamente nuestra máquina de Ubuntu 20.04 con Nextcloud 21.

Espero que este artículo os sirva de ayuda y os anime a dar una oportunidad a esta maravillosa herramienta Open Source.

Muchas gracias, y un saludo.

¡Compártelo!
Share on Facebook
Share on Twitter
Share on LinkedIn
Share on Whatsapp
Eduardo Diaz
Connect on Twitter Connect on Linkedin

Técnico de Sistemas en Emibin Consulting S.L. Apasionado de la tecnología, videojuegos y series. Redactor del blog Edudima.com

 Previous Article Bienvenidos a Edudima
Next Article   Migración CentOS 8 – AlmaLinux 8

Related Posts

  • imagen_destacada_nextcloud28

    Instalar Nextcloud 28.01 en Ubuntu 22.04

    17 17+02:00 enero 17+02:00 2024

1 Comment

  1. Pedro Reply
    10 10+02:00 febrero 10+02:00 2022 at 9:43 am

    Muy buen artículo, todavía no he seguido los pasos pero tiene buena pinta. Tan solo faltaría explicar la parte del instalar el certificado digital… Muchas gracias!

    Cargando...

Deja un comentarioCancelar respuesta

Buscar

Redes Sociales

  • Connect on Twitter
  • Connect on LinkedIn
  • Connect on Github

¡Suscríbete!

Introduce tu correo electrónico para recibir avisos de nuevas entradas.

Entradas recientes

  • VMware – Añadir almacén de datos conectado a ESXi por USB-C
  • VMware – Instalando ESXi 8.0.2 en Intel NUC
  • Windows Server 2022 – Error Sysprep
  • Particiones en Windows Server 2022 – Modificación Layout por defecto
  • Heimdall en Ubuntu 22.04 – Dashboard para nuestras aplicaciones
  • Popular Posts
  • Recent Posts
  • Migrar IMAP OFFICE365
    Migración buzones correo IMAP a Office 365 12 12+02:00 abril 12+02:00 2021
  • setup inicial udm pro
    Setup inicial UniFi Dream Machine Pro 26 26+02:00 mayo 26+02:00 2021
  • unboxing udm pro
    UniFi Dream Machine Pro – Unboxing 24 24+02:00 mayo 24+02:00 2021
  • esxi usb-c
    VMware – Añadir almacén de datos conectado a ESXi por USB-C 27 27+02:00 abril 27+02:00 2024
  • esxi usb-c
    VMware – Añadir almacén de datos conectado a ESXi por USB-C 27 27+02:00 abril 27+02:00 2024
  • nuc esxi8
    VMware – Instalando ESXi 8.0.2 en Intel NUC 19 19+02:00 abril 19+02:00 2024
  • windows server 2022 sysprep
    Windows Server 2022 – Error Sysprep 16 16+02:00 abril 16+02:00 2024
  • layout_particiones
    Particiones en Windows Server 2022 – Modificación Layout por defecto 27 27+02:00 enero 27+02:00 2024
abril 2021
LMXJVSD
 1234
567891011
12131415161718
19202122232425
2627282930 
    May »
  • Política de Privacidad
  • Política de Cookies
Edudima @ 2024  -  Todos los derechos reservados
Este Blog usa cookies propias y de terceros para optimizar la navegación y que puedas ver correctamente su contenido, ofrecer funciones de redes sociales, analizar el tráfico y otras. Para más información o para conocer cómo cambiar la configuración de tu navegador, lee nuestra Política de Cookies
AJUSTES DE COOKIESACEPTAR
Administrar consentimiento

Resumen de privacidad

Este sitio web utiliza cookies para mejorar tu experienta mientras navegas. Además de esto, las cookies que están categorizadas como necesarias, son almacenadas en tu navegador ya que son necesarias para el funcionamiento y las funcionalidades básicas de este sitio web. También se usan cookies de terceros que nos permiten analizar y entender como se usa este sitio web. Estas cookies serán almacenadas en tu navegador solamente con tu consentimiento. Tienes la opción de renunciar a estas cookies, pero hacerlo puede afectar a tu experiencia de navegación.
Sociales
Las cookies sociales son instaladas por los proveedores de servicios de redes sociales, al compartir determinados contenidos de la web mediante dichas redes.
Analíticas
Las cookies analíticas son utilizadas para el seguimiento y análisis estadístico del comportamiento del conjunto de los usuarios.
Necesarias
Son cookies técnicas necesarias para garantizar el correcto funcionamiento de este sitio web. Recogen información del mismo, y ayudan a la localización y solución de problemas del sitio.
GUARDAR Y ACEPTAR
Funciona con CookieYes Logo
%d