Saudações,
No final da semana passada eu fiz uma instalação de um VPS com 2GB, e eu confesso que não esperava muito do sistema.
Eu instalei o que precisava, e para minha surpresa tudo está funcionando "suavemente"!
O que o cliente me pediu foi a instalação de um Nextcloud; que na presente data está na versão 22.
Dica: Nextcloud com CyberPanel e OpenLiteSpeed
Conhecendo a demanda do cliente eu imaginei que 2GB de RAM não seria suficiente para o servidor que eu tinha em mente. Então parti para outra estratégia: usar o Nginx ou o OpenLiteSpeed. Devido a questão de tempo, eu optei por usar o CyberPanel com o OpenLiteSpeed.
Eu instalei o Nextcloud via web installer usado o setup-nextcloud.php. Depois iniciei a configuração dos requisitos do sistema.
Foi assim que eu fiz, iniciando com o config/config.php...
Língua padrão
Eu adicionei as seguinte diretivas...
...
'default_language' => 'pt_BR', 'force_language' => 'pt_BR',
...
Diretório data
Modifiquei a localização onde os arquivos dos usuário serão armazenados...
Coloquei o diretório data fora do public_html com a diretiva...
...
'datadirectory' => '/home/nome-do-subdomínio/pasta-privada/data',
...
Telefone padrão
Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code...
Havia uma mensagem sobre um tal de "default_phone_region" que não tinha sido definido. Eu setei esta diretiva para pt_BR...
...
'default_phone_region' => 'pt_BR',
...
Autenticação dos usuários
Por praticidade, eu optei por usar o próprio endereço de e-mail/senha do usuário para acessar o Nextcloud. Assim o cliente não tem o trabalho de adicionar usuários ao sistema; basta ter um e-mail dentro do domínio dele.
Para usar a autenticação externa, eu ativei o plugin...
External user authentication
E na configuração e escolhi o IMAP ( github.com/nextcloud/user_external#imap ) como meio de autenticação...
...
'user_backends' => array ( 0 => array ( 'class' => 'OC_User_IMAP', 'arguments' => array ( 0 => 'nome-do-servidor-imap', 1 => 993, 2 => 'ssl', 3 => 'nome-do-dominio-do-cliente', 4 => false, 5 => false, ), ), ),
...
Note que no 4º item da array eu "falo" para o Nextcloud que somente usuários deste domínio podem acessar!
Para mais informações, acesse github.com/nextcloud/user_external#readme.
Arquivos padrões
Sempre que o usuário loga, o Nextcloud cria alguns arquivos de exemplo...
Como eu não preciso desta função, eu a desativei com a diretiva...
...
'skeletondirectory' => '',
...
Saiba mais em docs.nextcloud.com/server/22/admin_manual/configuration_files/default_files_configuration.html.
Cache Redis
Mais simples impossível. Ao instalar o CyberPanel, eu optei por ativar o Redis ( cyberpanel.net/docs/redis-mass-hosting-with-cyberpanel ), e o instalar fez todo o resto....
A mim restou apenas conferir com o netstat se o Redis estava escutando na porta padrão, e inserir a configuração necessária...
...
'memcache.local' => '\\OC\\Memcache\\Redis', 'memcache.distributed' => '\\OC\\Memcache\\Redis', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'filelocking.enabled' => 'true', 'redis' => array ( 'host' => 'localhost', 'port' => 6379, 'timeout' => 0.0, ),
...
Se você desejar saber mais, acesse:
techandme.se/install-redis-cache-on-ubuntu-server-with-php-7-and-nextcloud
Outras configurações referente ao config/config.php podem ser encontradas no link docs.nextcloud.com/server/22/admin_manual/configuration_server/config_sample_php_parameters.html.
Agora vamos as configurações dentro do CyberPanel...
PHP open_basedir
Error: file_exists(): open_basedir restriction in effect. File(/templates/) is not within the allowed path(s):
No Nextcloud, verificando em Configurações -> Administração -> Registro, eu notei que havia mensagens de erro referente ao acesso aos diretórios "/templates/" e "/appinfo/"; acho que tem outras pasta também. Depois vou conferir isto com calma, mas eu achei estranho, visto que ambos os diretórios estão dentro da raiz do site, e este por sua vez tem permissão para manusear seus arquivos e pasta. Enfim...
No painel, na função vHost Conf...
... e alterei o bloco phpIniOverride...
DE
...
phpIniOverride { php_admin_value open_basedir "/tmp:$VH_ROOT" }
...
PARA
...
phpIniOverride { php_admin_value open_basedir "/tmp:$VH_ROOT:/templates/:/appinfo/" }
...
Salvei, reiniciei o servidor web pelo próprio CyberPaneil e o Nextcloud parou com as mensagens de erro.
Monitor do sistema
O Nextcloud não conseguia exibir informações sobre o sistema; tipo uso de memória. Neste caso não é um erro, mas uma questão de segurança devido as restrições do open_basedir.
Como o VPS é exclusivo para uso com o Nextcloud, então eu adicionei os devidos caminhos ao bloco phpIniOverride...
DE
...
phpIniOverride { php_admin_value open_basedir "/tmp:$VH_ROOT:/templates/:/appinfo/" }
...
PARA
...
phpIniOverride { php_admin_value open_basedir "/tmp:$VH_ROOT:/templates/:/appinfo/:/proc/meminfo:/proc/cpuinfo:/proc/uptime" }
...
Salvei, reiniciei o servidor web e...
Strict-Transport-Security, output_buffering e o memory_limit
Usando o bloco de contexto do OpenLiteSpeed, no final da configuração do vHost, para a raiz do site, eu adicionei o seguinte bloco...
...
context / { extraHeaders Strict-Transport-Security "max-age=15552000; includeSubDomains" phpIniOverride { php_admin_flag output_buffering "Off" php_admin_value memory_limit "512M" } }
😍 Note o phpIniOverride dentro do bloco context...
O OLS é bem reflexível. |
Maiores informações, acesse:
cyberpanel.net/docs/how-to-set-hsts-header-strict-transport-security-using-cyberpanel-openlitespeed
openlitespeed.org/kb/ols-configuration-examples/#Virtual_Host_Configuration_Files
Ufa! ehehehe acho que chegamos ao fim.
Depois de configurado o sistema, o Nextcloud me mostrou esta tela...
✅ Nextcloud devidamente configurado. |
Aproveita que chegamos ao fim do post, e dá uma lida completa na seção Hardening and security guidance da documentação; tem muita coisa legal por lá! 😉
Paz a todos!
Ah!!! Se você quiser que o OLS atenda requisições IPv6, você precisa adicionar os Listeners separadamente...
litespeedtech.com/docs/webserver/config/listener-general#listenerIP
By default, LiteSpeed uses separate listeners for IPv4 and IPv6 addresses. Should the need to serve both IPv4 and IPv6 arise, separate listeners should be created for each.
E não esquece de ativar o firewall para o seu IPv6. Neste VPS eu ativei o ConfigServer Security & Firewall, então em fiz assim...
CyberPanel -> Segurança -> Firewall |
Ativando o IPv6 |
Depois que você gravar as mudanças o firewall será recarregado com o suporte ao IPv6; confira com o comando ip6tables -L -n. 😉
0 comentários:
Postar um comentário