Instalación de Nextcloud 15 sobre Debian 9 (con NGINX y PHP 7.3)

En el artículo de hoy es una traducción de este sitio con información agregada y más organizado para su entendimiento. Vamos a tratar la instalación de Nextcloud sobre un sistema operativo GNU Linux, en este caso Debian. Nextcloud es un software escrito en php, es open source con licencia AGPLv3 dicho software está basado en el paradigma cliente – servidor, en este caso el servidor sería un servidor web con php y el cliente sería un navegador web, aunque también existen clientes de escritorio que se instalarían en un ordenador de “cualquier” tipo, ya que, hay versiones para Microsoft Windows, GNU Linux y MacOs. También existen clientes para móvil tanto para Android e IOS. Nextcloud es similar a el software Dropbox, es decir, Nextcloud tiene la parte de cloud de almacenamiento y compartición de archivos, pero Nextcloud no es solo eso, sino que mediante apps o plugins que podemos instalar junto con Nextcloud podemos hacer que se sea similar a Google Drive o Microsoft Office 365 que en próximos artículos veremos cómo complementar Nextcloud, en este articulo nos centraremos en la instalación del mismo. Pero entonces, ¿cuál es la ventaja de Nextcloud con respecto a sus alternativas? La ventaja principal es que podemos instalarlo en un servidor privado y nadie más que nosotros tiene nuestros datos.

Requisitos:

Para ello deberemos cumplir con unos requisitos previos. Muy importante la «Conexión a Internet» pues usaremos PHP 7.3 que no viene en el repositorio de Debian.

  • Contenedor de Proxmox con Debian 9 a 64 bits.
  • Necesitamos un mínimo de 128 Mb de Memoria RAM, aunque lo que recomienda la comunidad de Nextcloud es que el servidor tenga un mínimo de 512 Mb, pero mi recomendación es que como mínimo el servidor tenga 1 Gb de memoria RAM.
  • Conexión a Internet.
  • Instalar PHP 7.3

Requisitos opcionales:

Usar un almacenamiento externo en el cual poner nuestros datos del Nextcloud para que nuestro contenedor de Proxmox no se nos haga inmensamente grande.

  • Usar un 2do HDD dentro del mismo Proxmox.
  • Usar un compartido de un servidor NFS.

Una vez que tenemos claros y cumplidos los requisitos procedemos con la instalación de Nextcloud:

Corregimos bien el uso horario:

Nota.- A un CT de Proxmox no cambiarle la hora, hacerlo directamente en el host Proxmox.

Modificando «/etc/apt/sources.list»:

Incluirle estas líneas:

Guardamos y continuamos.

Instalando NGINX:

Modificando NGINX:

Cambiar configuración de NGINX:

Agregue las siguientes líneas:
Modificar el IP de tu LAN.

Reinicia NGINX:

Revisar si esta corriendo:

Para actualizar NGINX en el futuro solo debe introducir la siguiente línea:

Crea carpetas y aplica permisos:

Nota.- Los siguientes directorios puedes cambiarlos a conveniencia:
/nextcloud-data = Donde estarán todos los archivos de los usuarios.
/var/www = Donde extraeremos el compactado para instalar Nextcloud.

Instalando PHP 7.3:

Configurando PHP:

Para no aburrirlos dando «Enter» a cada una de las líneas las pondremos a continuación de un «;» para hacerlo mas rápido:

Además, estas 2 para el cron (cada una es una línea independiente):

Modifica /etc/fstab:

Determine el uid de su usuario www-data con:

Y solo si difiere de «uid=33» reemplaza el «uid=33» en las siguientes filas correctamente antes de ejecutarlas!

Opcional:

Monte tmpfs y luego reinicie ambos, PHP y NGINX:

Instalando MariaDB:

Nota.- Debe salir una pantalla azul y una caja en la cual introduciremos la contraseña para el usuario «root» de MariaDB. Y la repetimos.

Verifique la versión de su servidor de base de datos:

Asegurar MariaDB:

Configure MariaDB:

Agregue las siguientes líneas:

Reinicie el servicio y conéctese a MariaDB:

Crea la base de datos y el usuario:

Nota.- Contraseña de MariaDB

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 se estableció en UTF8MB4 correctamente:

Introducimos el password de MariaDB y debe devolvernos algo como esto:

Si el conjunto de resultados fue «READ-COMMITTED» y «utf8_general_ci» como se muestra, continúe con la instalación de redis.

Instalando Redis:

Cambiar configuración y pertenencia a grupos:

Reinicie su servidor:

Nextcloud:

Creando nextcloud.conf

Agregue las siguientes líneas:
Modificar los dos «SERVIDOR.DOMINIO.CU», y si vas a permitir redes sociales buscar las líneas que hablan al respecto.

