Instalar ownCloud no Rocky Linux: guia completo
Intenção principal e variações de busca
- Instalar ownCloud no Rocky Linux
- Configurar ownCloud com LAMP
- Deploy ownCloud PHP 7.4 Rocky Linux
- ownCloud SELinux configuração
- ownCloud SSL Let’s Encrypt
O que é ownCloud (em uma linha)
ownCloud é uma solução open-source de hospedagem de arquivos que permite montar um serviço semelhante ao Google Drive/Dropbox no seu próprio servidor.
Por que seguir este guia
Este tutorial combina passos práticos e recomendações de produção: traz a pilha completa (LAMP), caching com Redis, proteção SELinux, regras de firewall e cron. Também apresenta alternativas, verificação pós-instalação e resolução de problemas comuns.
Sumário deste artigo
- Pré-requisitos
- Instalar dependências básicas (EPEL, Redis v6)
- Instalar PHP 7.4 via REMI e extensões necessárias
- Instalar Apache/httpd e configurar Firewalld
- Instalar e proteger MariaDB; criar banco owncloud
- Baixar e verificar o código-fonte do ownCloud
- Configurar virtual host Apache e SSL
- Ajustes SELinux necessários
- Instalação via navegador e configuração inicial
- Agendar cron e checagens finais
- Segurança adicional, alternativas e troubleshooting
- Checklist e critérios de aceitação
Pré-requisitos
Antes de começar, confirme isto:
- Rocky Linux 8.x com acesso SSH e privilégios sudo (ou root). Este guia usa o servidor com hostname owncloud-server e IP de exemplo 192.168.5.100. Ajuste para seu ambiente.
- Usuário não-root com sudo ou root direto.
- Um domínio ou subdomínio apontando para o IP do servidor (ex.: howtoforge.local). Para produção, use um domínio público válido.
- Conectividade de rede para baixar pacotes e certificados (Let’s Encrypt).
Importante: os exemplos de comando usam valores de demonstração (senhas e domínios). Troque por valores fortes e personalizados no seu ambiente.
Mapa rápido de decisões (escolha de componentes)
flowchart TD
A[Começo] --> B{Servidor com recursos limitados?}
B -- Sim --> C[Use PHP-FPM + Nginx para menor overhead]
B -- Não --> D[Apache/httpd é aceitável e simples]
C --> E{Banco de dados}
D --> E
E -- Alta escala --> F[PostgreSQL ou MariaDB com tuning]
E -- Baixa escala --> G[MariaDB padrão]
F --> H[Configurar replicação/backup]
G --> H
H --> I[Instalação ownCloud]Instalar dependências básicas
- Habilitar repositório EPEL:
sudo dnf install epel-releaseQuando solicitado, digite y e ENTER.

- Habilitar módulo Redis v6 (recomendado para ownCloud):
sudo dnf module reset redis
sudo dnf module enable redis:6Quando solicitado, digite y e ENTER.

- Instalar pacotes básicos necessários:
sudo dnf install libsmbclient redis unzip libzip bzip2 openssl rsync ImageMagickDi gite y quando solicitado.

- Habilitar e iniciar o serviço Redis:
sudo systemctl enable redis
sudo systemctl start redis
sudo systemctl status redisVocê deve ver o serviço em execução e habilitado para iniciar no boot.

Nota: ownCloud se beneficia de um cache de chave-valor (Redis) para sessão e locking; usar Redis evita problemas de cache e bloqueio em ambiente concorrente.
Instalar PHP 7.4 e extensões (via REMI)
Por compatibilidade com a versão do ownCloud tratada neste guia, instale PHP 7.4 (algumas versões do ownCloud ainda não estão compatíveis com PHP 8). Usaremos o repositório REMI.
Adicionar REMI e utilitários:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpmEnable o módulo remi-7.4:
sudo dnf module reset php
sudo dnf module enable php:remi-7.4
Instalar PHP 7.4 com todas as extensões recomendadas:
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-phpseclibConfirme com y quando solicitado.

Verifique a versão do PHP:
php --versionVocê deverá ver PHP 7.4.

Dica: revisite php.ini para ajustar memory_limit, max_execution_time e upload_max_filesize conforme uso.
Instalar Apache/httpd
ownCloud pode rodar em Apache ou Nginx. Neste guia usamos Apache/httpd.
Instale o httpd e mod_ssl:
sudo dnf install httpd httpd-devel httpd-tools mod_sslInicie e habilite o serviço:
sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd
Configurar Firewalld (abrir HTTP/HTTPS):
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-servicesVerifique acesso externo ao servidor na porta 80/443.

Criar arquivo info.php para validar PHP+Apache:
cat <
EOF Acesse http://SEU_IP/info.php para conferir as configurações do PHP.

