Instalación de Nextcloud 17 en Debian 9 y 10

Con esta guía que es una traducción del sitio de Carsten Rieger ,instalarás la última versión de Nextcloud 17 para Debian 9.x o para Debian 10 en un contenedor de Proxmox. La instalación incluye Nginx, PHP 7.3, MariaDB, Redis y Certificados autofirmados para llevar el sitio a HTTPS.

Requisitos:
– Conexión a Internet.
– Contenedor de Proxmox con Debian 9.x o Debian 10.x (64Bit).

Opcional:
– Almacenamiento externo (FreeNAS, NFS, Cloudbox, etc) anclado al contenedor en el cual guardaremos los archivos de los usuarios.

Nota.- Todas las operaciones las haremos como “root”, si usas un usuario diferente escale con el comando “su -”
Nota.- Si lo va a instalar en un Proxmox 6.x no olvide desmarcar “Unprivileged CT” al crear el contenedor. Luego en CT_ID -> Options -> Features -> Nesting. Si no activa la opción “Nesting” tendrá problemas al iniciar algunos procesos.

Preparando:
Verifica la zona horaria:

Escogemos “America” y luego “Havana”

Configura “locales”:

Busca en la lista: en_US.UTF-8 UTF-8
Seleccionarlo con “Espacio”, y en la siguiente pantalla bajar hasta “en_US.UTF-8” y “Enter”.

Reiniciar y verificar:

Intalando herramientas necesarias:

Agregar nuevos repositorios:

Descargamos las keys necesarias:

Actualizamos:

Nginx:

En caso de usar un CT nuevo no habrá ningún servicio de apache corriendo, pero en caso de instalar en uno usado asegúrate de detenerlo, de lo contrario Nginx no iniciará porque el puerto requerido está en uso (:80)

Configurar nginx:

Agregarle:

Nota.- Modifica “set_real_ip_from” por la subred en la que se instalará el CT. Modifica “resolver” a otro IP DNS si lo desea.

Reinicia el servicio:

Crea carpetas y aplica permisos:
Nota.- El siguiente directorio puedes cambiarlo a conveniencia, pero tenlo en cuenta porque a él debes anclar el almacenamiento externo en caso que lo uses:
/nextcloud-data = Donde estarán todos los archivos de los usuarios.

PHP:

Configurando PHP:

Configurando ImageMagick:

Reinicia PHP y Nginx:

MariaDB

Nota.- Durante dicha instalación deberás poner la contraseña que tendrá el usuario “root” de MariaDB.

Verifica la versión:

Asegura MariaDB:

Nota.- Contraseña de MariaDB

Nota: Si deseas cambiar la contraseña del usuario “root” de MariaDB este es el momento.

Configurando MariaDB:

Agregarle:

Reinicia el servicio:

Crea la base de datos, el usuario y la cotraseña:
Base de datos = nextcloud
Usuario para conectarse a la Base de datos = nextcloud
Password = passw0rd (o la que usted desee)

Verifique que “transaction isolation level” se haya establecido a “READ_COMMITTED” y la colación en “UTF8MB4“:

Debe quedar de la siguiente manera:

Redis:

Cambiar configuración y pertenencia a grupos:

Ahora recomendamos reiniciar:

Nextcloud:

Creando nextcloud.conf:

Agregale:

Nota.- Modifica los 2 parámetros “server_name” por el nombre DNS que tendrá tu servidor Nextcloud.

Si desea que su Nextcloud se ejecute en un subdirectorio como “https://servidor.dominio.cu/nextcloud“, use este nextcloud.conf en su lugar:

Nota.- Modifica los 2 parámetros “server_name” por el nombre DNS que tendrá tu servidor Nextcloud.

Ahora crearemos el certificado SSL:

Al ejecutar el último comando vendrán una serie de preguntas las cuales voy a explicar a continuación:
Nota.- En caso de equivocación presionar Ctrl + C para cancelar, introducir el comando anterior y volver a empezar.