Si desea que su Nextcloud se ejecute en un subdirectorio como «https://servidor.dominio.cu/nextcloud«, use este nextcloud.conf en su lugar:
Modificar los dos «SERVIDOR.DOMINIO.CU», y si vas a permitir redes sociales buscar las líneas que hablan al respecto.

Ahora crearemos el certificado SSL:

Al ejecutar este comando vendrán una serie de preguntas las cuales voy a explicar a continuación:
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.
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:

Crea el ssl.conf:

Agregale las líneas siguientes:

Crea el proxy.conf:

Agregale las líneas siguientes:

Crea el header.conf:

Agregale las líneas siguientes:
Modificar en la última linea «servidor.dominio.cu» por el FQDN de tu servidor Nextcloud y mantener el «https».

Crea el optimization.conf:

Agregale las líneas siguientes:

Crea el php_optimization.conf:

Agregale las líneas siguientes:

Modificar NGINX para usar los nuevos archivos que creamos (proxy, ssl, header y optimization), y lo reiniciamos:

Revisamos nuevamente su estado:

Descargar y extraer Nextcloud:

Nota.- Si lo tienes descargado ya copialo al servidor usando un cliente SFTP

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.
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:

Editamos el fstab para montar automáticamente el nuevo disco cuando arranque nuestro proxmox.

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:
/nextcloud-data/ 192.168.2.1(rw,no_wdelay,async,no_root_squash,no_subtree_check)

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:

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 damos permisos:

Agregarle al «rc.local» el comando para que monte el compartido del NFS cuando se inicie:

Agregarle:

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 también:

Hacemos una copia de la configuración:

Amplía tu config.php de Nextcloud:

Agrega las siguientes líneas a continuación de las que aparecen:

Edita el .user.ini de Nextcloud:

Reinicia servicios:

Ajustar aplicaciones de Nextcloud:

Optimice su Nextcloud ahora (a) y regularmente (b) usando un script:

(a).-

Nota.- Pedirá confirmación para continuar: y

(b).-

Agregale:

Guarda el script y márcalo como ejecutable:

Ejecute el script optimize.sh:

Añadir cronjobs para www-data y root:

Para www-data:

Agregale:

Para root:

Agregale la siguiente línea 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     ó     https://192.168.2.1/login

Información
Usuario = UsuarioAdmin (El que especificamos instalando Nextcloud silenciosamente)
Password= PasswordAdmin (El que especificamos instalando Nextcloud silenciosamente)

Una vez completada la instalación vamos al apartado «Configuración» pinchando en el icono de engranaje en la parte superior derecha.
Luego pinchamos en «Ajustes basicos» 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 desaparecera.
Si dice «El servidor no tiene conexión a internet» pues es algo muy evidente.

Actualizar NextCloud periodicamente:

Con este script  desarrollado por el alemán Carsten Rieger nos será muy fácil actualizar nuestra nube.

Y nada mas, a crear usuarios. Que aproveche!

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

