Cómo instalar ownCloud en CentOS 7

En esta entrada veremos cómo instalar ownCloud en CentOS 7 paso a paso, una magnífica alternativa como nube doméstica e incluso empresarial, y un servicio que no debería faltar en tu servidor o VPS CentOS.

Antes de instalar ownCloud en CentOS 7

Para poder completar esta guía de instalación de ownCloud en CentOS 7 necesitas satisfacer una serie de requisitos mínimos:

  • Un sistema CentOS 7 actualizado.
  • SELinux desactivado.
  • Una pila tipo LAMP (servidor web con PHP 7.3 y bases de datos).
  • Servicio de correo (como Postfix o Sendmail).
  • Los paquetes policycoreutils-python y yum-utils.
  • Acceso con un usuario con privilegios de sudo o el mismo root.
  • Conexión a Internet.

Si aún no tienes el entorno necesario, puedes consultar la guía de instalación LAMP en CentOS 7 recordando que es importante seleccionar una versión de PHP entre la 7.0 y la 7.3.

Cómo instalar ownCloud en CentOS 7

Para instalar ownCloud en CentOS 7 necesitamos instalar el repositorio oficial de ownCloud, lo que haremos con el comando yum-config-manager en consola:

~$ sudo yum-config-manager --add-repo http://download.owncloud.org/download/repositories/production/CentOS_7/ce:stable.repo

Acto seguido actualizamos la información de los repositorios para incluir los nuevos paquetes disponibles:

~$ sudo yum update -y

El paquete que buscamos es owncloud-files, así que lo descargaremos e instalaremos con yum:

~$ sudo yum install -y owncloud-files

En unos instantes se habrá descargado y desempaquetado el paquete en la ubicación /var/www/html/, donde existirá una nueva carpeta llamada owncloud/ con los archivos de la aplicación web.

Antes de iniciar el instalador web debemos realizar una serie de preparativos.

Preparación de SELinux

Puesto que SELinux suele estar activado en CentOS 7, aunque los permisos convencionales de los archivos de ownCloud están ajustados correctamente, será necesario aplicar un contexto de lectura/escritura para que la aplicación pueda crear y modificar archivos a través del servidor web:

~$ sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/owncloud/

Haremos permanentes estos cambios con el comando semanage:

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

Preparativos de PHP

En cuanto a PHP, ownCloud requiere la presencia de ciertas extensiones en CentOS 7, por lo que nos aseguraremos de que estén instaladas:

~$ sudo yum install -y php-gd php-intl php-mbstring php-process php-xml php-zip

A poco que tenga algo de carga este servicio, es interesante activar alguna extensión de caché, como podría ser APCu:

~$ sudo yum install -y php-pecl-apcu

Tras instalar estas extensiones y sus dependencias será necesario recargar la configuración del servidor web. En el caso de Apache:

~$ sudo systemctl reload httpd

Preparación de la base de datos

Como muchas otras aplicaciones web complejas, ownCloud necesita como parte de su estructura una base de datos MariaDB/MySQL, así que crearemos esa base de datos en el servicio que tengamos instalado en CentOS 7, con el correspondiente usuario encargado de trabajar con ella.

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

~$ mysql -u root -p

Creamos la base de datos:

> create database owncloud character set utf8mb4 collate utf8mb4_unicode_ci;

Y creamos el usuario encargado de manejar esta nueva base. Para MariaDB o MySQL 5.x lo creamos directamente:

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

Pero para MySQL 8 conviene especificar el plugin de autenticación:

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

En cualquier caso, concedemos los permisos sobre la base al usuario:

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

Ya podemos cerrar el cliente mysql:

> exit

Mantén a mano estos datos, porque los necesitaremos posteriormente durante la instalación web.

Preparación del servidor web

La aplicación ownCloud en CentOS 7 puede hacer uso del módulo Rewrite de Apache, que suele estar activado por defecto, y de las configuraciones al vuelo mediante archivos .htaccess, ajuste que sí suele estar desactivado en la configuración por defecto. Para activar el uso de los archivos .htaccess crearemos una configuración especial para ownCloud:

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

El contenido será una directiva AllowOverride aplicada al directorio de instalación de ownCloud en CentOS 7:

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

Guardados los cambios y cerrado el archivo, habrá que recargar la configuración del servicio web para aplicar esta nueva configuración:

~$ sudo systemctl reload httpd

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

Con todos los pre-requisitos satisfechos, es hora de iniciar el instalador web. La instalación por defecto ha instalado ownCloud en la carpeta de la página web por defecto de CentOS 7, es decir, en /var/www/html/owncloud/. Por tanto, construiremos la URL añadiendo el sufijo /owncloud/ a la dirección IP o dominio de la máquina CentOS 7.

En este ejemplo, siendo centos7.local el dominio de la máquina CentOS 7, la URL http://centos7.local/owncloud/ sería válida:

como instalar owncloud en centos 7

En primer lugar estableceremos un nombre y contraseña para el administrador de nuestro ownCloud. Hecho esto, abrimos el desplegable «Almacenamiento y base de datos«:

instalar owncloud en centos 7

Por defecto viene seleccionado SQLite como sistema de bases de datos, pero pulsaremos en MySQL/MariaDB y se nos mostrarán los campos con los datos que debemos facilitar: usuario, contraseña y base de datos.

Pulsamos en «Completar la instalación» y tras unos instantes en que el instalador prepara todos los datos inciales, aparecerá la pantalla de login en ownCloud:

instalacion de owncloud en centos 7

Al iniciar sesión por primera vez, un aviso nos hará saber que existen clientes para prácticamente todos los sistemas operativos y dispositivos:

owncloud en centos 7

Al cerrar este aviso, nos encontraremos ante la típica interfaz web en la que podremos organizar los archivos y carpetas, borrar, descargar, subir, etc.

owncloud para centos 7

A la hora de crear usuarios desde el panel de administración se envía un mensaje de correo a la dirección especificada, incluyendo un enlace a la página que permitirá al usuario crear la contraseña de la cuenta.

Una vez creada esa contraseña el usuario puede acceder a la interfaz web de ownCloud o puede instalar un cliente en su dispositivo, configurar la conexión e iniciar la sincronización de archivos.

Cómo configurar ownCloud en CentOS 7

Si decidiste instalar la extensión APCu para acelerar el funcionamiento de la aplicación, tendremos que realizar algunos ajustes. Para configurar ownCloud en CentOS 7 editaremos su archivo config.php:

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

Y añadiremos estas 3 líneas justo antes del paréntesis de cierre al final del archivo:

...
        'filelocking.enabled' => true,
        'memcache.local' => '\OC\Memcache\APCu',
        'memcache.locking' => '\OC\Memcache\APCu',
);

Guardamos los cambios y cerramos el archivo. No será necesario hacer nada más, ownCloud usará a partir de este momento la caché y el bloqueo de archivos basado en APCu.

Conclusión

Ya has visto que instalar ownCloud en CentOS 7 es relativamente sencillo, al menos si desactivas SELinux. Una buena forma de tener tu propio servicio de nube.

En caso de dudas, preguntas, sugerencias, etc. puedes dejar un comentario.

¡Apoya este sitio!

Si te ha servido esta guía de instalación de ownCloud en CentOS 7 y quieres agradecérnoslo, cualquier mínima contribución para el mantenimiento de este sitio es bienvenida. ¡Gracias!

 

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (4 votos, promedio: 5,00 de 5)
Cargando…

7 comentarios en “Cómo instalar ownCloud en CentOS 7”

  1. Excelente tutorial, amigo. Tengo un problema y me sale lo siguiente:

    This version of ownCloud is not compatible with PHP 7.4
    You are currently running PHP 7.4.0.

    ¿Cómo puedo solucionarlo?

    Responder
    • Tal y como se indica al comienzo del artículo, la versión actual de ownCloud sólo es compatible hasta PHP 7.3. Tendrías que sustituir, por tanto, la versión 7.4 por la 7.3.

      Responder
  2. Gracias por la info, muy bien explicada, el problema que tengo es que me aparece 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 and include the technical details below in your report.

    More details can be found in the server log.

    Technical details

    Remote Address: 192.168.100.238
    Request ID: XgouJpL5zCfjByOQyi0OwgAAAAE
    «

    El LOG muestra lo siguiente:

    {«reqId»:»Xgok-tOrd2H9Qe9Iv7NwAQAAAAM»,»level»:3,»time»:»2019-12-30T16:25:35+00:00″,»remoteAddr»:»192.168.100.238″,»user»:»–«,»app»:»PHP»,»method»:»GET»,»url»:»\/owncloud\/index.php»,»message»:»touch(): Unable to create file \/var\/www\/html\/owncloud\/config\/config.php because Permission denied at \/var\/www\/html\/owncloud\/lib\/private\/Config.php#280″}

    Si alguien pueda orientarme en este error se los agradecería mucho!!

    Responder
    • Parece ser un problema de permisos a la hora de querer escribir el archivo /var/www/html/owncloud/config/config.php. ¿Has desactivado SELinux?

      ¿Qué permisos tiene la carpeta config/ y el archivo config.php si existe? Si no hay problemas con SELinux, el usuario que corre el servidor web debería tener permisos de escritura.

      Responder
  3. Hola Instalador, gracias por la respuesta.

    Estos son los permisos de la carpeta config y owncloud.

    drwxrwxrwx. 2 apache apache 119 dic 31 14:59 config

    El selinux está en esta situación 🙁

    sestatus
    SELinux status: enabled
    SELinuxfs mount: /sys/fs/selinux
    SELinux root directory: /etc/selinux
    Loaded policy name: targeted
    Current mode: permissive
    Mode from config file: permissive
    Policy MLS status: enabled
    Policy deny_unknown status: allowed
    Max kernel policy version: 31

    Responder
  4. Qué tal, buenos días. Tengo un problema, el archivo index.php esta incompleto, por lo tanto al abrirlo en el navegador me aparece puro codigo.

    Espero me puedan ayudar.

    saludos

    Responder

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies