IFSC remoto

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Guia Básico de Instalação OwnCloud

Instalação do OwnCloud no Ubuntu (também servirá para o Debian “Squeeze”).

1.- Instalando as dependências necessárias, como root:

 
apt-get install apache2 php5 php5-gd php-xml-parser php5-intl
apt-get install php5-sqlite php5-mysql php5-pgsql smbclient curl libcurl3 php5-curl
aptitude install mysql-server mysql-client

2.- Criando a base de dados MySQL

Em um terminal, rode os seguintes comando:

mysql -u root -p

Após digitar a sua senha, digite o seguinte comando:

create database nome_da_sua_base_de_dados;

O MySQL deverá responder: “Query OK, 1 row affected (0.00 sec)”

Feche o MySQL

 
quit

3.- Download e instalação:

Para Debian 7.0 execute o seguinte como root:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install owncloud

Você pode adicionar a chave do repositório ao apt desta forma:

wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key

Para Debian 6.0 execute o seguinte como root:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_6.0/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install owncloud

Você pode adicionar a chave do repositório ao apt desta forma:

 
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_6.0/Release.key
apt-key add - < Release.key


Para xUbuntu 13.04 execute o seguinte como root:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_13.04/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install owncloud

Você pode adicionar a chave do repositório ao apt desta forma:

wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_13.04/Release.key
apt-key add - < Release.key

Para xUbuntu 12.10 execute o seguinte como root:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.10/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install owncloud

Você pode adicionar a chave do repositório ao apt desta forma:

wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.10/Release.key
apt-key add - < Release.key

Para xUbuntu 12.04 execute o seguinte como root:

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install owncloud

Você pode adicionar a chave do repositório ao apt desta forma:

wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key
apt-key add - < Release.key

4.- Mova o diretório do OwnCloud para o Apache

mv owncloud /var/www

5.- Dê as permissões necessárias ao servidor web

chown -R www-data:www-data owncloud

6.- Reinicie o Apache

/etc/init.d/apache2 restart

7.- Terminando a instalação

Na barra de navegação digite: localhost/owncloud

Será aberta a janela abaixo para completarmos a instalação:

Owncloud-1-install-configuration-page.png

Crie uma conta de administrador e selecione a opção “Advanced”. Então, entre com o nome de usuário nome do banco e a senha do banco de dados e clique em “Concluir a instalação.” Uma vez dentro do seu próprio painel administrativo, você poderá configurar o serviço e criar usuários.

Diário de Bordo

24/06

Percebemos que o sistema Linux de 32-bit tem limitações para trabalhar com upload acima de 2GB. Esperávamos que o PAE do kernel pudesse resolver o problema, o que não foi possível. Assim que configuramos o PHP para trabalhar com até 2GB o problema de upload foi resolvido - apesar da limitação do tamanho do arquivo. A configuração foi assim:

  • Editado o arquivo /etc/php5/apache2/php.ini, e alterados os parâmetros:
memory_limit = 2000M
post_max_size = 2000M
upload_max_filesize = 2000M

e reiniciado o serviço Web:

service apache2 restart

Logo depois, foi testado o serviço Owncloud e funcionou devidamente com arquivos de até 1,9GB - entendendo que o código (+dados) do programa carregado em memória ocupa os 100MB restantes.

Próximo passo: 64-bit

Como há limitações no sistema 32-bit, será refeito TODO o serviço, agora com o sistema 64-bit.

25/06

Comecei todo o procedimento do zero, instalando o sistema operacional Debian 64-bit, logo em seguida instalei os recursos necessários para o funcionamento do OwnCloud, como por exemplo: apache2, PhP5, mysql. Criei uma base de dados, necessária para criação de usuário no OwnCloud. Instalei o OwnCloud versão web e desktop.

  • Editei o arquivo /etc/php5/apache2/php.ini, e alterei os seguintes parâmetros:
memory_limit = 10G
post_max_size = 10G
upload_max_filesize = 10G

e reiniciei o serviço Web:

service apache2 restart

26/06

Comecei a fazer os testes de upload, para ver se os parâmetros alterados estão funcionando. Fiz upload de um arquivo de 3.7G e ele concluiu sem problemas. Logo depois fiz um upload maior que 5G e apareceu o seguinte erro:

The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form

Comecei a pesquisar sobre o erro.

28/06

Encontrei a solução do erro, o problema estava no seguinte arquivo:

