# Nextcloud com NGINX: requisitos, instalação e configuração

A execução do Nextcloud num servidor NGINX permite uma utilização eficiente dos recursos do software na nuvem e oferece opções de implementação flexíveis. A instalação requer tanto um ambiente de sistema compatível como uma configuração adequada. Além disso, para integrar o Nextcloud sem problemas no ambiente NGINX, é necessário efetuar alguns ajustes específicos.

## Nextcloud e NGINX: uma combinação poderosa para a sua nuvem

O NGINX é um software de servidor web baseado no princípio do código aberto, que também pode ser utilizado como [proxy reverso](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/proxy-reverso-nginx/), balanceador de carga e cache HTTP. A aplicação foi desenvolvida em grande parte pelo programador russo Igor Sysoev e foi publicada sob a licença BSD (uma variante do Unix).

O NGINX foi concebido para gerir um **grande número de ligações em simultâneo**. Para tal, utiliza uma arquitetura orientada para eventos e não bloqueante. Ao contrário dos servidores web tradicionais, que criam threads ou processos para cada ligação, o NGINX utiliza um **processo mestre** (master process) e vários processos de trabalho (worker processes). O processo mestre é responsável pela gestão da configuração, enquanto os processos de trabalho gerem os pedidos recebidos dos clientes.

A combinação do Nextcloud com o NGINX oferece várias vantagens que são especialmente relevantes para ambientes de servidor com elevadas exigências de desempenho. Entre os benefícios mais notáveis, destacam-se os seguintes:

- **Utilização eficiente dos recursos**: o NGINX é capaz de gerir inúmeras ligações simultâneas de forma altamente otimizada.
- **Elevada escalabilidade**: permite distribuir a carga de forma flexível e pode ser facilmente ampliado através da adição de servidores adicionais.
- **Opções de personalização**: graças à sua estrutura modular, o NGINX pode ser adaptado a uma variedade de casos de utilização.
- **Desempenho estável sob carga**: mesmo com elevada procura do servidor, o NGINX continua a funcionar de forma fiável e a estar constantemente disponível.

Nota [O Nextcloud](https://www.ionos.com/pt-pt/digitalguide/servidores/ferramentas/o-que-e-o-nextcloud/) é oficialmente compatível apenas com o Apache 2.x como servidor web e não oferece suporte oficial ao NGINX. Por isso, a utilização do Nextcloud com o NGINX é recomendada sobretudo para utilizadores com experiência na configuração de servidores web.

## Quais são os requisitos necessários para instalar o Nextcloud com o NGINX?

Para instalar o Nextcloud com o NGINX, o essencial é ter um servidor com Ubuntu, Debian ou outro sistema compatível já instalado. O seu servidor deve ter, no mínimo, **4 GB de RAM** e 2 núcleos de CPU. Se pretender utilizar muitas aplicações do Nextcloud ou ter muitos utilizadores, recomendo um sistema com mais núcleos de CPU e mais memória RAM. Além disso, certifique-se de que dispõe de espaço de armazenamento suficiente para os seus dados e cópias de segurança.

Para a instalação, também é necessário um **banco de dados compatível, como o MySQL ou o MariaDB**, bem como a linguagem de script PHP (versão 8.1, no mínimo; recomenda-se a versão 8.3). No banco de dados são armazenados tanto os utilizadores como os plugins, os seus dados e os metadados dos ficheiros. O PHP é essencial para o processamento e a execução das funções do Nextcloud. Além disso, para poder instalar o Nextcloud, é necessária uma conta com permissões de administrador.

## Nextcloud com o NGINX como servidor web: instalação e configuração

Antes de instalar o Nextcloud, já realizámos as tarefas preliminares essenciais. Neste guia, partimos de um servidor Ubuntu no qual o sistema operativo já foi instalado, juntamente com todas as dependências necessárias. Mais concretamente, trata-se do NGINX como servidor web, do MySQL como base de dados e do PHP na versão 8.3 com todas as extensões necessárias.

Também instalámos o Certbot para podermos instalar facilmente um certificado SSL com o Let’s Encrypt. Além disso, partimos do princípio de que dispõe de um domínio próprio, para poder aceder ao Nextcloud através de um URL personalizado em vez de um endereço IP.

Dica Noutros artigos, mostramos-lhe como instalar [o Nextcloud no Ubuntu 22.04](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/nextcloud-ubuntu-2204/) ou como configurar [o Nextcloud no Kubernetes](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/nextcloud-kubernetes/). Além disso, temos um guia detalhado para instalar e configurar [o Nextcloud no Debian 12](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/nextcloud-debian-12/).

### Descarregue o Nextcloud e descompacte-o

Primeiro, aceda ao diretório do utilizador no seu servidor e crie uma pasta chamada «nextcloud». É aqui que irá descarregar os ficheiros de instalação do Nextcloud. Pode fazê-lo manualmente a partir do [changelog do Nextcloud](https://nextcloud.com/changelog/ "Nextcloud Changelog"), mas é mais fácil se utilizar o seguinte comando curl:

```bash
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip
```

Nota Se preferires instalar outra versão, certifica-te de que utilizas o URL correto do ficheiro ZIP no comando de download.

Descompacte o ficheiro, mova a pasta para `./var/www` (que funciona como diretório raiz) e defina os direitos de acesso dos ficheiros. Para tal, utilize estes comandos:

```bash
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloud
```

### Configurar a base de dados

Para configurar a base de dados MySQL, execute o comando `sudo mysql_secure_installation`. Digite «y» para definir a sua palavra-passe de root (`VALIDATE PASSWORD`) e selecione «2» para uma palavra-passe segura (`STRONG`), que poderá configurar a seguir. Prima «y» para confirmar a palavra-passe e novamente «y» para eliminar utilizadores anónimos, proibir acessos remotos, eliminar a base de dados de teste e recarregar as tabelas de privilégios.

Em seguida, deve fazer o seguinte:

1. Inicie sessão como utilizador root na base de dados com o comando `sudo mysql -u root -p`.
2. Crie a base de dados do Nextcloud com o comando `create database nextcloud;`.
3. Crie a conta de utilizador do Nextcloud através do comando `create user 'nextcloud'@'localhost' identified by <new_password>;`.
4. Conceda todas as permissões da base de dados ao utilizador com o comando `grant all privileges on nextcloud.* to 'nextcloud'@'localhost';`.
5. Em seguida, atualize as permissões com `flush privileges;` e saia da consola da base de dados com o comando `exit`.

Depois de a base de dados ter sido criada com sucesso, introduza os dados de acesso (`DB_NAME`, `DB_USER`, `DB_PASSWORD`) no ficheiro de configuração do Nextcloud. Para tal, abra o ficheiro `./var/www/nextcloud/config/config.php` e adicione as seguintes entradas relevantes:

```txt
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
```

### Desativar a configuração padrão do NGINX

Antes de integrar o Nextcloud no NGINX, certifique-se de que não existe nenhum ficheiro de configuração que possa interferir com a instalação. Por predefinição, é possível que ainda exista um ficheiro de configuração chamado `default` em `./etc/nginx/sites-enabled/`, que poderá impedir que o Nextcloud seja carregado corretamente. Este ficheiro deve ser eliminado utilizando o seguinte comando:

```bash
sudo rm /etc/nginx/sites-enabled/default
```

Com o seguinte comando, garante que a nova configuração do Nextcloud está ativa:

```bash
sudo ln -s /etc/nginx/sites-available/ejemplodominio.es /etc/nginx/sites-enabled/
```

### Configurar o servidor NGINX

Para configurar o NGINX como servidor web, é necessário que já tenha um domínio configurado e associado ao endereço IP do servidor. Certifique-se também de que a configuração DNS está correta. Crie o ficheiro de configuração do NGINX no diretório `sites-available` utilizando o [comando Linux sudo](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/linux-sudo/) `sudo touch /etc/nginx/sites-available/ejemplodominio.es` (utilizámos a URL `ejemplodominio.es`).

Abra o ficheiro de configuração num editor de texto como o Vim com `sudo vim /etc/nginx/sites-available/ejemplodominio.es` e copie o bloco de código da secção «Nextcloud in a subdir of the NGINX webroots» da [página oficial do Nextcloud para configurar o NGINX](https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html) e cole-o na configuração com o comando `./etc/nginx/sites-available/ejemplodominio.es`.

Como o certificado HTTPS será adicionado com o Certbot, também deve eliminar todas as linhas relacionadas com o SSL do ficheiro de configuração do NGINX. O Certbot encarregar-se-á de realizar automaticamente a configuração, pelo que não é necessário configurá-la manualmente.

### Configurar o certificado SSL com o Certbot

Para que o Nextcloud funcione através de uma ligação HTTPS segura, é necessário configurar um certificado SSL (neste caso, da Let’s Encrypt). Primeiro, é preciso configurar o firewall para permitir ligações HTTPS e SSH. Utilize o seguinte comando com o sudo:

```bash
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
```

Em seguida, utilize `sudo ufw enable` para ativar o firewall e verifique se as ligações são permitidas com o `sudo ufw status`. Depois disso, já pode gerar o certificado SSL com o Certbot:

```bash
sudo certbot --nginx -d ejemplodominio.es
```

Introduza o seu endereço de e-mail para a renovação dos certificados, aceite os termos de utilização e selecione a opção 2 para redirecionar automaticamente todo o tráfego HTTP para HTTPS. Os ficheiros do certificado são guardados no diretório `.etc/letsencrypt/live/ejemplodominio.es/`. O ficheiro `fullchain.pem` contém o certificado SSL, enquanto o ficheiro `privkey.pem` contém a chave privada. Ambos devem ser adicionados ao ficheiro de configuração do NGINX:

```txt
ssl_certificate /etc/letsencrypt/live/ejemplodominio.es/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ejemplodominio.es/privkey.pem;
```

Uma vez que o Certbot alterou o ficheiro de configuração, é necessário voltar a adicionar o atributo `ssl` entre `443` e `http2`. O bloco correspondente deverá ficar assim:

```txt
server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name ejemplodominio.es;
```

### Reiniciar os serviços e aceder ao Nextcloud

Para que as alterações tenham efeito, é necessário reiniciar os serviços PHP-FPM e NGINX executando este comando:

```bash
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.service
```

Em seguida, abra o seu navegador e aceda ao seu domínio (no nosso caso, exemplodominio.es). Se tudo estiver configurado corretamente, irá ver a página inicial do Nextcloud.

Nota Se o Nextcloud não estiver a funcionar, é possível que o seu domínio ainda não esteja registado como domínio de confiança do Nextcloud no `config.php`. Para resolver o problema, adicione o seu domínio nesse ficheiro.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/nextcloud-nginx/](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/nextcloud-nginx/) for AI/LLM consumption.