Country Name (2 letter code) = Código de país en formato ISO de dos letras mayúsculas.
State or Province Name (full name) = Estado o provincia.
Locality Name = Localidad o ciudad.
Organization Name = Nombre de la organización.
Organizational Unit Name = Sector de la organización.
Common Name = FQDN del servidor. Introducir el DNS para tu nextcloud (nextcloud.dominio.cu).
Email Address = Dirección de correo de contacto. (o Enter para no poner nada)
A los campos “A challenge password” y “An optional company name” dale Enter para dejarlos en blanco.

Generamos el certificado para 10 años:

Creando ssl.conf:

Agregale las lineas siguientes:

Creando proxy.conf:

Agregarle:

Crando header.conf:

Agregale:

Creando optimization.conf:

Agregale:

Creando php_optimization.conf:

Agregale:

Mejora la seguridad:

Nota: Por favor, sea paciente, tomará tiempo dependiendo de su hardware.

Reinicia Nginx:

Descargar, extraer Nextcloud y dar permisos:

Si lo tienes en .zip:

Justo antes de instalar haremos un paréntesis para quienes quieran usar un almacenamiento externo ya quede instalado Nextcloud dentro de dicho almacenamiento.

Usando un 2do HDD dentro del mismo Proxmox haremos lo siguiente:

Apagamos el contenedor:

Nos conectamos al host Proxmox y realizamos estos pasos.

Asumiremos que usted solo tiene conectado el HDD sin montar y el sistema lo nombró sdb, en caso de tenerlo ya montado desmóntelo y use la ruta /nextcloud-data (o la que especificó en dicho paso).

Listamos los HDD

Si como dijimos, no lo tiene montado, en la parte de “MountPoint” para “sdb” no saldrá nada.

(Si el HDD es nuevo) Formateamos el HDD en Ext4:

Creamos un directorio en el cual montaremos el nuevo HDD. Montamos y corregimos permisos:

Modificamos el archivo de configuración de nuestro contenedor (sustituir ID):

Debajo de la línea “memory” agregamos lo siguiente:

Nota.- Directorio de Proxmox mapeado a la carpeta /nextcloud-data del contenedor. La información la guardaras directamente en el 2do HDD del Proxmox.

Listo! Iniciamos el contenedor nuevamente y continuamos con la Instalación del Nextcloud.

Usando un compartido NFS:

Apagamos el contenedor:

Si usted tiene un servidor NFS en su red también puede usarlo para guardar los datos de su Nextcloud. Para ello realizamos estos pasos.

Asumiremos que usted sabe trabajar con su servidor NFS y que ya creó el directorio que va a compartir y modificó el archivo “/etc/exports” del NFS donde agrego el IP de su servidor Nextcloud.

Un ejemplo de o que se debería agregar al exports:

Luego de esto le realizaremos unos cambios al APP ARMOR del host Proxmox donde se encuentra nuestro Nextcloud para que los Contenedores puedan conectarse al NFS.

Si su Proxmox es version 4.4.x:

Y agregamos antes del “}” final:

Si su Proxmox es version 5.2.x:

Agregamos antes del “}” final:

Si su Proxmox es version 6.x.x:
Como dijimos al inicio el CT debe tener privilegios sino no conecta con el servidor NFS.
Realice los mismos pasos que la version 5.

Y además en el archivo de configuración del contenedor:

Agregamos las siguientes lineas al final:

Luego de acomodar el APP ARMOR instalamos el cliente NFS en el contenedor de Nextcloud:

Creamos el archivo “rc.local” si no está, y le agregamos el comando para que monte el compartido del NFS cuando se inicie:

Agregarle:

Y le damos los permisos correspondientes:

Iniciamos el contenedor y revisamos si se montó bien el compartido con el siguiente comando:

Listo! Ahí tenemos nuestro compartido NFS listo para utilizar.

Continuamos con la instalación…

