> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://ajuda.fabweb.com.br/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Como instalar Apache + PHP + MySQL (LAMP) no Ubuntu 24

# Introdução
A stack Apache + PHP + MySQL (LAMP) é uma das combinações mais tradicionais e amplamente utilizadas para hospedar aplicações web.
Com ela, você consegue servir sites dinâmicos com estabilidade e compatibilidade com a grande maioria dos sistemas web disponíveis no mercado, incluindo WordPress, Joomla e outros CMSs populares.
Neste tutorial, você aprenderá como instalar o Apache, PHP 8.2 e MySQL no Ubuntu 24 e configurar um Virtual Host para o seu domínio.

---

# Requisitos
Antes de iniciar, você precisa ter:
* Acesso ao servidor via SSH.
* Usuário com privilégios de sudo.
* Servidor rodando Ubuntu 24 atualizado.
* Domínio apontando para o IP do servidor (recomendado).

---

# Informações importantes
* O Apache será utilizado como servidor web.
* O PHP será executado via PHP-FPM.
* O MySQL será utilizado como banco de dados.
* O Virtual Host permite hospedar múltiplos sites no mesmo servidor.
* Certifique-se de que a porta 80 (HTTP) e porta 443 (HTTPS) estejam liberadas no firewall.

---

# Como instalar a stack LAMP

### 1º Passo: Atualizar o sistema
```
sudo apt update && sudo apt upgrade -y
```

---

### 2º Passo: Instalar o Apache
```
sudo apt install -y apache2
```

Verifique se está rodando:
```
sudo systemctl status apache2
```

Habilite o Apache para iniciar automaticamente com o sistema:
```
sudo systemctl enable apache2
```

---

### 3º Passo: Instalar o MySQL
```
sudo apt install -y mysql-server
```

Execute a configuração inicial de segurança:
```
sudo mysql_secure_installation
```

Durante o processo, você será perguntado sobre:
* Configuração do plugin de validação de senha (recomendado ativar).
* Remoção de usuários anônimos (recomendado remover).
* Bloqueio de acesso remoto do root (recomendado manter bloqueado).
* Remoção do banco de dados de teste (recomendado remover).

---

### 4º Passo: Instalar o PHP e extensões
Primeiro, adicione o repositório com as versões mais recentes do PHP:
```
sudo add-apt-repository ppa:ondrej/php
```

Será necessário confirmar a adição do repositório. Após concluir, execute:
```
sudo apt update
```

Instale o PHP e suas extensões:
```
sudo apt install -y php8.2 php8.2-cli php8.2-mysql php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath php8.2-imagick php8.2-intl php8.2-soap php8.2-redis php8.2-imap php8.2-fpm libapache2-mod-php8.2
```

Verifique a versão instalada:
```
php -v
```

Você pode também instalar o Certbot para criar certificados SSL gratuitos. Neste caso, execute:
```
sudo apt install python3-certbot-apache
```

---

# Como configurar o Virtual Host

### 5º Passo: Criar o diretório do site
```
sudo mkdir -p /var/www/seudominio.com.br
```

Definir permissões:
```
sudo chown -R www-data:www-data /var/www/seudominio.com.br
```

⚠️ Lembre-se de alterar **seudominio.com.br** na criação da pasta para o nome correto de seu domínio.

---

### 6º Passo: Criar arquivo de teste
```
nano /var/www/seudominio.com.br/index.php
```

Conteúdo:
```
<?php phpinfo();
```

---

### 7º Passo: Criar configuração do Virtual Host
```
sudo nano /etc/apache2/sites-available/seudominio.com.br.conf
```

Adicione:
```
<VirtualHost *:80>
    ServerName seudominio.com.br
    ServerAlias www.seudominio.com.br
    DocumentRoot /var/www/seudominio.com.br
    
    <FilesMatch \.php$>
         SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost"
    </FilesMatch>

    <Directory /var/www/seudominio.com.br>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/seudominio.com.br-error.log
    CustomLog ${APACHE_LOG_DIR}/seudominio.com.br-access.log combined
</VirtualHost>
```

⚠️ Pode ser necessário fazer algumas alterações no modelo base acima conforme o tipo de site que pretende hospedar.

---

### 8º Passo: Ativar o site e os módulos necessários
Ative o módulo `rewrite` do Apache (necessário para a maioria dos CMS):
```
sudo a2enmod rewrite
```

Ative o Virtual Host:
```
sudo a2ensite seudominio.com.br.conf
```

Desative o site padrão do Apache (opcional, mas recomendado):
```
sudo a2dissite 000-default.conf
```

Teste a configuração:
```
sudo apache2ctl configtest
```

Se o teste estiver ok, reinicie o Apache:
```
sudo systemctl reload apache2
```

---

### 9º Passo: Ativar o SSL do site
Após fazer o apontamento correto de seu domínio para o IP do servidor, você poderá gerar o SSL gratuito usando o comando abaixo:
```
certbot --apache -d seudominio.com.br -d www.seudominio.com.br
```

Será necessário confirmar seu e-mail, aceitar os termos e condições de uso do Let's Encrypt e algumas ações para concluir a emissão.

---

### Ajustes de firewall (se necessário)
Lembre-se de liberar o firewall para permitir o acesso HTTP e HTTPS:
```
sudo ufw allow 'Apache Full'
```

---

# Testar o funcionamento
Acesse no navegador:
```
http://seudominio.com.br
```

Se tudo estiver correto, a página de informações do PHP será exibida.

---

# Informações adicionais
* O diretório padrão dos sites fica em `/var/www/`.
* Cada domínio deve ter seu próprio arquivo de Virtual Host em `/etc/apache2/sites-available/`.
* O PHP pode variar de versão (php8.2, php8.3, etc.), ajuste conforme necessário.
* Sempre valide as configurações com `apache2ctl configtest` antes de reiniciar.
* Para produção, recomenda-se configurar HTTPS com SSL.
* O arquivo `.htaccess` exige que a diretiva `AllowOverride All` esteja ativa no Virtual Host, conforme configurado neste tutorial.

---

Ficou com alguma dúvida? Nossa equipe está à disposição nos canais de atendimento para lhe auxiliar.

Precisa de um servidor para colocar sua stack LAMP em produção? Conheça os planos de [Servidor VPS Linux](https://fabweb.com.br/servidor-linux-nvme/) da Fabweb e tenha infraestrutura estável, com suporte especializado e monitoramento inclusos.