Cómo instalar Nextcloud en CentOS 8

En el presente artículo veremos cómo instalar Nextcloud en CentOS 8 / CentOS Stream 8 paso a paso, de forma que podrás montar tu propia nube de archivos y aplicaciones para red local o a través de Internet sobre tu servidor o VPS CentOS.

Antes de instalar Nextcloud en CentOS 8

Si quieres completar paso a paso la siguiente guía de instalación de Nextcloud en CentOS 8 / CentOS Stream 8, debes partir de los siguientes requerimientos mínimos:

  • Una instalación actualizada de CentOS 8 / CentOS Stream 8.
  • Un entorno o pila tipo LAMP (servicio web con PHP y bases de datos).
  • Paquetes adicionales: bzip2, policycoreutils-python-utils, tar y wget.
  • Acceso a línea de comandos con root o un usuario con permisos de sudo.
  • Conexión a Internet.

Si aún no dispones del entorno necesario, puede ser recomendable consultar previamente nuestra guía de instalación de la pila LAMP en CentOS 8. Por otro lado, Nextcloud puede ser integrado de muchas formas en el servicio web de CentOS 8, ya sea como el sitio web principal del servidor, como un servidor virtual independiente o, como haremos en este tutorial por simplicidad, como parte del sitio principal. También es muy importante trabajar sobre HTTPS, aunque para que cualquiera pueda probar este tutorial, trabajaremos con Nextcloud sobre HTTP.

Cómo descargar Nextcloud para CentOS 8

Vamos a descargar Nextcloud para CentOS 8 desde el sitio oficial de esta aplicación, ya que no existen paquetes en los reposiorios del sistema.

como descargar nextcloud para centos 8 / centos stream 8

Siguiendo cualquiera de los enlaces «Get Nextcloud» encontraremos las descargas para servidor, donde deberíamos desplegar las opciones de descarga con el botón «Details and downloads options«:

descargar nextcloud para centos 8

Veremos que el paquete de Nextcloud está disponible en los formatos .tar.bz2 y .zip. En este tutorial escogeremos la primera opción, así que copiaremos el enlace para realizar la descarga desde consola mediante el comando wget:

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

Cómo instalar Nextcloud en CentOS 8

Para instalar Nextcloud en CentOS 8 debemos preparar el sistema realizando una serie de tareas previas a la ejecución del instalador web. Desarrollamos a continuación estos pasos.

Archivos de Nextcloud

Descomprimimos el paquete que descargamos anteriormente directamente en la ubicación que hayamos decidido para la integración de Nextcloud en el servicio web (en este caso, como parte del sitio web principal, alojado en /var/www/html/):

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

Nextcloud necesita poder crear y modificar archivos en su propio directorio de instalación, así que cambiaremos el propietario de este directorio y su contenido, pasando a ser el usuario con el que corre el servicio web en CentOS 8 (apache para Apache):

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

SELinux

No basta con ajustar los permisos convencionales de los archivos de Nextcloud, ya que si SELinux está activado, lo que ocurre por defecto en CentOS 8, habrá que crear un contexto de lectura/escritura para el servicio web a estos archivos:

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

Aplicaremos este nuevo contexto con el comando restorecon:

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

Por otro lado, para permitir que la aplicación conecte a Internet para descargar módulos y componentes tendremos que permitirlo explícitamente:

~$ sudo setsebool -P httpd_can_network_connect on

Base de datos

Como Nextcloud se apoya en el servicio de bases de datos que esté funcionando en CentOS 8, tendremos que preparar lo necesario. Vamos a ver cómo hacerlo para los motores de bases de datos más utilizados con Nextcloud en CentOS 8.

MySQL/MariaDB

Conectamos al servicio con el cliente de consola mysql y un usuario administrador:

~$ mysql -u root -p

Creamos la base de datos para Nextcloud:

> create database nextcloud charset utf8mb4 collate utf8mb4_unicode_ci;

En MariaDB ó MySQL 5 creamos el usuario como de costumbre:

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

Pero en MySQL 8 es mejor además especificar el plugin de autenticación:

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

Concedemos permisos al usuario sobre la base:

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

Y cerramos la conexión:

> exit

PostgreSQL

Creamos el rol con contraseña para Nextcloud:

~$ sudo -iu postgres createuser -P nextcloud

Y creamos la base asociada:

~$ sudo -iu postgres createdb nextcloud -O nextcloud

Servicio web (Apache)

Es importante realizar una configuración personalizada para Nextcloud, ya que esta aplicación usa archivos .htaccess que, por defecto, son ignorados por el servicio web. Crearemos, por tanto, un nuevo archivo de configuración:

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

Como contenido añadiremos la directiva AllowOverride que permite el uso de archivos .htaccess:

<Directory /var/www/html/nextcloud>
        AllowOverride all
</Directory>

<IfModule proxy_fcgi_module>
        Timeout 180
        ProxyTimeout 180
</IfModule>

Pero también ajustaremos unos tiempos de espera entre el servicio web y el servicio PHP-FPM, ya que puede haber errores durante la instalación si la máquina sobre la que trabajamos no es muy potente. Podremos acortar o alargar estos valores según necesitemos.

Guardado y cerrado el archivo, recargamos la configuración del servicio web:

~$ sudo systemctl reload httpd

PHP

Nextcloud necesita la presencia en CentOS 8 de ciertas extensiones de PHP, por lo que debemos asegurarnos de que estén instaladas:

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

Es importante tener instalada también la extensión encargada de conectar con el motor de bases de datos sobre el que va a trabajar Nextcloud (elimina las que no te interesen):

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

Por otro lado, editamos el archivo php.ini para realizar un ajuste:

~$ sudo nano /etc/php.ini

Buscamos la directiva memory_limit:

