Guía de tecnologías

Instalar ownCloud en Rocky Linux (LAMP)

9 min read Tutorial Actualizado 22 Oct 2025
Instalar ownCloud en Rocky Linux (LAMP)
Instalar ownCloud en Rocky Linux (LAMP)

Introducción

ownCloud es un conjunto de software de código abierto para crear servicios de alojamiento de archivos similares a Google Drive o Dropbox. Permite configurar un servidor de alojamiento de archivos autoalojado y ofrece una aplicación servidor (componente principal) y clientes para Linux, Windows, macOS, Android e iOS.

ownCloud está desarrollado principalmente en PHP, JavaScript y Go. Facilita la sincronización de calendarios, el almacenamiento de archivos y multimedia, y la gestión de tareas y agendas. Es extensible mediante aplicaciones adicionales.

Este tutorial explica cómo instalar y configurar ownCloud en Rocky Linux, incluyendo la pila LAMP, Redis, SELinux y Firewalld, con ejemplos prácticos y comprobaciones.

Contenido y variantes de intención

Este artículo cubre la instalación en Apache/httpd. Variantes relacionadas: instalar con Nginx, usar PostgreSQL en lugar de MariaDB/MySQL, configurar con PHP-FPM, migrar desde SQLite, y desplegar en contenedores.

Requisitos previos

  • Un servidor Rocky Linux 8.x (ejemplo: nombre ‘owncloud-server’, IP ‘192.168.5.100’).
  • Un usuario no root con privilegios sudo (o root si lo prefiere).
  • Un dominio o subdominio apuntando a la IP del servidor (ejemplo: howtoforge.local).

Important: Asegúrese de que el sistema tiene actualizaciones recientes y suficiente espacio en disco para almacenar archivos de usuarios.

Resumen de la metodología (mini-methodology)

  1. Preparar repositorios (EPEL, REMI) y paquetes base.
  2. Instalar Redis y PHP 7.4 con extensiones requeridas.
  3. Instalar y configurar Apache (httpd) y Firewalld.
  4. Instalar MariaDB y crear base de datos para ownCloud.
  5. Descargar ownCloud, verificar suma SHA256 y ajustar permisos.
  6. Crear virtual host con SSL (Let’s Encrypt asumido) y configurar SELinux.
  7. Completar instalación vía web y habilitar cron.
  8. Hardenear y probar (comprobaciones de seguridad, backups y monitoreo).

Instalación de dependencias básicas

Configure repositorios y paquetes necesarios: EPEL, Redis v6 y utilidades (openssl, ImageMagick, zip).

Instale EPEL:

sudo dnf install epel-release

Cuando se le pida confirmación, escriba y y pulse ENTER.

Salida de la instalación de EPEL

Habilite Redis v6 (el repositorio de Rocky puede ofrecer varias versiones; use la 6 para este ejemplo):

sudo dnf module reset redis  
sudo dnf module enable redis:6

Confirme con y.

Habilitar Redis v6

Instale las dependencias básicas:

sudo dnf install libsmbclient redis unzip libzip bzip2 openssl rsync ImageMagick

Confirme con y.

Instalación de dependencias básicas y Redis

Inicie y habilite el servicio Redis:

sudo systemctl enable redis  
sudo systemctl start redis

Verifique el estado:

sudo systemctl status redis

Verificar Redis en ejecución

Nota: Redis se usa como cache/almacenamiento en memoria para mejorar el rendimiento del sistema ownCloud.

Instalación de PHP 7.4 y extensiones

ownCloud v10.x requiere PHP 7.4 (al momento de escribir este tutorial) y no es totalmente compatible con PHP 8.

Añada el repositorio REMI para obtener PHP 7.4:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Confirme con y.

Agregar repositorio REMI

Habilite el módulo para PHP 7.4:

sudo dnf module reset php  
sudo dnf module enable php:remi-7.4

Habilitar repositorio PHP 7.4

Instale PHP 7.4 con las extensiones necesarias para ownCloud:

sudo dnf install --enablerepo=remi php php-intl php-mysql php-mbstring \  
  php-imagick php-igbinary php-gmp php-bcmath \  
  php-curl php-gd php-zip php-imap php-ldap \  
  php-bz2 php-ssh2 php-common php-json \  
  php-xml php-devel php-apcu php-redis \  
  php-smbclient php-pear php-phpseclib

Confirme con y.

Instalación de PHP 7.4 y extensiones

Verifique la versión de PHP:

php --version

Debe mostrar PHP 7.4.x.

Comprobar versión de PHP

Importante: Mantener PHP 7.4 solo para ownCloud si necesita compatibilidad. Planifique una migración cuando ownCloud soporte PHP 8 de forma estable.