Instala Nextcloud silenciosamente:

Información:
-database-name “nextcloud”: La creamos anteriormente configurando base de datos y usuario.
-database-user “nextcloud”: Lo creamos anteriormente configurando base de datos y usuario.
-database-pass “passw0rd”: La que pusimos anteriormente configurando base de datos y usuario.
-admin-user “UsuarioAdmin”: Nombre de usuario para administrar Nextcloud, el que guste.
-admin-pass “PassswordAdmin”: Contraseña del usuario de administración, la que guste.
-data-dir “/nextcloud-data”: Si modificaste al inicio del manual esta dirección, sustituyala.

Modifica las líneas para tu dominio:

Si vas a acceder al Nextcloud por el IP agregamos su tambien:

Hacemos una copia de la configuración:

Amplía tu “config.php” de Nextcloud:

Edita el .user.ini de Nextcloud:

Reinicia:

Ajustar aplicaciones de Nextcloud:

Optimiza Nextcloud usando 2 scripts:

A.- Actualiza tu servidor periodicamente:

Agrega:

B.- Optimiza tu servidor periodicamente:

Salva ambos scripts y marcalos como ejecutables:

Ejecútelos:

Añadir cronjobs para www-data y root:
Para www-data:

Agrega:

Para root:

Agrega debajo de la que aparece:

Configurar Nextcloud para que use cron.php:

Reiniciar el servidor:

Logueate en tu nuevo servidor de Nextcloud:
https://nextcloud.dominio.cu/login o https://192.168.2.10/login

Usuario = nextcloud (El que especificamos instalando Nextcloud silenciosamente)
Password= passw0rd (El que especificamos instalando Nextcloud silenciosamente)

Si falla la comprobación de integridad dentro de Nextcloud, intente cambiar el config.php:

Vuelva a ejecutar la comprobación de integridad y vuelva a establecer el valor en “falso”:

Una vez completada la instalación vamos al apartado “Configuracion” pinchando en el icono de engranaje en la parte superior derecha.
Luego pinchamos en “Vista General” y revisamos el apartado “Avisos de seguridad y configuración“.
Si dice “Ha pasado todos los controles” pues genial, no nos queda nada por hacer.
Si dice “Hace mas de ‘X’ años que no se ejecutan los cron jobs” no te preocupes, dale varios minutos para que se ejecuten los que agregamos durante la instalación y la alerta desaparecerá.
Si dice “El servidor no tiene conexión a internet” pues es algo muy evidente.

Y nada mas, a crear usuarios. Que aproveche!

(Visited 1 times, 1 visits today)

3 Comentarios

  1. hola creo que deberia arreglar dos cosas!!!
    1. ANTES DE: Instala Nextcloud silenciosamente:
    creo que le falta:
    # cd /opt/
    # wget https://download.nextcloud.com/server/releases/latest.tar.bz2
    # tar -xjf latest.tar.bz2 -C /var/www && chown -R www-data:www-data /var/www/ && rm -f latest.tar.bz2
    NOTA:
    En caso de nextcloud-17.0.1.zip
    # unzip nextcloud-17.0.1.zip -C /var/www && chown -R www-data:www-data /var/www/

    2: LUEGO DONDE DICE:
    Amplía tu “config.php” de Nextcloud:
    Debes arreglar esta linea:
    cat <<EOF >>/var/www/nextcloud/config/config.php

    • Cierto, tiene usted razón, pero solo en parte.
      Agregaremos los pasos de descargar el compactado de Nextcloud lo antes posible porque realmente sin eso no tenemos nada.
      La segunda no. La línea es así tal cual. Se usa para agregarle algo a un archivo sin tener que abrirlo, copiarle lo que necesitamos y luego guardarlo.
      Gracias y saludos.

      • Esto no me sirvio, fue por gusto, este es el error que me da:

        Internal Server Error

        The server encountered an internal error and was unable to complete your request.
        Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
        More details can be found in the webserver log.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*