Como otimizar o ownCloud

 
Introdução:

Para aumentar a eficiência do ownCloud e reduzir a carga no sistema, provocada por operações frequentes ou pesadas, é possível salvar o resultado de tais operações em cache.


Além do cache, é possível travar os arquivos em uso para evitar que outras pessoas os editem simultaneamente, evitando, com isso, conflitos de versões.

1) OpCaching:

Cache é usado pelo PHP para salvar versões compiladas dos scripts para que não precisem ser compilados a cada requisição. Isso é chamado opcaching, e vem incluido e ativado por padrão na versão 5.5 do PHP. Se sua versão do PHP é a 5.4, é necessário instalá-lo manualmente.


PHP 5.5
:
As instalações mais novas, como a que resulta desta série de tutoriais, vêm com o PHP 5.5 instalado e, como tal, nada precisa ser feito em relação ao opcache. Se quiser testá-lo, para ver se foi carregado e está funcionando, rode um comando testphp(), da seguinte forma:


Nota: se você instalou o LAMP seguindo este tutorial do Guicolândia, já criou o arquivo testphp.php. Basta acioná-lo digitando, na barra de endereços do navegador web, "http://localhost/html/testphp.php".


Crie uma página de teste. No Terminal (Ctrl+Alt+T), digite:

sudo pluma /var/www/html/testphp.php

O Pluma vai abrir com um documento em branco. Copie e cole as seguintes linhas:

<?php
phpinfo();
?>


Salve o documento e feche o editor. Em seguida, reinicie o Apache com o comando abaixo:

sudo service apache2 restart

Abra o navegador web e digite o seguinte endereço:

http://localhost/html/testphp.php

Na página de resposta, procure por "Zend Opcache". Para facilitar, pressione a combinação de teclas "Ctrl+f" e digite, sem as aspas, "opcode". O browser deverá correr diretamente para a seção pretendida. Verifique se estão presentes as respostas:

Opcode Caching    Up and Running
Optimization      Enabled

As configurações do OpCache podem ser encontradas em:

/etc/php5/apache2/php.ini

A extenção se encontra em:

/etc/php5/mods-avaiable

A verificação dos módulos carregados no diretório correspondente mostra um link symbólico para o arquivo opcache.ini:


/etc/php5/apache2/conf.d/

PHP 5.4:


Se sua versão do PHP for a 5.4, instale o módulo Zend OpCache manualmente com o comando:

sudo pecl install zendopcache-7.0.5

Identifique onde o "opcache.so" foi instalado:

sudo find / -name 'opcache.so'

Salve o endereço indicado, pois deverá ser utilizado no passo seguinte:

sudo pluma /etc/php5/mods-available/opcache.ini

No parâmetro "zend_extension", utilize o caminho do "opacache.so" indicado acima e adicione o conteúdo abaixo. Veja o exemplo:

zend_extension="/usr/lib/php5/20100525/opcache.so"
opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1


Crie um link simbólico para o PHP subir o OpCache na inicialização. O comando abaixo é de uma linha:

ln -s /etc/php5/mods-available/opcache.ini /etc/php5/conf.d/20-opcache.ini

 

 

2) Cache de memória com APCu:

Cache de memória é utilizada diretamente pela aplicação web, como o ownCloud, para contornar consultas lentas ao banco de dados ou checagens do sistema com a utilização de resultados pré-gravados na memória cache, seja localmente, seja em servidores em cluster. A ocupação da memória por estes caches é normalmente baixa, o que torna seu uso vantajoso.

Para o ownCloud rodando localmente no Raspberry PI, o sistema mais utilizado (pelo menos é o que as pesquisas na Internet indicaram) é o APCu.

Provavelmente, o módulo correto já está instalado. Para verificar, já ganhando tempo, rode o seguinte comando no Terminal:


b) PHP 5:


sudo apt-get install php5-apcu 


Em seguida, rode:

sudo php5enmod apcu

É preciso uma pequena alteração no arquivo de configuração do PHP. Abra-o no editor de texto com o comando:

sudo pluma /etc/php5/mods-available/apcu-cli.ini

Inclua a seguinte linha:

apc.enable_cli = 1

Salve o arquivo de texto, feche o editor e rode o seguinte comando no Terminal:


sudo php5enmod apcu-cli


Reinicie o servidor:

sudo service apache2 restart 


b) PHP 7:


sudo apt-get install php-apcu

Em seguida, rode:

sudo phpenmod apcu

É preciso uma pequena alteração no arquivo de configuração do PHP. Abra-o no editor de texto com o comando:

sudo pluma /etc/php/7.0/mods-available/apcu-cli.ini

Inclua a seguinte linha:

apc.enable_cli = 1

Salve o arquivo de texto, feche o editor e rode o seguinte comando no Terminal:

sudo phpenmod apcu-cli


c) Para ambas as versões - fechamento:


Agora, é preciso alterar o arquivo de configuração do ownCloud para que passe a acessar o APCu. Comece criando um arquivo de backup (vai que...):

sudo cp /var/www/owncloud/config/config.php /var/www/owncloud/config/config.php.bak

Abra o arquivo no editor:

sudo pluma /var/www/owncloud/config/config.php

Adicione a seguinte linha entre a última vírgula e antes do parênteses:

'memcache.local' => '\\OC\\Memcache\\APCu', 


Já pode entrar novamente no ownCloud.

3) File Locking:

Uma outra mensagem de aviso diz respeito o travamento dos arquivos. Isso evita que duas pessoas, em máquinas diferentes, trabalhem simultaneamente no mesmo arquivo, para previnir erros de conflito.

As chances disso acontecer em uma instalação caseira como a aqui proposta é remota. Sendo assim, esse tutorial não cobrirá esta configuração. No entanto, se for de seu interesse, siga o excelente tutorial contido neste link. Apenas altere as instruções para utilizar os pacotes "php5-redis" e "redis-server" presentes no repositório do Ubuntu-Mate para Raspberry PI, rodando o comando:

sudo apt-get install php5-redis redis-server

Siga as demais instruções presentes no tutorial, com especial atenção ao desligamento do APCu.