ownCloud · 5 min read · Jan 23, 2026
Instalar ownCloud com SSL e Nginx no CentOS 6.5
Instalar ownCloud com SSL e Nginx no CentOS 6.5
Versão: 3.0
Autor: Aaron
CentOS atualizou muitos pacotes, e o post que escrevi há 1 ano não funciona mais no CentOS 6.5 atualizado.
Fiz uma pesquisa e parece que este será o primeiro tutorial em 2014 sobre como instalar owncloud no centos com nginx, postgresql e ssl. Você não vai encontrar instalação do CentOS e owncloud com nginx atualmente, porque a maioria das pessoas não sabe como resolver problemas simples.
Meu servidor foi afetado e essa é a razão que me fez escrever este post hoje.
Os pacotes nos repositórios EPEL e CentOS estão obsoletos, enquanto nginx, postgresql e owncloud requerem pacotes um pouco mais novos. Você ficará apenas na página de login sem conseguir acessar seus arquivos, se perguntando o que aconteceu. Os arquivos de log não mostrarão de onde vem o problema nem o próprio owncloud.
Os requisitos do owncloud são
PostgreSQL >= 9.0, mas no EPEL é 8.8, requer php 5.3.3 como mínimo, mas não funciona com essa versão, além disso, todos esses pacotes mais novos exigirão a versão estável mais recente do nginx.
A primeira coisa que devemos fazer é remover todas as bibliotecas mysql.
yum remove mysql* mysql-server mysql-devel mysql-libsComo de costume, instalaremos repositórios de terceiros, como epel, remi e o novo: postgresql mais recente
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpmrpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmrpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpmEdite o repositório epel e certifique-se de que o topo é enabled=1
vi /etc/yum.repos.d/epel.repoFaça o mesmo com o repositório remi, mas certifique-se de habilitar a versão do php 5.6,
vi /etc/yum.repos.d/remi.repo

Crie um arquivo de configuração do repositório nginx
vi /etc/yum.repos.d/nginx.repoe adicione:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
Atualize seu servidor CentOS para adicionar esses repositórios de terceiros
yum updateInstale os seguintes pacotes para satisfazer os requisitos do owncloud:
yum install nginx postgresql93 postgresql93-libs postgresql93-server wget php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql php-pdoInicie o PostgreSQL, inicie o nginx temporariamente e adicione-o aos serviços de inicialização do sistema com chkconfig
service postgresql-9.3 initdb
service postgresql-9.3 start
chkconfig postgresql-9.3 on
service nginx start
chkconfig nginx on
service nginx stopCrie um novo usuário e banco de dados PostgreSQL.
su - -c "psql" postgresCREATE USER cloud WITH PASSWORD 'userpass';
CREATE DATABASE cloudbase OWNER cloud ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE cloudbase TO cloud;
\qVerifique e lembre-se do seu fuso horário
cat /etc/sysconfig/clockEdite o arquivo de configuração do php
vi /etc/php.inipost_max_size = 2Gcgi.fix_pathinfo = 0upload_max_filesize = 2Gdate.timezone = "your/timezone"Edite o arquivo de configuração do php-fpm para usar tcp em vez de socket unix
vi /etc/php-fpm.d/www.confCertifique-se de que listen não esteja apontando para /var/run/php-fpm/php-fpm.sock
listen = 127.0.0.1:9000Inicie o serviço php-fpm
chkconfig php-fpm on
service php-fpm startEdite o arquivo de configuração do postgresql para permitir logins com senha:
vi /var/lib/pgsql/9.3/data/pg_hba.confe mude ident para password - note o cursor na imagem a seguir:

Reinicie o banco de dados postgresql service postgresql-9.3 restart
Crie uma pasta vazia onde armazenaremos nossos certificados SSL
cd /etc/nginx
mkdir -p certSe você está familiarizado com hosts virtuais do apache, então o próximo arquivo que você terá que criar é exatamente isso.
cd conf.dvi cloud.confupstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name 10.10.10.110; # substitua pelo seu nome de domínio ou ip interno do servidor
return 301 https://$server_name$request_uri; # forçar https
}
server {
listen 443 ssl;
server_name 10.10.10.110; # substitua pelo seu nome de domínio ou ip interno do servidor
ssl_certificate /etc/nginx/cert/server.crt;
ssl_certificate_key /etc/nginx/cert/server.key;
# Caminho para a raiz da sua instalação
root /var/www/owncloud/;
client_max_body_size 10G; # definir tamanho máximo de upload
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# As 2 regras a seguir são necessárias apenas com webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
}
# Opcional: defina um cabeçalho EXPIRES longo em ativos estáticos
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Opcional: Não registre acesso a ativos
access_log off;
}
}
Eu fiz o upload desse arquivo de configuração do nginx para o meu site, então em vez de escrevê-lo manualmente, basta digitar wget http://linux.sytes.net/img/nginx1-6.conf.txt e renomeá-lo para algo como cloud.conf
Como você especificou no “host virtual” do nginx acima, nosso servidor ownCloud usará SSL, então vamos criar esses certificados, certo?
cd ..
cd cert
openssl req -x509 -nodes -sha384 -days 3650 -newkey rsa:4096 -keyout server.key -out server.crt
chmod 600 server.key
chmod 600 server.csrEm seguida, baixe, extraia o arquivo do owncloud e defina permissões para a pasta do owncloud. Observe que baixaremos a versão de desenvolvimento do owncloud.
cd /var/www
wget http://download.owncloud.org/community/daily/owncloud-daily-master.tar.bz2
tar xjf owncloud-daily-master.tar.bz2
mkdir -p owncloud/data
chmod 770 owncloud/data
chmod 777 owncloud/config/
chown -R root:apache owncloud
rm -rf owncloud-daily-master.tar.bz2Permita conexões tcp de entrada nas portas do seu servidor: 80 e 443. Se você ou alguém chamar o ip interno do seu servidor, será redirecionado para https://yourserverinternalip, porque você especificou isso no “host virtual” do nginx anteriormente.
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 80 -j ACCEPT
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 443 -j ACCEPTservice iptables save
service iptables restartReinicie o PostgreSQL pela última vez e inicie o nginx com a nova configuração:
service postgresql-9.3 restart
service nginx startÉ isso, abra seu navegador e aponte para o ip do seu servidor. Escolha qualquer nome de login e senha que você quiser.

Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.