...
memory_limit = 128M
...

Y cambiamos el valor a 512 megabytes:

...
memory_limit = 512M
...

Guardamos los cambios y recargamos la configuración del servicio PHP:

~$ sudo systemctl reload php-fpm

Instalador web

Terminados los pasos anteriores ya tenemos el sistema listo para instalar Nextcloud en CentOS 8 a través del instalador web. Accederemos desde el navegador usando como URL la que corresponda según la integración en el servicio web que hayamos elegido.

En este tutorial, por ejemplo, la máquina CentOS 8 es accesible en el subdominio centos8.local.lan, por lo que bastará con añadir la ruta /nextcloud y formar la URL http://centos8.local.lan/nextcloud para acceder a la aplicación web:

como instalar nextcloud en centos 8 / centos stream 8

En la primera página del instalador introduciremos todos los datos necesarios para configurar la instalación, que serán:

  • El nombre del usuario administrador y la que será su contraseña.
  • Desplegamos «Almacenamiento y base de datos» y seleccionamos el motor de bases de datos que vayamos a usar e introducimos los datos de conexión tal como los creamos anteriormente.
  • Podemos dejar marcada o no la opción de descargar las aplicaciones recomendadas según nos interese.

Continuaremos la instalación siguiendo el enlace «Completar la instalación«.

Hay muchas posibilidades de que la instalación se interrumpa debido a un error que arrastra Nextcloud desde hace ya algunas versiones:

Observa que se ha producido una redirección errónea, ya que ha desaparecido de la URL la parte de la dirección del servidor CentOS 8, dejando sólo la ruta de instalación, en este ejemplo /nextcloud/index.php/core/apps/recommended.

Esto, aunque es muy molesto, se puede solucionar fácilmente añadiendo al principio de la URL la dirección de la máquina CentOS 8, quedando en este ejemplo http://centos8.local.lan/nextcloud/index.php/core/apps/recommended.

En unos instantes terminarán las tareas de instalación, se iniciará sesión de forma automática y se mostrará un breve pase de diapositivas que nos destacará algunas de las características y novedades de Nextcloud:

instalar nextcloud en centos 8

Terminado el pase, se mostrará la página principal del usuario, donde tenemos en primer plano algunas de las nuevas aplicaciones incluidas en Nextcloud:

nextcloud para centos 8

Pero si queremos empezar a organizar archivos y carpetas, comenzar a cargar archivos, crear nuevos usuarios, etc. nos dirigiremos a las distintas opciones del menú principal, como el apartado «Archivos» :

nextcloud en centos 8

Ya puedes trabajar con tu nueva nube de archivos y empezar a instalar clientes de Nextcloud para los distintos sistemas y dispositivos que soporta.

Cómo configurar Nextcloud en CentOS 8

Tras la instalación podemos configurar algunos ajustes de Nextcloud en CentOS 8,

URLs sin index.php

Si quieres que no se muestre el nombre del script index.php en cada URL del sitio, editaremos el archivo config.php de Nextcloud:

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

y añadiremos dos líneas al final del mismo, justo antes del paréntesis de cierre:

...
  'overwrite.cli.url' => 'http://centos8.local.lan/nextcloud',
  'htaccess.RewriteBase' => '/nextcloud',
);

Tras guardar el archivo aplicaremos el cambio lanzando el siguiente comando:

~$ sudo -u apache php /var/www/html/nextcloud/occ maintenance:update:htaccess

Otros ajustes

Por ejemplo, para activar la caché de datos, volvemos a editar el archivo de configuración de Nextcloud:

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

Al final del archivo añadimos la siguiente línea:

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

Otro ajuste interesante es el de configuración de la región telefónica por defecto, para permitir guardar números de teléfono sin necesidad de incluir dicha región. En el mismo archivo de configuración, al final del archivo, añadirmos la variable default_phone_region:

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

Si no conoces el código ISO 3166-1 perteneciente a la región que te interese, puedes consultarlo en Wikipedia.

Para que no se creen archivos de muestra con la creación de nuevos usuarios, ya que serán borrados por estos o tal vez no y se desperdiciará espacio, podemos añadir esta otra variable:

...
  'skeletondirectory' => '',
);

Podemos forzar a que la papelera de los usuarios se vacíe automáticamente especificando una antigüedad máxima de los archivos, por ejemplo, 15 días:

...
  'trashbin_retention_obligation' => 'auto, 15',
);

Todos estos cambios se aplican tras guardar el archivo.

Mantenimiento en segundo plano con Cron

Es posible mejorar el rendimiento de Nextcloud dejando que sea el programador de tareas de CentOS 8, el servicio Cron, el que realice las tareas de mantenimiento. Para ello creamos un nuevo archivo de tarea:

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

Con la siguiente línea como contenido:

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

Tras guardar el archivo, la tarea se lanzará periódicamente transcurrido el plazo establecido, en este ejemplo cada 5 minutos.

Conclusión

Ahora que sabes cómo instalar Nextcloud en CentOS 8 / CentOS Stream 8 ya puedes montar tu propia nube de archivos y aplicaciones para red local o a través de Intenet sobre tu servidor o VPS CentOS.

Si tienes dudas o preguntas, sugerencias de mejoras o notificaciones de errores, lo mejor es dejar un comentario.

¡Apoya comoinstalar.me!

¿Ya tienes montada tu nube de archivos gracias a esta guía de instalación de Nextcloud en CentOS 8? Si es así y te apetece agradecérnoslo, puedes contribuir con una mínima aportación que ayudará mucho al mantenimiento de este sitio y la creación de nuevos tutoriales de CentOS 8 o Nextcloud, y puedes hacerlo dejando 1 $ de propina desde 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 8»

Deja un comentario