ownCloud Setup · 10 min read · Jan 22, 2026
Sua Nuvem, Seus Dados, Seu Jeito! - ownCloud 4.0 No CentOS 6.2 + nginx + PostgreSQL
Sua Nuvem, Seus Dados, Seu Jeito! - ownCloud 4.0 No CentOS 6.2 + nginx + PostgreSQL
Este documento descreve como instalar e configurar o ownCloud pela “comunidade ownCloud” em um servidor web baseado em CentOS 6.2 a partir de um pacote tar em um nginx e php-fpm com banco de dados PostgreSQL como backend. Para outras distribuições, pode haver pequenas mudanças nos procedimentos de instalação dos pré-requisitos de software. Este guia não apenas ajudará a instalar o produto, mas também a entender por que certos pontos são feitos da maneira que são (isso é mais útil para usuários com pouco ou nenhum conhecimento que, como eu há algum tempo, apenas começaram a usar Linux).
O que é ownCloud?
É uma ferramenta de compartilhamento de arquivos / contatos / calendários de grupo ou empresa, que, do meu ponto de vista, combina o melhor do Dropbox e do GroupOffice (exceto pela integração de e-mail até agora), e não é tão confusa ou pesada quanto Alfresco ou Sharepoint.
Links para várias seções do desenvolvedor:
- Página inicial do produto: http://owncloud.org/
- IRC: http://webchat.freenode.net/?channels=owncloud
- Suporte: http://owncloud.org/support/
Não garanto que funcionará para você, uma vez que mais tarde podem haver mudanças no software, tanto nos pré-requisitos quanto no principal, feitas de tal forma que quebre ou de qualquer outra forma impeça os procedimentos mencionados neste tutorial de serem concluídos com sucesso.
P.S. Todos os bugs adicionados são meus. Use comentários ou navegue até o IRC.
Nota Preliminar
Neste tutorial usamos:
- Mídia de instalação do Centos 6.2
- Nome do host: owncloud.example.com
- Endereço IP: 192.168.1.100
- Endereço do roteador: 192.168.1.1
- Máscara de rede: 255.255.255.0
- Suponha (imagine) que o servidor esteja conectado à internet pública
- Usamos nosso computador para administrar o servidor remotamente via ssh (putty no windows), mesmo que você tenha o servidor ao seu lado, ou tenha-o como uma máquina virtual executada sob seu sistema operacional principal
- GNU vim como nosso editor de texto principal. Mas sinta-se à vontade para usar qualquer outro de sua preferência
Requisitos
Precisaremos de uma instalação limpa (mínima) funcional do Centos 6.2 (x86 ou x86_64 é irrelevante), eu pessoalmente uso a versão x86_64 e sugiro fortemente que você faça o mesmo.
Primeiras Coisas Primeiro
Faça login no console do servidor como root. Você estará no prompt [root@owncloud ~]#.
Prefiro certas configurações, que são completamente opcionais, mas você pode achá-las úteis mais tarde. Configuro meu terminal para mostrar a saída em cores com data, hora, nome do servidor e pasta atual no prompt. Também para mostrar o histórico de comandos com data/hora. Também aumento os valores padrão de tamanho do histórico.
Para fazer isso, execute:
vi ~/.bash_profileAdicione as linhas mencionadas após a diretiva export PATH. Caso você não saiba, pressionar “i” entra no modo de inserção, “ESC” sai dele. Vi é vi :)
#Tamanho do histórico para manter 50.000 comandos e inflar o tamanho do arquivo dez vezes maior
export HISTSIZE=50000
export HISTFILESIZE=500000
#Mostrar histórico com data como exemplo: "24.05.2012 - 14:28:56"
export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S "
#Autocolorir a saída do comando "ls"
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
#Definir prompt para exibir como exemplo: "Qui Mai 24 2012 14:28:56 owncloud.example.com de root @ ~]"
e colorir data, hora e localização de forma diferente. Defina todo texto de entrada para valores padrão.
PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y} \e[1;31m\]\t \e[1;37m\] \H de \u @ \W] \033[00m\]"Salve e saia do arquivo. Novamente, se você não souber, fora do modo de inserção você pode digitar “:wq” e pressionar enter para salvar e sair, ou apenas pressionar “ZZ” para fazer o mesmo. Para relogar no terminal para aplicar as mudanças, execute:
exitRede
Se você não configurou um endereço IP estático durante a instalação, digamos que você tenha um roteador com DHCP habilitado, você precisa fazer isso agora, caso contrário, prossiga para a próxima etapa.
vi /etc/sysconfig/network-scripts/ifcfg-eth0Altere ou adicione apenas as linhas mencionadas.
BOOTPROTO="none"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.100"
GATEWAY="192.168.1.1"Salve e saia. Em seguida, reinicie a rede:
service network restartVerifique se a rede foi reconfigurada executando:
ifconfigAgora você deve ser capaz de ssh para o servidor em 192.168.1.100 como root. Mas não faça isso ainda, primeiro complete a próxima etapa.
Protegendo O Servidor
Antes de prosseguirmos, uma vez que assumimos que o servidor está, de fato, conectado à internet, precisamos protegê-lo. Faremos três coisas.
- Reconfigurar o servidor ssh para que não permita login como root e mudar a porta padrão 22 para algo menos comum, ou seja, 60606,
- Configurar iptables para permitir conexões de entrada na nova porta,
- Adicionar nosso primeiro usuário do sistema para que possamos fazer login com ele via ssh.
Protegendo o login remoto Se você ainda não estiver logado no console do servidor (quero dizer, console local, ainda não ssh), faça login como root, em seguida, execute: ```
vi /etc/ssh/sshd_configNa linha treze do arquivo padrão não alterado (caso você se pergunte novamente, digite ":set number" e pressione enter fora do modo de inserção para obter os números das linhas) há a diretiva Port 22. Duplique-a, mude o número da porta para 60606 e descomente. Então encontre (fora do modo de inserção pressione "/" e digite a frase que você está procurando) a diretiva PermitRootLogin yes, duplique novamente e mude seu valor para no e descomente também, em seguida, salve o arquivo. Ah, e é ":noh" para desligar a realce. Reinicie o sshd depois:service sshd restartConfigurando iptables Primeiro verifique os iptables já existentes: ```
iptables -L -v –line-numbersNa instalação padrão na posição '4' haverá a diretiva para aceitar novas conexões tcp na porta ssh padrão, precisamos nos livrar dela, portanto, execute:iptables -D INPUT 4Agora precisamos permitir conexões na porta 60606 em vez disso. Execute:iptables -I INPUT 4 -p tcp -d 192.168.1.100 –dport 60606 -j ACCEPTPor último, para salvar o estado atual do iptables execute:service iptables save
service iptables restartAdicionando o primeiro usuário Tudo está bem agora, exceto por uma coisa, nós nos banimos do ssh, uma vez que root não é permitido e ainda não há outros usuários do sistema. Hora de corrigir: ```
useradd -c “usuário do sistema ownCloud” -m -n cloudadminDefina a senha para este usuário:passwd cloudadminPronto. Você poderia definir a senha para o usuário no primeiro comando, mas dessa forma o valor da senha será visível durante a entrada na janela do terminal e também será salvo no .bash_history do usuário root, o que não é desejável. Agora você pode fazer login via ssh executando o seguinte comando na janela do terminal em seu computador local:ssh [email protected] -p60606
Etapas de Pré Configuração
A instalação do software na maioria dos casos é bastante direta e poderíamos ter ‘verificado’ a maior parte disso na instalação inicial, mas prefiro fazer as coisas manualmente.
Divido intencionalmente a instalação em seções.
Logando como superusuário Neste exato momento você deve estar no prompt do console como usuário clouddmin. Para obter privilégios de root execute: ```
su -Repositórios de software Para usar o software desejado, dois repositórios são necessários.
Primeiro EPEL, execute:rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpmE não, i386 não é um erro, é o mesmo para sistemas de 32 bits e 64 bits.
Então Remi, execute:rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmAgora verifique ambos os repositórios epel e remi e, caso não esteja lá, defina enabled=1 executando:vi /etc/yum.repos.d/epel.repo vi /etc/yum.repos.d/remi.repoPor fim, atualize seu sistema. Mesmo o CentOS recém-instalado pode exigir atualização primeiro. Execute:yum update -yTempo de precisão É bom estar em sincronia com o resto do mundo, execute: ```
yum install ntp
service ntpd start
chkconfig ntpd on
ntpdAlgumas outras ferramentas Para facilitar minha vida, uso vim em vez de vi, htop em vez de top, elinks para testar rapidamente as coisas a partir do terminal e mc, como um bom e não apenas gerenciador de arquivos de painel duplo, wget é necessário para baixar coisas e man é essencial quando você quer ler sobre qualquer coisa. Execute: ```
yum install vim htop elinks mc wget man -y
Configuração do ownCloud
Pré-requisitos de software Um monte de coisas do php, execute: ```
yum install php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsqlEdite php.ini, execute:vim /etc/php.iniExistem quatro diretivas a serem alteradas, a primeira deve estar na linha 736, diretiva post_max_size a segunda na linha 848, diretiva cgi.fix_pathinfo a terceira na linha 885, diretiva upload_max_filesize a última na linha 956, diretiva date.timezone modifique-a de acordo com a localização do seu servidor.[…] post_max_size = 64M […] cgi.fix_pathinfo = 0 […] upload_max_filesize = 64M […] date.timezone = “Europe/Prague” […]Caso você não saiba como, pode encontrar o nome do seu fuso horário executando:cat /etc/sysconfig/clockEm seguida, configure o php-fpm para usar o socket unix em vez da pilha tcp, execute:vim /etc/php-fpm.d/www.confA partir da linha doze, faça parecer com isso:;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sockInicie o php-fpm:chkconfig php-fpm on
service php-fpm startBackend - PostgreSQL Para instalar e configurá-lo, execute: ```
yum install postgresql postgresql-libs postgresql-server
service postgresql initdb
service postgresql start
chkconfig postgresql onFaça login no postgres como usuário do sistema postgres, crie um usuário de banco de dados, banco de dados e conceda privilégiossu - -c “psql” postgres
CREATE USER clouduser WITH PASSWORD ‘userpass’;
CREATE DATABASE clouddb OWNER clouduser ENCODING ‘UTF8’;
GRANT ALL PRIVILEGES ON DATABASE clouddb TO clouduser;
\qAltere o arquivo de configuração do postgresql para permitir logins com senha:vim /var/lib/pgsql/data/pg_hba.conf- Procure porhost all all 127.0.0.1/32 ident
- E altere para
# IPv4 local connections: host all all 127.0.0.1/32 passwordAgora reinicie o banco de dados:service postgresql restart
servidor web nginx Instale, configure para iniciar na inicialização e depois pare-o: ```
yum install nginx
service nginx start
chkconfig nginx on
service nginx stopPrepare o arquivo de configuração para o site owncloud:vim /etc/nginx/conf.d/owncloud.confserver { listen 80; server_name owncloud.example.com; rewrite ^ https://$server_name$request_uri? permanent; # impor https }server { listen 443 ssl; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; server_name owncloud.example.com; root /var/www/owncloud; index index.php; client_max_body_size 64M; # definir tamanho máximo de uploadlocation ~ ^/(data|config|.ht|db_structure.xml|README) { deny all; }location / { try_files $uri $uri/ @webdav; }location @webdav { fastcgi_split_path_info ^(.+.php)(/.*)$; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; }location ~ .php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } }Agora vamos criar certificados para o servidor, responda às perguntas no prompt de acordo com suas configurações:mkdir -p /etc/nginx/certs/
cd /etc/nginx/certs/
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.orig
openssl rsa -in server.key.orig -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crtRecarregue o nginx para habilitar a nova configuração:service nginx reloadarquivos e diretórios do ownCloud A instalação do ownCloud consiste em baixar e descompactar o arquivo, com alguns ajustes no lado do servidor, portanto, execute: ```
cd /tmp
wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2
tar xjf owncloud-4.0.0.tar.bz2
mv owncloud /var/www/
mkdir -p /var/www/owncloud/data
chmod 770 /var/www/owncloud/data
chown -R root:apache /var/www/owncloud ``` E mais uma vez, apache como grupo no último comando não é um erro. o php-fpm é executado por padrão como usuário apacheAcesse o site Abra a porta 443 para poder acessar o site, execute: ```
iptables -I INPUT 4 -p tcp -d 192.168.1.100 –dport 443 -j ACCEPT
service iptables save
service iptables restart
Execução de Teste
Navegue até https://owncloud.example.com através do seu navegador de escolha e finalize o procedimento de instalação.
Escolha o nome de usuário e a senha do administrador, escolha PostgreSQL como backend do banco de dados e insira os valores apropriados nas configurações de conexão do banco de dados.
Aproveite.
Solução de Problemas
Os arquivos de log estão localizados da seguinte forma:
/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var/log/nginx/error.log
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.