Instalación del servidor httpd (Apache)

ownCloud puede ejecutarse en Apache, Nginx o IIS; aquí usamos Apache/httpd.

Instale httpd y mod_ssl:

sudo dnf install httpd httpd-devel httpd-tools mod_ssl

Instalación de httpd y mod_ssl

Inicie y habilite httpd:

sudo systemctl enable httpd  
sudo systemctl start httpd

Verifique el estado:

sudo systemctl status httpd

Comprobar httpd en ejecución

Configure firewalld para permitir tráfico HTTP y HTTPS:

sudo firewall-cmd --add-service=http --permanent  
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload  
sudo firewall-cmd --list-services

Añadir servicios HTTP/HTTPS en firewalld

Verificación rápida de PHP+Apache: cree un archivo info.php para phpinfo():

cat <  
EOF

Abra en el navegador: http://192.168.5.100/info.php (reemplazar por su IP o dominio).

Página phpinfo mostrando PHP 7.4

Eliminar este archivo tras la verificación por seguridad.

MariaDB: instalación y preparación de la base de datos

ownCloud soporta MariaDB/MySQL, PostgreSQL y SQLite. Para producción, se recomienda MariaDB/MySQL o PostgreSQL.

Instale MariaDB:

sudo dnf install mariadb-server

Inicie y habilite el servicio:

sudo systemctl enable mariadb  
sudo systemctl start mariadb

Verifique:

sudo systemctl status mariadb

Comprobar MariaDB

Asegure MariaDB:

sudo mysql_secure_installation

Responda según las indicaciones: cambiar contraseña root (y), deshabilitar login remoto de root (y), eliminar usuarios anónimos (y), eliminar bd test (y), recargar permisos (y). Si el instalador pregunta sobre unix_socket, para este tutorial elija n (no) para seguir con autenticación por contraseña.

Cree la base de datos y el usuario para ownCloud (reemplazar owncloudpass por una contraseña segura):

sudo mysql -u root -p
CREATE DATABASE owncloud;  
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'owncloudpass';  
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;  
FLUSH PRIVILEGES;  
quit

Crear BD y usuario de ownCloud

Verifique privilegios:

SHOW GRANTS FOR 'owncloud'@'localhost';

Comprobar privilegios de BD

Descargar y preparar el código fuente de ownCloud

Mueva al directorio base web y descargue el paquete completo y su suma SHA256:

cd /var/www
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2  
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256

Verifique la suma:

sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2

Debería obtener OK si el archivo está íntegro.

Extraiga y ajuste permisos:

sudo tar -xvjf owncloud-complete-latest.tar.bz2
sudo chown -R apache:apache /var/www/owncloud

Asegúrese de que los permisos son correctos para que httpd pueda leer y escribir en carpetas necesarias.

Configuración del Virtual Host de httpd con SSL

Cree el archivo de configuración del virtual host en /etc/httpd/conf.d/owncloud.conf y adapte dominio y rutas de certificados SSL (ejemplo howtoforge.local):

  
  ServerName howtoforge.local  
  Redirect permanent / https://howtoforge.local/  
  
  
  
  ServerName howtoforge.local  
  DocumentRoot /var/www  
  
  Protocols h2 http:/1.1  
  
    
    Redirect permanent / https://howtoforge.local/  
    
   
  ErrorLog /var/log/httpd/howtoforge.local-error.log  
  CustomLog /var/log/httpd/howtoforge.local-access.log combined  
  
  SSLEngine On  
  SSLCertificateFile /etc/letsencrypt/live/howtoforge.local/fullchain.pem  
  SSLCertificateKeyFile /etc/letsencrypt/live/howtoforge.local/privkey.pem  
   
  SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384  
  
  SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1  
  SSLCompression off  
  
  Header always set Strict-Transport-Security "max-age=63072000"  
  
  Alias /owncloud "/var/www/owncloud/"  
  
    
    Options +FollowSymlinks  
    AllowOverride All  
  
      
    Dav off  
      
  
    SetEnv HOME /var/www/owncloud  
    SetEnv HTTP_HOME /var/www/owncloud  
  
    
  

Guarde y pruebe la configuración:

sudo apachectl configtest
sudo systemctl restart httpd

Configurar VirtualHost y reiniciar httpd

Nota: Se asume el uso de certificados Let’s Encrypt; obténgalos con certbot y coloque las rutas adecuadas en SSLCertificateFile y SSLCertificateKeyFile.

Configuración de SELinux para ownCloud

Si SELinux está en modo enforcing (recomendado en Rocky Linux), etiquete correctamente las rutas que ownCloud necesita escribir y ajuste booleanos para que httpd pueda acceder a servicios de red.

Instale herramientas SELinux:

sudo dnf install policycoreutils-python-utils

Etiquete los directorios y archivos que ownCloud necesita escribir:

sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/data(/.*)?'  
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/config(/.*)?'  
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps(/.*)?'  
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps-external(/.*)?'  
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.htaccess'  
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.user.ini'  
  
sudo restorecon -Rv '/var/www/owncloud/'

Permita a httpd acceder a otros servicios de red necesarios:

sudo setsebool -P httpd_can_network_connect_db on  
sudo setsebool httpd_unified on  
sudo setsebool -P httpd_can_connect_ldap on  
sudo setsebool -P httpd_can_network_connect on  
sudo setsebool -P httpd_can_network_memcache on  
sudo setsebool -P httpd_can_sendmail on  
sudo setsebool -P httpd_use_cifs on  
sudo setsebool -P httpd_use_fusefs on  
sudo setsebool -P httpd_use_gpg on

Configurar SELinux para ownCloud

Proceso de instalación mediante web

Abra el navegador y visite: https://howtoforge.local/owncloud/ (ajuste por su dominio).

Complete el formulario de instalación: cree un usuario administrador, elija MySQL/MariaDB, y aporte los datos de la base creada (usuario owncloud, contraseña, nombre de bd).

Haga clic en “Finalizar configuración” o el botón equivalente del instalador para completar la instalación.

Página de instalación de ownCloud

Una vez instalado, acceda al login con el usuario admin creado.

Página de inicio de sesión de ownCloud

Desde el panel de usuario puede crear carpetas, subir archivos y gestionar aplicaciones instaladas.

Panel de control de ownCloud

Ejemplo de subida y creación de directorio:

Crear directorio y subir archivos

Configurar cron para tareas en segundo plano

ownCloud recomienda usar cron para trabajos en segundo plano. Cambie el modo a cron y configure una tarea programada cada 15 minutos.

Ejecute una vez para cambiar al modo cron:

sudo -u apache /var/www/owncloud/occ background:cron

Edite el crontab del usuario apache:

sudo crontab -u apache -e

Añada la línea:

*/15  *  *  *  * /usr/bin/php -f /var/www/owncloud/occ system:cron

Guarde y salga.

Configurar cron para ownCloud

Verifique desde Ajustes > General que “Todas las comprobaciones pasadas” (Security and setup warnings) muestre OK.

Ajustes de seguridad y comprobaciones

Comprobaciones y criterios de aceptación

Criterios para considerar la instalación correcta:

  • Acceso HTTPS estable y válido al dominio de ownCloud.
  • Inicio de sesión del administrador y acceso al panel de usuario.
  • Cron ejecutándose cada 15 minutos (ver logs o tareas programadas).
  • Redis y MariaDB activos y accesibles por ownCloud.
  • SELinux en modo enforcing con contextos correctos para /var/www/owncloud.
  • No hay advertencias críticas en Ajustes > General.

Lista de verificación por roles

Administrador del sistema:

  • Actualizar el sistema y paquetes antes de comenzar.
  • Configurar reserva/backup del directorio /var/www/owncloud y la base de datos.
  • Configurar certificados SSL y renovación automática.
  • Asegurar firewall y SELinux.

DevOps/Despliegue:

  • Preparar automatización (Ansible/Chef) para reproducir la instalación.
  • Monitorizar métricas (CPU, memoria, I/O) y establecer alertas.

Soporte/Usuarios:

  • Proveer guías de uso y límites de tamaño de archivo.
  • Configurar cuotas si aplica.

Seguridad y hardening (pasos recomendados)

  • Forzar HTTPS y HSTS (ya configurado en VirtualHost).
  • Deshabilitar PHP functions peligrosas en php.ini si no son necesarias.
  • Limitar tamaño de subida y tiempo de ejecución en PHP acorde al uso.
  • Mantener PHP y extensiones actualizadas; planificar migración a versiones soportadas.
  • Configurar backups regulares de la BD y de /var/www/owncloud/data.
  • Usar Redis para caching y parte de la performance; asegurar que Redis esté protegido por firewall o socket local.
  • Revisar y aplicar permisos mínimos a carpetas: owner apache y permisos 750/770 según convenga.

Copias de seguridad y mantenimiento

Recomendación de copia de seguridad básica:

  • Backup diario de la base de datos (mysqldump o herramienta equivalente).
  • Backup del directorio data de ownCloud (rsync a almacenamiento externo).
  • Pruebas de restauración periódicas.

Ejemplo de dump simple:

mysqldump -u root -p owncloud > /backup/owncloud-$(date +%F).sql

