Tutorial - Instalar um servidor web (LAMP) em Debian ou Ubuntu

Bases de conhecimento

Tutorial - Instalar um servidor web (LAMP) em Debian ou Ubuntu


Icons/System/eye-open Created with Sketch. 1156 visualizações 10.05.2023 Cloud / Servidor dedicado (bare metal)

Esta tradução foi automaticamente gerada pelo nosso parceiro SYSTRAN. Em certos casos, poderão ocorrer formulações imprecisas, como por exemplo nomes de botões ou detalhes técnicos. Recomendamos que consulte a versão inglesa ou francesa do manual, caso tenha alguma dúvida. Se nos quiser ajudar a melhorar esta tradução, clique em "Contribuir" nesta página.

Objetivo

A implementação de um servidor web e dos softwares associados permite ao seu servidor cloud alojar páginas web ou aplicações web dinâmicas. A instalação de um LAMP stack constitui uma medida comprovada para o conseguir com as aplicações open source. LAMP significa Linux (OS), Apache (servidor web), MariaDB (sistema de gestão de base de dados) e PHP (linguagem de programação).

Este tutorial explica como instalar um servidor web LAMP no seu serviço OVHcloud.

Requisitos

Este tutorial explica a utilização de uma ou várias soluções da OVHcloud com ferramentas externas e descreve as operações realizadas num contexto preciso. Talvez tenha de adaptar as instruções à sua situação.

Recomendamos que recorra a um prestador de serviços especializado ou que contacte a nossa comunidade se encontrar dificuldades ou dúvidas relativamente à administração, utilização ou implementação de serviços num servidor.

Instruções

Se uma distribuição Debian ou Ubuntu não estiver já instalada no seu servidor, efetue uma reinstalação a partir da sua Área de Cliente OVHcloud. É a melhor forma de ter um sistema limpo para o seu servidor web e as aplicações que se executam.

Siga o guia correspondente para instalar uma distribuição no seu serviço OVHcloud e aceder-lhe através de SSH:

As seguintes instruções são verificadas para Debian 11. Uma vez que o Ubuntu se baseia em Debian, este tutorial deverá também funcionar numa distribuição Ubuntu atual.

Etapa 1: atualização do sistema

Depois de aceder ao servidor via SSH, certifique-se de que todos os pacotes estão atualizados:

sudo apt update && sudo apt upgrade -y

Pode agora instalar os pacotes LAMP atuais.

Uma vez que os pacotes de software são atualizados regularmente, poderá ter de ajustar as seguintes instruções de acordo com as versões mais recentes.

Etapa 2: instalação do Apache

Instale os pacotes Apache (incluindo a documentação):

sudo apt install -y apache2 apache2-doc

Para verificar a instalação, execute o seguinte comando:

sudo systemctl status apache2

Pode também abrir http://server_IP num browser Web. A página "Apache2 Debian Default Page" deve ser apresentada.

Etapa 3: instalar o servidor de bases de dados e PHP

Instale os pacotes de MariaDB e PHP:

sudo apt install -y php php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath mariadb-server

Etapa 4: configuração do servidor de base de dados

MariaDB fornece um script para o ajudar na configuração inicial e para aplicar certos parâmetros relacionados com a segurança.

Para o executar, insira o seguinte comando:

sudo mariadb-secure-installation

Confirme a primeira chamada apoiando-se na Entrada.

De seguida, selecione um método para proteger os acessos ao seu servidor de bases de dados.

Switch to unix_socket authentication [Y/n]

Recomenda-se a utilização do método de autenticação proposto (unix_socket) em vez do acesso por palavra-passe root. Carregue y e depois em Enter. Se optar por utilizar o acesso root ao utilizador, escolha n e defina uma palavra-passe root ao seguinte convite.

Introduza n convite:

Change the root password? [Y/n]

Os convites seguintes relativos às medidas de segurança, confirme-as com y até ao fim do script.

Reloading the privilege tables will ensure that all changmade so far
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Se configurou o acesso MariaDB da forma recomendada (unix_socket), dispõe agora de um acesso de administrador automático (root) ao mesmo sempre que está ligado ao servidor enquanto utilizador com direitos elevados (sudo).

Para preparar uma base de dados para a sua utilização através de um software, pode seguir a secção abaixo. Ao instalar uma aplicação como um CMS (WordPress, Drupal, etc.), deverá fornecer os dados de acesso à base de dados (nome da base de dados, utilizador, palavra-passe). Em termos de boas práticas, evite utilizar a mesma base de dados em diferentes aplicações.

Para instalar o WordPress num servidor, pode seguir este tutorial.

Criar a primeira base de dados e um utilizador de base de dados (opcional)

Abra o shell MariaDB:

sudo mariadb
MariaDB [(none)]> 

