Neste tutorial irei demonstrar como instalar o Nextcloud no Ubuntu, sendo que a instalação para esse tutorial foi realizada usando um ambiente de testes com maquina virtual. Portanto, caso você for utilizar um VPS, deverá ajustar as informações de acordo com a necessidade do seu projeto.
A versão utilizada foi a do Ubuntu Server 18.04, entretanto, os passos descritos devem funcionar em outras versões.
Primeiramente o que é Nextcloud?
O Nextcloud é software open source que permite hospedar e compartilhar arquivos de forma segura e privativa.
Ele é bem parecido com o Dropbox, porém, possui algumas características bem interessantes, tais como seu código fonte que é totalmente aberto, proporcionando ao usuário mais controle e privacidade sobre os seus arquivos e a possibilidade de customizar a sua instalação.
Se você busca uma solução de armazenamento de arquivos onde você possa ter total controle sobre o servidor e a plataforma, ou seja, ter sua Nuvem Privada, o Nextcloud é a solução.
O que você precisa para instalar o Nextcloud no Linux
- Um servidor Ubuntu instalado e devidamente atualizado (Com IP estático ou domínio)
- Acesso SSH e permissão de root
- Determinação para se liberar e tomar o controle da sua privacidade
Atualizando dependências no servidor
O primeiro passo é atualizar as dependências do seu servidor para que a instalação possa ocorrer de forma eficaz, lembrando de usar um usuário com permissões de root, sendo assim execute o comando abaixo:
apt-get update
Após finalizar as atualizações daremos início a instalação e configuração do ambiente necessário para o funcionamento do Nextcloud.
Iniciando a instalação do Apache2 no Ubuntu
Neste tutorial iremos utilizar o Apache2 que provavelmente é um dos servidores web mais populares do mundo seguido do Nginx. Sendo assim, para realizar a instalação, basta executar o comando abaixo:
sudo apt install apache2
Todo o processo de instalação deve levar apenas alguns instantes, portanto, você deve apenas aguardar.
Após a conclusão da instalação devemos habilitar que o serviço do Apache2 inicie juntamente com o boot do servidor, para isso execute o seguinte comando:
sudo systemctl enable apache2.service
Para testar se o seu servidor Apache está devidamente funcionando você pode acessar a página de testes usando o seu navegador de internet, para isso digite o endereço de IP do seu servidor ou nome de domínio.
Agora que o servidor web está instalado chegou o momento de configurarmos o banco de dados do nosso Nextcloud.
Instalando o banco de dado MariaDB no Ubuntu
Para configurarmos o banco de dados primeiramente devemos instalar os pacotes do MariaDB, que é uma ramificação do MySQL mantida pelo mesmo desenvolvedor. Portanto, todas a funções do MySQL estão presentes no MariaDB que é mantido em licença GPL v2.
Para instalar o MariaDB no Ubuntu é bem simples, execute no terminal os comandos:
sudo apt-get install mariadb-server mariadb-client
Uma vez que a instalação foi finalizada, devemos executar o comando para o MaribaDB iniciar juntamente com o boot do servidor:
sudo systemctl enable mariadb.service
Agora que o serviço já está devidamente configurado iremos realizar alguns ajustes na instalação do banco:
- Criar uma senha de root para o banco
- Remover usuários anônimos
- Desabilitar o acesso de root remotamente ao banco de dados
- Remover o banco de dados de testes
Para isso você precisa executar o seguinte comando:
sudo mysql_secure_installation
Neste momento será solicitado para criar uma nova senha para o usuário root e algumas perguntas serão exibidas na tela. Basta respondê-las da seguinte forma.
- Enter current password for root (enter for none): Insira a senha atual
- Set root password? [Y/n]: Y
- New password: Configure uma nova senha
- Re-enter new password: Confirme a sua nova senha
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
Feito isso você precisa reiniciar o serviço do banco de dados, sendo assim execute o comando abaixo:
sudo systemctl restart mariadb.service
Configurando o banco de dados do Nextcloud no Ubuntu
Certamente essa é uma das configurações mais importantes, pois é no banco de dados que uma boa parte das informações referentes ao funcionamento do seu servidor Nextcloud serão armazenadas. Portanto, você deve criar um novo banco para o Nextcloud para isso siga os seguintes passos:
Acesse o seu servidor MariaDB usando o comando abaixo:
sudo mysql -u root -p
Provavelmente uma tela parecida com a mostra abaixo deve ser exibida a você:
Neste momento você deverá criar a base de dados:
MariaDB [ (none) ] > CREATE DATABASE nextcloud;
Após a criação do banco é necessário criar um usuário para o banco:
MariaDB [ (none) ] > CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'nextcloud';
Lembrando que os dados inseridos nesse tutorial são apenas para fins educacionais em um ambiente de produção utilize senhas seguras!
Agora você deve dar as devidas permissões para o usuário criado para que o mesmo possa ter total acesso a base de dados:
MariaDB [ (none) ] > GRANT ALL ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'nextcloud' WITH GRANT OPTION;
E finalmente você concluiu a criação do banco, agora basta atualizar os privilégios e sair do MariaDB:
MariaDB [ (none) ] > FLUSH PRIVILEGES;
MariaDB [ (none) ] > EXIT;
Instalando o PHP 7.2 no Ubuntu Server
Provavelmente a versão 7.2 não está disponível por padrão nos repositórios do Ubuntu, portanto, você deve adicionar os seguintes repositórios para poder instalar a versão 7.2
sudo apt-get install software-properties-common
Em seguida adicione o repositório abaixo:
sudo add-apt-repository ppa:ondrej/php
Provavelmente uma mensagem solicitando para pressionar ENTER para continuar será exibida. Logo em seguida após a conclusão execute o comando de update.
sudo apt update
Agora para o Nextcloud funcionar corretamente serão necessários alguns pacotes, para isso execute o comando abaixo que contém todos os pacotes necessários para o funcionamento do Nextcloud.
sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip
Pacotes devidamente instalados, vamos ajustar apenas algumas configurações no arquivo php.ini . Lembrando que, de acordo com o seu projeto, você precisará fazer alguns ajustes.
sudo nano /etc/php/7.2/apache2/php.ini
No arquivo certifique-se que as linhas contendo as seguintes informações estejam dessa forma, as demais configurações podem ser mantidas:
- file_uploads = On
- allow_url_fopen = On
- memory_limit = 256M
- upload_max_filesize = 100M
- max_execution_time = 360
Depois de editar as linhas exibidas acima, basta salvar o arquivo e pronto.
Reiniciando o Apache2 para aplicar as configurações do PHP
Agora que já instalamos o PHP e todos os módulos necessários, devemos reiniciar o nosso servidor Apache:
sudo systemctl restart apache2.service
Caso queira testar se instalação do PHP foi bem sucedida você pode criar um arquivo bem simples na raiz do seu servidor web que irá informar os dados da versão instalada do PHP, é bem simples, faça o seguinte:
sudo nano /var/www/html/teste.php
Dentro do arquivo insira a seguinte informação:
<?php phpinfo( ); ?>
Agora navegue até o endereço do seu servidor digitando o /teste.php e verifique se o arquivo exibe as informações corretas da sua instalação do PHP.
Baixando e instalando o Nextcloud
Agora podemos baixar a última versão do Nextcloud através do repositório oficial do projeto. Portanto você deve executar o comando wget, veja abaixo:
wget https://download.nextcloud.com/server/releases/latest.zip
Logo após finalizar o download iremos extrair o arquivo e movê-lo para o diretório do nosso servidor web, lembrando que o arquivo está em formato zip, sendo assim necessário instalar o Unzip, veja como:
apt-get install unzip
Pronto agora basta dar continuidade no processo de instalação do Nextcloud extraindo a pasta e movendo para o diretório do servidor web localizado em var/www/html :
unzip lastest.zip
Uma vez que o arquivo for extraído ele irá criar uma pasta chamada Nextcloud, basta movê-la usando o comando mv, veja como:
sudo mv nextcloud /var/www/html/
Neste momento precisamos configurar as permissões corretas para a pasta executando o comando abaixo:
sudo chown -R www-data:www-data /var/www/html/nextcloud
Configurando o servidor Apache no Ubuntu
O próximo passo é configurar um Virtual Host no Apache referente a instalação do Nextcloud. Portanto, você deve criar o seguinte arquivo usando o comando abaixo:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Dentro do arquivo insira as seguintes configurações adaptando os dados caso necessário.
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/var/www/html/nextcloud" ServerName seudominio.com <Directory "/var/www/html/nextcloud/"> Options MultiViews FollowSymlinks AllowOverride All Order allow,deny Allow from all </Directory> TransferLog /var/log/apache2/nextcloud_access.log ErrorLog /var/log/apache2/nextcloud_error.log </VirtualHost>
Após salvar o arquivo você deve desabilitar as configurações padrões e ativar a nova configuração realizada para o Nextcloud.
sudo a2dissite 000-default
sudo a2ensite nextcloud
Para finalizar você deve reiniciar o servidor Apache.
systemctl restart apache2
Finalizando a instalação do Nextcloud no Ubuntu
Certamente é um tutorial um pouco extenso, entretanto, estamos quase finalizando, agora basta navegar até o endereço do seu servidor, seja o IP ou o domínio configurado. Neste momento a tela do nosso servidor Nextcloud será exibida.
Você deve fornecer alguns dados para criar a conta de Administrador e fazer a conexão com o banco de dados usando as informações configuradas anteriormente durante a configuração do banco de dados.
Uma vez que os dados foram inseridos corretamente basta clicar no botão “Concluir Configuração” e aguardar alguns instantes e seu servidor Nextcloud estará pronto!
Agora você pode utilizar essa incrível ferramenta de armazenamento de dados e ter a sua própria nuvem!
Neste momento uma tela parecida com a mostrada abaixo será exibida com alguns arquivos padrões que podem ser removidos. Você pode personalizar as suas pastas, salvar arquivos, fotos e vídeos tudo de forma segura e privada.
Conclusão sobre a instalação do Nextcloud
O Nextcloud certamente é uma excelente opção para armazenar arquivos, suas funções são bem robustas podendo ser aplicado em uso particular ou pequenas empresas, médias e até empresas de grande porte. Portanto, se você ainda não usou o Nextcloud você provavelmente deve testar hoje mesmo!
Espero que tenham gostado deste tutorial de instalação do Nextcloud no Linux!
Lembrando que, para um ambiente de produção, medidas de segurança para servidores web devem ser adotadas.
Em caso de dúvidas ou complementos não deixe de deixar seu comentário abaixo!
5 Comentários
Bem completo o tuturial, obrigado por compartilhar seu conhecimento com a comunidade o mundo é dos altruístas!
Logo mais irei testar seu passo a passo!
Obrigado!
Obrigado Cristhian!
Acredito que conhecimento é algo que deva ser sempre compartilhado, espero ter lhe ajudado e contribuído de alguma forma!
Tutorial ficou top, parabéns Felipe!!
Gostaria de tirar uma dúvida se possível, tenho um servidor de arquivos no Debian com samba4, pensei instalar junto com este servidor. Será que tem como alterar o local padrão da “pasta de dados” do nextcloud para a pasta onde estão os arquivos do samba4 atualmente, para os arquivos do armazenamento remoto ser os mesmos já existentes dos usuários?
Boa tarde Felipe.
Obrigado pelo conhecimento compartilhado, segui passo a passo e deu tudo certo.
Agora gostaria de lhe perguntar se é possível vincular ele ao AD e as pastas que tenho compartilhada na rede, deixar visível aos usuários e com as permissões ja definidas pelo AD.
Sem ter que criar novos usuários e novas pastas.
Bom dia Felipe, tutorial show de bola. Poderia me ajudar em um problema incomum talvez?
Fiz todos os procedimentos de instalação conforme postado. Utilizo o Linux Mint 20.1Ulyssa, e depois de todo procedimento fui realizar as configurações finais em ../config/config.php
Porém este arquivo encontra-se vazio, sem nenhum tipo de configuração. Eu até pensei em utilizar o config.sample.php que contém um default do arquivo, mas me dá erro CAN_INSTALL, como se eu estivesse iniciando a instalação novamente.
Alguma ajuda?