Instalar e configurar MariaDB
ownCloud funciona com MariaDB/MySQL e PostgreSQL. Para produção, recomendamos MariaDB/MySQL ou PostgreSQL (mais robusto que SQLite).
Instalar MariaDB:
sudo dnf install mariadb-server
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo systemctl status mariadb
Executar mysql_secure_installation para proteger o servidor:
sudo mysql_secure_installationResponda às perguntas conforme indicado (sugestões):
- Switch auth method for root? n
- Change root password? y (defina senha forte)
- Disallow root remote login? y
- Remove anonymous users? y
- Remove test database? y
- Reload privilege tables? y
Depois, criar banco de dados e usuário para ownCloud:
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;
SHOW GRANTS FOR 'owncloud'@'localhost';
quitAltere ‘owncloudpass’ para uma senha segura. Verifique privilégios.

Baixar e verificar o código-fonte do ownCloud
Mover para /var/www e baixar o tarball oficial:
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.sha256Verificar a integridade com SHA256:
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2Se o arquivo estiver válido, proceda à extração:
sudo tar -xvjf owncloud-complete-latest.tar.bz2
sudo chown -R apache:apache /var/www/owncloudA extração criará /var/www/owncloud como diretório de instalação.
Configurar Virtual Host do Apache e SSL
Crie /etc/httpd/conf.d/owncloud.conf e adicione a configuração (ajuste ServerName, paths de certificados):
sudo nano /etc/httpd/conf.d/owncloud.confCole a configuração (ajuste howtoforge.local para seu domínio):
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
Verifique sintaxe e reinicie o httpd:
sudo apachectl configtest
sudo systemctl restart httpd
Para gerar certificados Let’s Encrypt, use Certbot (instalar via dnf/epel) e emitir: certbot –apache -d seu-dominio.
Ajustes SELinux para ownCloud
Se SELinux estiver em modo enforcing, é necessário etiquetar os diretórios e permitir conexões de rede do httpd.
Instale ferramentas de gestão SELinux:
sudo dnf install policycoreutils-python-utilsEtiquetas recomendadas:
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/'Permissões booleanas para httpd:
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 onEsses ajustes permitem que o Apache acesse o banco, memcached/redis, e montagens CIFS/FUSE quando necessário.

Processo de instalação via navegador (UI do ownCloud)
Abra no navegador: https://seu-dominio/owncloud/
Na página de instalação:
- Crie o usuário admin e senha.
- Em “Armazenamento e banco de dados”, selecione MySQL/MariaDB e informe host (localhost), nome do banco (owncloud), usuário (owncloud) e a senha definida.
- Clique em Finish setup.

Efetue login com o admin criado.

No painel do usuário, você pode criar pastas e enviar arquivos.

Exemplo de criação de pasta e upload:

Configurar cron para tarefas em background
Recomendado: usar cron para jobs periódicos do ownCloud.
Testar o backend de tarefas:
sudo -u apache /var/www/owncloud/occ background:cronAdicionar crontab para o usuário apache:
sudo crontab -u apache -eAdicionar a linha (executa a cada 15 minutos):
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cronSalve e saia.

No painel do ownCloud: Settings → General → Security and setup warnings deve indicar “All checks passed”.