/var/www/owncloud/apps/files/templates/index.php

Tive que editar o mesmo e acrescentar o seguinte código ao arquivo:

<!--<input type="hidden" name="MAX_FILE_SIZE" id="max_upload" value="<?php p($_['uploadMaxFileSize']) ?>">-->

Logo em seguida testei um upload de 6.9G e ele conclui sem problemas!

01/07

Com o OwnCloud funcionando o upload corretamente, partimos para outros testes e implementações importantes, alguns desses são:

  • Sincronização: Upload via site e aplicativo; Inserir, modificar e apagar.
  • Compartilhamento: Como é a ocupação por espaço? É por dono ou por todos?
  • Configuração de usuários: Se outros usuários podem ou não modificar espaço e permissões.
  • Integração com Ldap
  • Redirecionamento do HTTP para o HTTPs.
  • Controle de versões de arquivos: se podemos resgatar versões anteriores.
  • Se existe uma "lixeira" e onde ela fica.
  • Sincronização entre servidores.
  • Plugins (apps)

02/07

Com o inicio dos testes, achei várias respostas e curiosidades sobre o OwnCloud:

  • Enquanto ele está executando algo (na verão web), o sincronizador, se estiver fechado, não funciona.
  • É possível recuperar versões anteriores de arquivos.
  • Quando um arquivo é compartilhado com outro usuário, o arquivo ocupa o espaço de ambos os usuários.
  • Na sua própria conta, quando o usuário faz o próprio upload, ele tem direito a todas as permissões do arquivo, e quando o arquivo é compartilhado, é o usuário que compartilha que decide quais as permissões que o compartilhado pode utilizar.
  • Se sou o administrador e crio um usuário, o usuário pode modificar seu espaço e permissões concedidos pelo administrador. Mas se sou um usuário criado pelo administrador e crio um novo usuário, este novo usuário não pode criar novos usuários e nem alterar os eu tamanho de espaço (isso quem determina é o usuário que o criou ou o próprio administrador)
  • Quando um usuário é criado, se não definido o espaço máximo, cada usuário ganha 90Gb.
  • O próprio OwnCloud versão web vem com alguns plugins (aplicativos) que podem ser habilitados. Ainda está sendo testado outros plugins que não estão na versão web.

Próximo passo de testes e implementações não completadas:

  • Integração com o Ldap.
  • Redirecionar do HTTP para o HTTPS.

05/07

Procurando por outras funcionalidades, achei algumas observações/curiosidades interessantes:

  • Se é delimitado um valor de armazenamento para um usuário e este já tem um número x de arquivos, se este valor for maior que o delimitado, eles permanecem na conta do usuário, mas ele não poderá alterar, atualizar ou colocar novos arquivos em sua conta.
  • Para colocar uma foto no seu perfil, a mesma tem que estar no OwnCloud (esta opção é um plugin que pode ou não ser ativada).
  • Os arquivos da lixeira permanecem na mesma por 180 dias, podendo ser alterado os dias no arquivo config.php editando o campo trashbin_retention_obligation. Ela não usa mais que 50% da sua capacidade do usuário.

08/07

Implementado o Ldap com sucesso, achamos um problema, pois tendo muitos números de usuários, não achamos ainda uma forma de "controlar" esses usuários. O Redirecionamento com do HTTP para o HTTPS funcionou perfeitamente. Novos objetivos:

  • Limitação de usuários, para onde eles vão, número de páginas, quais mostrar, como procurar.
  • Sincronização de arquivos usando csync2.

12/07

Havíamos achado um problema em filtrar os usuários do Ldap, pois como a rede IFSC existem muitos usuários (incluindo pessoas, computadores e outros), tivemos que fazer uma pesquisa e conseguimos chegar ao seguinte filtro:

(& (objectClass=person) (!(description=Computer)))

Sendo assim, conseguimos filtrar só usuários que realmente são pessoas, no caso, servidores e alunos. Porém ainda continuamos com o problema de usuários, em como procurar, para onde eles vão, etc.

Hoje o OwnCloud atualizou sozinho, e com a atualização voltou ao valor padrão 513MB de upload, porém, veio com a atualização a opção de mudar esse valor no próprio programa. Ainda continuamos com os seguintes objetivos:

  • Sincronização de arquivos usando csync2.
  • Usuários: para onde vão, como procurar, como "gerenciar".

