Cómo instalar Nextcloud en CentOS 7

En esta entrada explicamos cómo instalar Nextcloud en CentOS 7 paso a paso, de modo que podrás crear tu propio servicio de nube de archivos y documentos en tu servidor o VPS CentOS para aprovechar al máximo sus capacidades.

Antes de instalar Nextcloud en CentOS 7

Si quieres completar esta pequeña guía de instalación de Nextcloud en CentOS 7 deberías revisar los siguientes requisitos mínimos:

  • Una máquina CentOS 7 actualizada.
  • Un entorno o pila LAMP (servidor web con PHP y servicio de bases de datos).
  • Los paquetes bzip2, policycoreutils-python, y wget.
  • Acceso a consola como root o un usuario con privilegios de sudo.
  • Acceso a Internet.

En el caso de que aún no dispongas del entorno necesario, consulta nuestra guía de instalación de la pila LAMP en CentOS 7.

Puedes instalar Nextcloud en tu sistema como la página por defecto, una sección de la página por defecto o como un servidor virtual independiente. Por sencillez de esta guía, instalaremos Nextcloud como parte del sitio web por defecto del servidor CentOS 7. Además, es importante, aunque no obligatorio, configurar las conexiones seguras por HTTPS en el servidor web.

Cómo descargar Nextcloud para CentOS 7

Debido a que los paquetes existentes en el repositorio EPEL están muy anticuados, vamos a descargar Nextcloud para CentOS 7 desde su página oficial y aprovecharemos la última versión disponible:

como descargar nextcloud para centos 7

A través del enlace «Server packages» de la opción «Get Nextcloud» del menú, accederemos a la página de descarga en la que ignoramos el botón grande «Download Nextcloud»  y pulsamos en «Details and download options«:

descargar nextcloud para centos 7

Podremos elegir entre el paquete en versión .tar.bz2 o .zip y descargarlo desde el navegador o, como haremos en este tutorial, copiar el enlace y descargar el paquete desde consola con el comando wget:

~$ wget https://download.nextcloud.com/server/releases/nextcloud-23.0.0.tar.bz2

Cómo instalar Nextcloud en CentOS 7

Para instalar Nextcloud en CentOS 7 antes debemos realizar toda una serie de preparativos, de modo que posteriormente el instalador web de Nextcloud correrá sin obstáculos.

Preparación de los archivos de Nextcloud

Descomprimimos el paquete en la ubicación que hayamos decidido para Nextcloud en la estructura del servicio web:

~$ sudo tar xf nextcloud-23.0.0.tar.bz2 -C /var/www/html/

Se creará un subdirectorio nextcloud/ en la ubicación especificada. Nextcloud debe poder escribir en su propio directorio de instalación, así que cambiaremos el propietario de este directorio al usuario y grupo con el que corre el servidor web (apache para Apache en CentOS 7):

~$ sudo chown -R apache: /var/www/html/nextcloud/

Preparación de SELinux

No basta con dar permisos de escritura a Nextcloud sobre sus propios archivos, ya que SELinux sólo permite que el servidor web haga operaciones de lectura. Por ello definiremos un contexto de lectura/escritura en el directorio de Nextcloud para el servicio web:

~$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/nextcloud(/.*)?"

Y aplicaremos este nuevo contexto con el comando restorecon:

~$ sudo restorecon -R /var/www/html/nextcloud/

Por otro lado, conectar desde el servicio web a algunos motores de datos (como PostgreSQL) sólo es posible si se activa el valor httpd_can_network_connect_db:

~$ sudo setsebool -P httpd_can_network_connect_db on

Preparación de PHP

Nextcloud exige la instalación de ciertas extensiones de PHP en CentOS 7, como pueden ser apcu, gd, imagick, intl, mbstring, opcache, posix, xml o zip. Por tanto debemos asegurarnos de que estén disponibles:

~$ sudo yum install -y php-apcu php-bcmath php-gd php-gmp php-imagick php-intl php-mbstring php-opcache php-posix php-xml php-zip

Por supuesto será necesario instalar la extensión que permite la conexión con el motor de bases de datos que nos interese:

~$ sudo yum install -y php-mysql php-pgsql

Para aplicar los cambios recargamos la configuración del servidor web o el servicio PHP-FPM, según corresponda:

~$ sudo systemctl reload httpd

Preparación de Apache

En el caso de usar Apache como servidor web, Nexcloud está preparado para añadir configuraciones adicionales a través de archivos .htaccess. Como por defecto el servicio web ignora estos archivos añadiremos una configuración especial para Nextcloud que permita tenerlos en cuenta. Para ello crearemos un archivo de configuración adicional:

~$ sudo nano /etc/httpd/conf.d/nextcloud.conf

En este archivo añadiremos un bloque Directory para la ruta donde hayamos instalado Nextcloud con una directiva AllowOverride que permita incluir los archivos .htaccess:

<Directory /var/www/html/nextcloud>
        AllowOverride all
        php_value memory_limit "512M"
</Directory>

Aprovechamos la misma configuración para añadir un ajuste de PHP.

Guardamos los cambios, cerramos el archivo y recargamos la configuración del servicio para que tenga efecto:

~$ sudo systemctl reload httpd

Preparación de la base de datos

Crearemos una nueva base de datos y el usuario que la manejará en el servicio de bases de datos que tengamos instalado. Teniendo en cuenta que Nextcloud admite varios motores como soporte, mostraremos los preparativos de los dos más usados.

MariaDB/MySQL

Iniciamos sesión con el cliente de consola mysql y nuestro usuario administrador:

~$ mysql -u root -p

Creamos la base de datos:

> create database nextcloud charset utf8mb4 collate utf8mb4_unicode_ci;

Creamos el usuario, si estamos usando MySQL 8 nos aseguramos de que se utilice el plugin de autenticación mysql_native_password:

> create user nextcloud@localhost identified with mysql_native_password by 'XXXXXXXX';

Si estamos usando MariaDB o alguna versión de MySQL 5 no es necesario indicar el plugin de autenticación:

> create user nextcloud@localhost identified by 'XXXXXXXX';

Otorgamos los permisos necesarios al usuario sobre la base de datos:

> grant all privileges on nextcloud.* to nextcloud@localhost;

Y cerramos el cliente mysql:

> exit

PostgreSQL

Creamos un rol con contraseña para Nextcloud:

~$ sudo -iu postgres createuser -P nextcloud

Y creamos la base de datos asociada al mismo:

~$ sudo -iu postgres createdb nextcloud -O nextcloud

El método de autenticación para los usuarios de PostgreSQL debe ser md5, es decir, en el archivo pg_hba.conf deben aparecer las directivas host relativas al acceso por red a la propia máquina (localhost) del siguiente modo:

...
host    all             all             127.0.0.1/32            md5
...
host    all             all             ::1/128                 md5
...

Instalación de Nextcloud en CentOS 7 vía web

Con todos los preparativos finalizados es el momento de instalar Nextcloud en CentOS 7 usando el instalador web, al que accedemos desde el navegador con la URL que hayamos definido para acceder al sitio.

En este ejemplo, en el que Nextcloud es parte de la página por defecto del servidor CentOS 7, y el sistema es accesible desde el dominio centos7.local.lan, la URL http://centos7.local.lan/nextcloud serviría para acceder:

como instalar nextcloud en centos 7

Crearemos el administrador de Nextcloud, indicando usuario y contraseña, seleccionaremos el sistema de bases de datos, en este ejemplo es MariaDB, y cumplimentaremos los datos de conexión. Por defecto aparece marcada la opción de instalar las aplicaciones recomendadas de Nextcloud que, si no te interesaran, podrías desmarcar.

Hecho esto seguimos el enlace «Completar la instalación» y lo normal sería que tras tras unos instantes accediéramos directamente al servicio, pero desde hace algunas versiones el proceso de instalación falla en este punto:

Lo que ocurre es que se realiza una redirección errónea en la que desaparece la dirección del servidor en la URL, quedando únicamente la ruta de Nextcloud, en este ejemplo /nextcloud/index.php/core/apps/recommended.

La solución pasa por arreglar manualmente la URL insertando al principio de la misma la dirección (IP, dominio, etc.) de nuestra máquina CentOS 7, quedando en este ejemplo como http://centos7.local.lan/nextcloud/index.php/core/apps/recommended.

Introducida la URL correcta, finalizará la instalación y se mostrará un pequeño pase de diapositivas sobre las características de Nextcloud:

instalar nextcloud en centos 7

Terminada la presentación, aparecerá nuestra página personal principal, con las aplicaciones por defecto, y todas las opciones para empezar a trabajar.

nextcloud en centos 7

Para empezar a trabajar con archivos y carpetas podemos visitar la opción «Archivos» del menú principal:

nextcloud para centos 7

Al haber iniciado sesión con un usuario administrador también es posible crear otros usuarios.

Post-instalación de Nextcloud en CentOS 7

En el caso de haber instalado la extensión APCu es necesario activar manualmente la caché de datos, editando el archivo de configuración de Nextcloud:

~$ sudo nano /var/www/html/nextcloud/config/config.php

Al final del archivo, justo antes del paréntesis de cierre, añadimos la siguiente variable:

...
        'memcache.local' => '\OC\Memcache\APCu',
);

Si queremos definir una región telefónica por defecto, podemos hacerlo añadiendo otra línea como la siguiente:

...
        'default_phone_region' => 'ES',
);

Si no conoces el código ISO 3166-1 para tu país, puedes consultarlo en esta tabla.

Guardados los cambios y cerrado el archivo, la nueva configuración queda activada.

Servicio cron

Nextcloud realiza una serie de tareas en segundo plano, normalmente aprovechando las conexiones vía web, pero lo ideal es configurar estas tareas para que se ejecuten periódicamente a través del servicio Cron de CentOS 7, para lo que crearemos una nueva tarea programada:

~$ sudo nano /etc/cron.d/nextcloud

La tarea programada se configura en una única línea:

*/15 * * * * apache /usr/bin/php /var/www/html/nextcloud/cron.php

En este ejemplo configuramos la programación cada 15 minutos, pero puedes elegir otro intervalo que se adecúe más a la carga de tu sistema.

Cómo conectar al servicio Nextcloud de CentOS 7

Ya tienes el servicio en marcha. Ahora puedes instalar distintos clientes tanto para sistemas de escritorio como móviles, desde la misma página web de Nexcloud desde la que hemos descargado el software del servicio anteriormente.

Por ejemplo, si descargamos e instalamos un cliente de escritorio para Windows, al iniciarlo por primera vez podremos elegir entre registrarnos en un servicio o iniciar sesión en uno en el que tengamos cuenta:

Se nos pedirá la URL con la que se accede al servicio, que será la misma URL con la que accedimos anteriormente a través del navegador a Nextcloud en la máquina CentOS 7:

Tras realizar la conexión, el proceso continúa abriendo automáticamente un enlace en el navegador, teniendo la opción de volver a abrirlo si hay algún problema o la de copiar el enlace y pegarlo como URL nosotros mismos:

Se abrirá el navegador:

Seguiremos el enlace «Iniciar sesión» y se abrirá una página de login donde tendremos introducir los datos de nuestro usuario:

Tas pulsar en «Iniciar sesión» y comprobarse la existencia de la cuenta, se nos solicitará confirmación de que queremos dar permisos al cliente para acceder a la cuenta:

Concedemos dicho permiso para el acceso siguiendo el enlace «Grant access«, tras lo que se nos informará del éxito en la conexión y que podemos cerrar el navegador:

Cerramos el navegador y veremos que el cliente muestra las opciones de conexión de nuestra cuenta con el servidor Nextcloud en CentOS 7 para que podamos realizar los ajustes necesarios:

Cosas como sincronizar todo o parte, limitar tamaños de archivo, ubicación de la carpeta de Nextcloud en el equipo o dispositivo, etc.

Cuando esté todo de acuerdo a nuestras preferencias podemos conectar y en unos instantes se descargarán los archivos desde la cuenta asociada de Nextcloud en el servidor CentOS 7.

Podemos cerrar la ventana del cliente, que normalmente queda funcionando en segundo plano. Si abrimos la carpeta que hayamos destinado a contener estos archivos, los encontraremos disponibles de forma local:

Todo funciona correctamente. Ya podemos empezar a añadir, eliminar y modificar archivos y carpetas, etc. Los cambios se reflejarán automáticamente en nuestra cuenta de Nextcloud y en el almacenamiento del servidor CentOS 7.

Conclusión

Ahora que sabes cómo instalar Nextcloud en CentOS 7 ya puedes montar tu propia nube de archivos y documentos doméstica o empresarial, tanto en red local como desde Internet. Es una buena forma de aprovechar las capacidades de tu servidor o VPS CentOS. Instalando clientes de escritorio y dispositivos móviles accederás fácilmente a todos tus archivos desde cualquier lugar sin coste adicional.

Si tienes preguntas, dudas, sugerencias, notificaciones, etc. puedes dejar un oportuno comentario.

¡Apoya este sitio!

¿Te ha servido esta breve guía de instalación de Nextcloud en CentOS 7 para montar tu propia nube personal? Si es así y te gustaría agradecérnoslo, la más mínima contribución ayuda bastante al mantenimiento de este sitio y a la elaboración de más tutoriales sobre CentOS 7 o Nextcloud.

Puedes contribuir dejando 1 $ de propina en PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

1 comentario en «Cómo instalar Nextcloud en CentOS 7»

Deja un comentario