Crie uma base de dados:

MariaDB [(none)]> CREATE DATABASE database_name;

Crie um "utilizador" com o nome da sua escolha e conceda-lhe todos os direitos nesta base de dados. Este último poderá então aceder à base de dados e efetuar todas as operações para a aplicação que utiliza esta base de dados. Substitua database_name pelo nome da base de dados, user_name pelo nome da sua escolha e password por uma palavra-passe forte.

MariaDB [(none)]> GRANT ALL ON database_name.* TO 'user_name'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Certifique-se de que as modificações introduzidas são aplicadas e saia a seguir do shell MariaDB:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit;

Etapa 5: configuração da firewall (opcional)

A configuração de uma firewall (iptables) permitirá melhorar a segurança do seu servidor. Este processo pode ser simplificado utilizando o Frontend "Uncomplated Firewall" (UFW) e o seu conjunto de perfis pré-definidos.

Instale o UFW:

sudo apt install ufw

Na lista de aplicações, os perfis em causa devem conter a menção "WWW":

sudo ufw app list | grep WWW
  WWW
  WWW Cache
  WWW Full
  WWW Secure
Ao escolher "WWW Full", autoriza as ligações seguras (porta 443) e os pedidos *http* não seguros (porta 80) para o servidor web.

Para ver quais as portas que são afetadas por um perfil particular, introduza `sudo ufw app info "profile name"`.

Ao executar o seguinte comando, as portas definidas pelo perfil "WWW Full" serão abertas:

```bash
sudo ufw allow 'WWW Full'

Uma vez que todas as portas não explicitamente autorizadas serão bloqueadas após a ativação da firewall, certifique-se de que autoriza igualmente as ligações SSH (porta 22 numa configuração predefinida):

sudo ufw allow 'SSH'

Ative as regras da firewall e verifique a configuração:

sudo ufw enable
sudo ufw status
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
80,443/tcp (WWW Full)      ALLOW IN    Anywhere                  
22/tcp (SSH)               ALLOW IN    Anywhere                  
80,443/tcp (WWW Full (v6)) ALLOW IN    Anywhere (v6)             
22/tcp (SSH (v6))          ALLOW IN    Anywhere (v6)    

Pode ir mais longe com a UFW, por exemplo, se deseja restringir os ataques de denial of service (DOS) ou impedir os pedidos através de certos intervalos de endereços IP. Recorra à documentação oficial da UFW.

Etapa 6: configuração DNS (facultativo)

O acesso à instalação do seu servidor web através de um nome de domínio requer que o associe ao seu serviço. Para isso, deve editar a zona DNS acessível a partir do seu Espaço Cliente OVHcloud, na condição de a OVHcloud ser o seu ambiente de registo e o nome de domínio utilizar os servidores DNS da OVHcloud.

Para saber mais, consulte o guia "Editar uma zona DNS". Se o domínio estiver a ser utilizado atualmente, só poderá configurar os DNS depois de o website ou a aplicação estarem prontos.

Etapa 7: ativar ligações seguras com Let’s Encrypt (facultativo)

Para estabelecer ligações seguras (https), o servidor web deve ser protegido por uma autoridade de certificação oficial como "Let’s Encrypt", que propõe certificados gratuitos. Deverá instalar uma ferramenta cliente (como o Certbot) e configurar o Apache em conformidade. Sem esta etapa, o seu website ou a sua aplicação só podem aceitar pedidos http não encriptados.

Em alternativa, a OVHcloud oferece-lhe a solução SSL Gateway. Para mais informações, consulte o nosso manual.

Certifique-se de que o seu nome de domínio está corretamente indicado na zona DNS, ou seja, associado ao endereço IP do seu servidor.

O comando seguinte instala uma versão do Certbot que funciona mas está obsoleto (certbot 1.12.0). Para instalar a última versão, deve utilizar o gestor de pacotes suplementar snappy. Encontrará as instruções de instalação no site Certbot.

Instale os pacotes necessários para o cliente Certbot:

sudo apt install -y certbot python3-certbot-apache

Obtenha o certificado do seu domínio e do subdomínio "www":

sudo certbot --apache -d domainname.ovh -d www.domainname.ovh

Deverá introduzir um endereço de e-mail válido e aceitar as condições de utilização.

Certbot renova automaticamente os certificados. Não são necessárias outras etapas. No entanto, pode consultar as opções disponíveis para saber mais sobre as funcionalidades do Certbot.

Quer saber mais?

Como transferir e recuperar dados para um servidor através de SFTP

Documentação UFW

Documentação Apache

Documentação MariaDB

Documentação Let's Encrypt

Documentação Certbot

Documentação NGINX (alternativa Apache)

Junte-se à nossa comunidade de utilizadores em https://community.ovh.com/en/.

Artigos relacionados