13 comentarios

  1. Google Chrome 103.0.0.0 Google Chrome 103.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36

    Mis Saludos.
    Tengo necesidad de publicar este Server NextCloud en Nginx pero esta vez sin la necesidad de un certificado SSL. Lo he intentado luego de este tutorial pero no se autentican los usuarios. Algún vhost que me pudieran compartir. Gracias.

  2. Google Chrome 89.0.4389.90 Google Chrome 89.0.4389.90 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36

    Lo primero es agradecer por tan buen tutorial. Segui todos los pasos uno a uno y al final cuando intento acceder a la web del nextcloud me da el siguiente error

    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 server log.

    Me podrias ayudar con esto.

  3. Firefox 70.0 Firefox 70.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0

    Hola:

    Antes que nada mencionar y agradecer por el buen y excelente trabajo que realizan todos en este sitio, MUCHAS GRACIAS por la ayuda y colaboración.

    Resulta que tengo instalado un Nextcloud y puedo decir que está funcionando al 100% pero estoy presentando un problema que anteriormente ya me había encontrado en su homologo Owncloud.

    En mi servidor tengo activada la INTEGRACION LDAP/AD y la misma funciona perfectamente mientras las cuentas de usuario no estén ancladas a mas de una cuenta de equipo incluida la propia máquina de Nextcloud, porque en cuanto esto sucede la autenticación deja de funcionar y comienza a mostrar el error de «Usuario o contraseña erróneos.»

    He buscado información al respecto y no aparece NADA, si alguien ha pasado por esta misma situación y/o conoce la solución a este problema POR FAVOR… AYUDA.

    Saludos
    Abdel

  4. Google Chrome 77.0.3865.90 Google Chrome 77.0.3865.90 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36

    Hola, muy buena su pagina, tiene un nuevo seguidor.

    le comento que he seguido al pie de la letra su guia, sin embargo en el paso (INSTALAR NEXTCLOUD SILENCIOSAMENTE), me ha saltado un error indicandome que la base de datos no es soportada, anexo screenshot del error.

    Comando: PHP
    # su – www-data -s /bin/bash -c ‘php /var/www/nextcloud/occ maintenance:install –database «mysql» –database-name «nextcloud» –database-user «nextcloud» –database-pass «passw0rd» –admin-user «UsuarioAdmin» –admin-pass «PassswordAdmin» –data-dir «/nextcloud-data»‘
    1
    # su – www-data -s /bin/bash -c ‘php /var/www/nextcloud/occ maintenance:install –database «mysql» –database-name «nextcloud» –database-user «nextcloud» –database-pass «passw0rd» –admin-user «UsuarioAdmin» –admin-pass «PassswordAdmin» –data-dir «/nextcloud-data»‘

    Resultado:
    https://prnt.sc/phi3vi


  5. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 66.0 Firefox 66.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0

    su – www-data -s /bin/bash -c ‘php /var/www/nextcloud/occ config:system:set trusted_domains 1 –value=nextcloud.dominio.cu’

    Estos comandos también me dieron: error en el sistema

    • Opera 62.0.3331.116 Opera 62.0.3331.116 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 OPR/62.0.3331.116

      Revise bien amigo, en esa línea hay que cambiar al final «dominio.cu» por el dominio suyo. Además, recuerde que copiando de la web pueden cambiar los caracteres y no es lo mismo – que -. Chequee bien cada uno de los comandos que ejecuta. Repetimos, ese manual está más que comprobado. Saludos


  6. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 66.0 Firefox 66.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0

    sed -i ‘$atmpfs /usr/local/tmp/apc tmpfs defaults,uid=33,size=300M,noatime,nosuid,nodev,noexec,mode=1777 0 0’ /etc/fstab

    Cuando ejecuto ese comando el mount -a dice que no tengo permiso y si reinicio el contenedor el mismo ya deja de ser funcional.

    • Opera 62.0.3331.116 Opera 62.0.3331.116 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 OPR/62.0.3331.116

      Revise bien, este manual fue probado en varias ocaciones antes de ser publicado.
      Chequee las comillas que no sean del teclado Español sino las comillas simples del teclado Ingles (‘)
      En cuanto a que el contenedor al reiniciarlo deja de ser funcional actualice su Proxmox. Eso pasa al usar Debian 9 en Proxmox desactualizados.


      • Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
        Firefox 66.0 Firefox 66.0 Ubuntu x64 Ubuntu x64
        Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0

        Estoy usando un contenedor lxc con debian 9 en el Proxmox 6.0-4, el comando se ejecuta bien pues mira como mira como queda el fstab

        # UNCONFIGURED FSTAB FOR BASE SYSTEM
        tmpfs /usr/local/tmp/apc tmpfs defaults,uid=33,size=300M,noatime,nosuid,nodev,noexec,mode=1777 0 0
        tmpfs /usr/local/tmp/cache tmpfs defaults,uid=33,size=300M,noatime,nosuid,nodev,noexec,mode=1777 0 0
        tmpfs /usr/local/tmp/sessions tmpfs defaults,uid=33,size=300M,noatime,nosuid,nodev,noexec,mode=1777 0 0

        pero cuando ejecuto mount -a me da este error
        root@srv-nextcloud:/# mount -a
        mount: only root can use «–all» option (effective UID is 100000)

        y si con esos cambios en el fstab reinicio el contenedor ya no me deja entrar por ssh, de cualquier
        forma salte ese paso y el nextcloud ya lo tengo funcionando

  7. Firefox 65.0 Firefox 65.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0

    Que buen tuto, hace poco descubri su blog debo decir que es una genialidad hay cosas buenisimas; el tuto me parece bien, la consulta seria:
    ¿Cual es la diferencia entre usar NGINX o APACHE? ¿Cuales son las ventajas o desventajas?

  8. Firefox 65.0 Firefox 65.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0

    En configuracion de segundo disco cuando editas la configuracion del contenedor pone:
    mp0: /nextcloud,mp=/nextcloud-data

    y deberia de ser
    mp0: /nextcloud-data,mp=/nextcloud-data
    ya que montas el disco como nextcloud-data no como nextcloud

  9. Firefox 65.0 Firefox 65.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0

    Una pregunta
    A la hora de usar el 2do hdd hace falta montarlo cada vez que reinicie proxmox? y si es asi como se puede poner de forma automatica

    Gracias

Responder a Jaime Cancelar la respuesta

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


*