Boas práticas e hardening (segurança)
- SSL: use HTTPS com certificados válidos (Let’s Encrypt ou CA corporativa). HSTS habilitado é recomendado.
- Permissões de arquivos: o diretório data deve ser gravável apenas pelo usuário do servidor web (apache) e protegido contra leitura pública.
- Backups: faça backups regulares do diretório data e do banco de dados. Teste restaurações.
- Atualizações: mantenha PHP, Apache, MariaDB e ownCloud atualizados. Planeje janelas de manutenção.
- Monitoramento: configure alertas para uso de disco, CPU e latência do banco de dados.
- Rate limiting e firewall: proteja endpoints administrativos e APIs com regras de firewall e, se possível, WAF.
Compatibilidade, alternativas e quando escolher outra pilha
- Nginx + PHP-FPM: recomendado para alta concorrência e menor uso de memória. Substitua httpd por nginx e ajuste fastcgi.
- PostgreSQL: escolha para cenários que demandam extensões avançadas ou quando já existe expertise em Postgres.
- PHP 8+: algumas versões do ownCloud ainda não têm compatibilidade total; verifique a matriz de compatibilidade da versão específica que pretende instalar.
Tabela rápida de escolha:
- Pequeno ambiente (<20 usuários): Apache + MariaDB é suficiente.
- Médio a grande (>50 usuários, uso intensivo): Nginx + PHP-FPM + MariaDB/PostgreSQL + Redis para cache.
Troubleshooting comum
- Erro 500 após instalação: verifique logs /var/log/httpd/error_log e os logs do ownCloud em /var/www/owncloud/data/owncloud.log. Verifique permissões e SELinux (ause getenforce).
- Permissões de arquivos: se ownCloud não grava, corrija owner/group para apache:apache e aplique semanage/restorecon.
- Mensagem de compatibilidade PHP: confirme php –version e extensões necessárias (php-gd, php-mbstring, php-xml etc.).
- Certbot falhou: verifique se porta 80 está liberada e não há redirects que impeçam o challenge HTTP.
Checklist de aceitação (Kriterien de aceitação)
- Acesso via HTTPS para https://SEU_DOMÍNIO/owncloud/ retorna a página de login.
- Painel de ‘Security and setup warnings’ mostra “All checks passed”.
- Cron executa sem erros (logs do ownCloud não mostram warnings de tarefas em background).
- Backup automático agendado para banco e diretório data.
- SELinux em modo enforcing com as etiquetas aplicadas e sem AVC denials persistentes.
- Testes de upload/download: arquivos pequenos e grandes (até limite configurado) funcionam.
- Performance básica aceitável com 10–50 usuários simultâneos (dependendo de hardware).
Lista de verificação operacional (Role-based)
Administrador de sistema:
- Verificar backups diários do banco e data.
- Aplicar atualizações de segurança semanalmente.
- Monitorar logs e alertas de disco.
Administrador de aplicação:
- Confirmar integrações (LDAP/AD) se aplicável.
- Validar políticas de retenção e quotas de usuário.
Segurança/Compliance:
- Validar criptografia em trânsito e em repouso (se aplicável).
- Revisar controles de acesso e MFA para contas administrativas.
Casos de teste / Critérios de aceitação (mínimos)
- CT-01: Login com usuário admin criado — resultado esperado: redireciona para dashboard.
- CT-02: Upload de arquivo de 10 MB — resultado: upload completo e download sem corrupção.
- CT-03: Criação de pasta e permissão compartilhada — resultado: usuário convidado acessa arquivo compartilhado.
- CT-04: Execução do cron manual e verificação de execução (ocorrências no owncloud.log).
Riscos e mitigação (qualitativo)
- Risco: Perda de dados por falta de backup — Mitigação: agendar backups automatizados e testar restauração.
- Risco: Exposição de dados por configuração TLS fraca — Mitigação: configurar cipher suites modernos, HSTS e renovar certificados.
- Risco: Falhas por atualizações incompatíveis de PHP — Mitigação: testar atualizações em ambiente staging antes de produção.
Notas sobre privacidade e conformidade (GDPR)
Se você armazenar dados pessoais, avalie:
- Localização física do servidor (jurisdição).
- Políticas de retenção e exclusão de dados.
- Logs de acesso e anonimização quando necessário.
- Contratos e termos com provedores de infraestrutura.
Exemplo rápido de playbook de recuperação (rollback)
- Isolar o serviço (colocar em modo manutenção via occ: sudo -u apache php /var/www/owncloud/occ maintenance:mode –on).
- Restaurar backup do banco para um ponto válido.
- Restaurar diretório data a partir do backup correspondente.
- Validar integridade e desativar modo manutenção.
Glossário (1 linha cada)
- LAMP: Linux, Apache, MySQL/MariaDB, PHP — pilha tradicional para aplicações web.
- SELinux: Mecanismo de controle de acesso obrigatório no kernel para segurança reforçada.
- Redis: Armazenamento em memória para cache e locks, usado para melhorar performance.
- Certbot: Cliente ACME para emitir certificados Let’s Encrypt.
Conclusão
Você instalou e configurou o ownCloud no Rocky Linux com LAMP, Redis, SELinux e SSL. Também adicionamos cron, testes básicos, checklist de aceitação e dicas de segurança. A partir daqui você pode integrar serviços (LDAP, storage externo), habilitar sincronização de clientes e dimensionar conforme o uso.
Resumo final: mantenha backups, atualize componentes em ambiente de teste antes de produção e monitore recursos e logs para garantir disponibilidade.
Recursos adicionais e próximos passos sugeridos
- Integrar ownCloud com LDAP/Active Directory para autenticação centralizada.
- Montar armazenamento externo (S3, NFS, CIFS) para escalabilidade.
- Implementar replicação/cluster do banco para alta disponibilidade.
- Testar migração para PHP 8 quando a versão do ownCloud suportar oficialmente.
Important: Se alguma etapa falhar, revise logs (Apache, PHP, MariaDB e ownCloud) e confirme permissões e SELinux. Para incidentes críticos, coloque a instância em modo manutenção e realize a restauração a partir do backup testado anteriormente.
Materiais semelhantes
Instalar e usar Podman no Debian 11
Apt‑pinning no Debian: guia prático
Injete FSR 4 com OptiScaler em qualquer jogo
DansGuardian e Squid com NTLM no Debian Etch
Corrigir erro de instalação no Android