IFSC remoto
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:
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:
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"):
Novamente clique no canto superior direito em seu usuário e vá na opção "Admin":
A seguir mostrará como fizemos nossa própria configuração:
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:
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
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 />
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 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 também:
csync2.key
csync2_ssl_cert.csr
csync2_ssl_cert.pem
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>