Migración y compatibilidad

  • Si migras desde SQLite a MariaDB, usa las herramientas de ownCloud y planifica ventana de mantenimiento.
  • Para migrar de Apache a Nginx, configura root, reglas rewrite y encabezados necesarios (X-Forwarded-* si hay proxy).
  • Asegúrese de que las extensiones PHP requeridas por ownCloud estén instaladas en el nuevo entorno.

Alternativas y cuándo este flujo falla

Alternativas:

  • Nginx + PHP-FPM: mejor rendimiento en entornos con muchas conexiones simultáneas.
  • PostgreSQL: alternativa sólida para la base de datos si tiene experiencia con Postgres.
  • Contenedores (Docker / Podman): facilitan despliegues reproducibles y aislamiento.

Cuándo puede fallar este procedimiento:

  • Si su versión de ownCloud requiere PHP >=8 (verifique compatibilidad antes de instalar).
  • Si SELinux bloquea accesos y no se aplicaron correctamente los fcontexts o booleans.
  • Si la suma SHA256 del paquete no coincide (no extraiga paquetes no verificados).
  • Si firewall o proveedor cloud bloquea puertos 80/443.

Solución de problemas comunes

Problema: Página en blanco después de la instalación.

  • Compruebe los logs de Apache (/var/log/httpd/) y los logs de ownCloud (data/owncloud.log).
  • Asegúrese de que PHP tenga las extensiones requeridas y que php-info muestre la versión adecuada.

Problema: “Can’t connect to database”

  • Verifique que MariaDB esté en ejecución y que las credenciales del config.php coincidan.
  • Asegúrese de que DB host sea localhost o socket correcto.

Problema: Permisos denegados en uploads o apps.

  • Verifique propiedad y permisos de /var/www/owncloud (apache:apache) y contexto SELinux.

Hoja de referencia rápida (cheat sheet)

  • Reiniciar servicios: sudo systemctl restart httpd mariadb redis
  • Verificar SELinux: sudo getenforce
  • Aplicar contextos SELinux: sudo restorecon -Rv /var/www/owncloud
  • Probar cron manualmente: sudo -u apache /var/www/owncloud/occ system:cron

Diagrama de decisión (flujo) para elegir arquitectura

flowchart TD
  A[¿Necesita alto rendimiento y muchas conexiones?] -->|Sí| B[Nginx + PHP-FPM]
  A -->|No| C[Apache/httpd]
  B --> D{¿Prefiere base de datos?}
  C --> D
  D -->|Escalabilidad| E[PostgreSQL]
  D -->|Compatibilidad con MySQL| F[MariaDB/MySQL]
  E --> G[Configurar Redis y caching]
  F --> G

Glosario (1 línea por término)

  • LAMP: Conjunto Linux + Apache + MariaDB/MySQL + PHP.
  • Redis: Almacén en memoria para caching y colas.
  • SELinux: Mecanismo de control de acceso obligatorio en Linux.
  • VirtualHost: Configuración de Apache para alojar varios dominios.

Pasos siguientes recomendados

  • Habilitar monitorización (Prometheus, Grafana, Zabbix) para recursos y tiempos de respuesta.
  • Planificar actualizaciones y pruebas en entorno staging antes de producción.
  • Configurar backup automático y testeos de restauración mensuales.

Conclusión

Has instalado ownCloud en Rocky Linux con LAMP, Redis y SELinux activado. Ahora puedes subir archivos, gestionar usuarios y empezar a integrar ownCloud con otros servicios. Asegúrate de seguir buenas prácticas de seguridad, realizar backups y monitorizar el servicio.

Resumen:

  • ownCloud instalado y accesible vía HTTPS.
  • Base de datos MariaDB y Redis configurados.
  • SELinux etiquetado y cron configurado.

Notas importantes:

  • Planifica la migración a PHP 8 solo cuando ownCloud lo soporte de manera estable.
  • Mantenga copias de seguridad y pruebe restauraciones.

Fin del tutorial.

Autor
Edición

Materiales similares

Podman en Debian 11: instalación y uso
DevOps

Podman en Debian 11: instalación y uso

Apt-pinning en Debian: guía práctica
Sistemas

Apt-pinning en Debian: guía práctica

OptiScaler: inyectar FSR 4 en casi cualquier juego
Guía técnica

OptiScaler: inyectar FSR 4 en casi cualquier juego

Dansguardian + Squid NTLM en Debian Etch
Redes

Dansguardian + Squid NTLM en Debian Etch

Arreglar error de instalación Android en SD
Android

Arreglar error de instalación Android en SD

Conectar carpetas de red con KNetAttach
Redes

Conectar carpetas de red con KNetAttach