30/07

Criamos uma máquina virtual, e refizemos todo o precedimento do zero, seguindo inicialmente o Guia básico de instalação do ownCloud. Então refizemos todo o procedimento de integração com o lDap, mudamos o valor de upload (que já foi ensinado acima como modificar), redirecionamento para o HTTPs e a sincronização usando o csync2. A seguir colocarei os passos para a integração com o lDap, o redirecionamento para o HTTPs e a sincronização:

Integração com o LDAP

Obs: O LDAP é um aplicativo dentro do ownCloud, seu uso pode ou não ser obrigatório. Primeiramente temos que instalar os parâmetros necessários:

aptitude install slapd 
aptitude install apache2 libapache2-mod-php5 php5 php5-cgi php5-ldap 
aptitude install phpldapadmin

Logo em seguida, indo no seu ownCloud, clique no canto superior direito, no seu usuário:

Passo1.png

Então procure a opção "LDAP user and group backend", clique na opção "Habilitar" (no nosso caso já está habilitado, por isso na imagem aparecerá "Desabilitar"):

Passo2.png

Novamente clique no canto superior direito em seu usuário e vá na opção "Admin":

Passo3.png

A seguir mostrará como fizemos nossa própria configuração:

Passo4.png

Passo5.png

Passo6.png

Qualquer outra dúvida sobre campos ou afins, o ownCloud disponibiliza ajuda no Guia de configuração do LDAP (em inglês)

Para finalizar, clique em "Teste de configuração", e se tudo deu certo deverá aparecer a seguinte mensagem:

Passo7.png

Depois é só clicar em "Save" para salvar as configurações feitas.

Redirecionamento para o HTTPs

Primeiramente editamos o arquivo: /etc/apache2/sites-enabled/000-default </syntaxhighlight> Então colocamos a seguinte configuração: <VirtualHost *:80>

       ServerAdmin webmaster@localhost
       RedirectMatch ^/$ https://owncloud.sj.ifsc.edu.br/owncloud/
       RedirectMatch ^/owncloud(.*) https://owncloud.sj.ifsc.edu.br/owncloud$1
       DocumentRoot /var/www
       <Directory />

</syntaxhighlight>

Logo em seguida criamos um certificado através do comando:

openssl req -new -days 1460 -nodes -x509 -out /etc/ssl/certs/apache2.pem -keyout /etc/ssl/certs/apache2.pem

Seguimos o que foi pedido, colocando o país, estado, cidade, instituição, local na instituição, nosso domínio (owncloud.sj.ifsc.edu.br) e um e-mail.

Ativamos o ssl com os seguintes comandos:

a2enmod ssl
a2ensite default-ssl

Conferimos se o arquivo "deault-ssl" foi criado corretamente na pasta:

/etc/apache2/sites-enabled

e alteradas as seguintes linhas, ficando assim: SSLCertificateFile /etc/ssl/certs/apache2.pem SSLCertificateKeyFile /etc/ssl/certs/apache2.pem </syntaxhighlight> E por fim reiniciamos o apache2 para a configuração funcionar corretamente usando o comando:

 
service apache2 restart

Sincronização usando csync2

Primeiramente instalamos o csync2 usando o comando:

aptitude install csync2

Na pasta /etc editamos o arquivo "hosts" e adicionamos as máquinas que irão fazer a sincronização, nesse caso utilizamos a máquina ownCloud e a máquina de tele. Isso foi necessário porque não foi usado DNS, o que seria o recomendado: que as máquinas tenham o nome interno (comando hostname) com resultado equivalente ao do DNS.

Em seguida criamos o arquivo "csync2.cfg" e colocamos a seguinte configuração:

 
group owncloud
{
        host turing owncloud;
        include /var/www/owncloud/data;
        key /etc/csync2.key;
        auto none;
}

E temos que verificar se os seguintes arquivos estão na pasta em todos os servidores envolvidos - criados conforme o seu manual:

/etc/csync2.key              
/etc/csync2_ssl_cert.csr   
/etc/csync2_ssl_cert.pem   
/etc/csync2_ssl_key.pem

E por último fazer o agendamento para a sincronização através do caminho "/etc/cron.d/csync2". Colocamos para sincronizar a cada 5 minutos:

  • /5 * * * * root /usr/sbin/csync2 -xvr > /dev/null 2> /dev/null

</syntaxhighlight>