---
name: cwp-webserver
description: Gestão de webservers no CWP — configuração de Apache, Nginx, rebuild de vhosts e restart de serviços via API oficial.
disable-model-invocation: true
---

# /cwp-webserver - WebServers CWP (Documentação Oficial)

Gestão de webservers no CWP. **Zero assumptions, zero hallucinations** - apenas comandos documentados.

**REGRA #38 - ZERO INVENCAO:** NUNCA improvisar comandos. Verificar estado actual ANTES de alterar. Pesquisar wiki CWP se necessario. Usar APENAS scripts oficiais.

---

## Servidor Alvo

| Servidor | IP | MCP | User |
|----------|-----|-----|------|
| **CWP Principal** | 176.9.3.158 | ssh-unified | root |

---

## Documentação Base

- [CWP Admin API](https://wiki.centos-webpanel.com/cwp-admin-api)
- [CWP Scripts](https://wiki.centos-webpanel.com/cwp-scripts)
- [WebServers Update](https://wiki.centos-webpanel.com/webservers-update)

### Documentação Hub (Consultar SEMPRE)

**Manuais locais** (`Hub/06-Operacoes/Documentacao/Manuais/CWP/`):
- `CWP-Manual-Completo.md` - Admin Guide (seccao WebServers Settings, Apache, Nginx) + Wiki (WebServers & Apache) - **503KB**
- `CWP-Guia-do-Utilizador.md` - Painel utilizador (seccao Domains, Redirect) - **72KB**

**Quick Reference:** `Hub/06-Operacoes/Documentacao/Quick-Reference/QR-CWP.md`

**NotebookLM (pesquisa AI sobre toda a documentacao CWP):**
```
mcp__notebooklm__notebook_query notebook_id:"0ded7bd6-69b3-4c76-b327-452396bf7ea7" query:"apache nginx webserver configuracao rebuild"
```

---

## API WebServers (Documentada)

### Rebuild Todas as Configurações

```bash
/scripts/cwp_api webservers rebuild_all
```

### Rebuild Configuração de Utilizador

```bash
/scripts/cwp_api webservers rebuild_user USERNAME
```

### Restart WebServers

```bash
/scripts/cwp_api webservers restart
```

### Reload WebServers

```bash
/scripts/cwp_api webservers reload
```

---

## Scripts Oficiais

| Script | Descrição |
|--------|-----------|
| `/scripts/restart_httpd` | Restart Apache |
| `/scripts/cwpsrv_rebuild_user_conf` | Rebuild config de todos os utilizadores |
| `/scripts/varnish_clear_cache` | Limpar cache Varnish |
| `/scripts/apache_mpm_calculator` | Gerar configuração Apache MPM |

---

## Comandos de Gestão

### Restart Apache

```bash
sh /scripts/restart_httpd
```

### Rebuild Configurações de Utilizadores

```bash
sh /scripts/cwpsrv_rebuild_user_conf
```

### Limpar Cache Varnish

```bash
sh /scripts/varnish_clear_cache
```

### Gerar Configuração MPM

```bash
sh /scripts/apache_mpm_calculator
```

---

## Verificações

### Status Apache

```bash
systemctl status httpd --no-pager | head -15
```

### Status Nginx

```bash
systemctl status nginx --no-pager | head -15
```

### Testar Configuração Apache

```bash
httpd -t
```

### Testar Configuração Nginx

```bash
nginx -t
```

### Ver Virtual Hosts

```bash
httpd -S 2>&1 | grep -E 'port|namevhost' | head -20
```

---

## Workflows

### 1. Rebuild Completo (Problema de Configuração)

```bash
# Rebuild todas as configs
/scripts/cwp_api webservers rebuild_all

# Restart
/scripts/cwp_api webservers restart
```

### 2. Rebuild Utilizador Específico

```bash
# Rebuild apenas um utilizador
/scripts/cwp_api webservers rebuild_user USERNAME

# Reload (sem downtime)
/scripts/cwp_api webservers reload
```

### 3. Após Alterações em Site

```bash
# Reload (mais suave)
/scripts/cwp_api webservers reload
```

### 4. Limpar Cache Varnish (Se Activo)

```bash
sh /scripts/varnish_clear_cache
```

### 5. Verificar Antes de Restart

```bash
# Testar configurações primeiro
httpd -t && nginx -t

# Se OK, restart
/scripts/cwp_api webservers restart
```

---

## REGRA FUNDAMENTAL: ZERO INVENCAO (Regra #38)

**NUNCA improvisar comandos para Apache/Varnish/Nginx/PHP no CWP.**

Protocolo obrigatorio ANTES de qualquer accao:
1. **VERIFICAR** estado actual (systemctl status, logs, config activa)
2. **PESQUISAR** skills /cwp-* para comandos oficiais
3. **PESQUISAR** wiki CWP se skill nao cobre o caso
4. **USAR** apenas scripts oficiais CWP (/scripts/*)
5. **NUNCA** inventar comandos, flags, ou configuracoes

Se nao encontra o comando correcto: **PERGUNTAR ao utilizador**, nunca adivinhar.

Exemplos de invencao proibida:
- Editar ficheiros de config Apache directamente em vez de usar rebuild
- Inventar flags para apachectl que nao estao documentadas
- Alterar parametros de sistema (sysctl, somaxconn) sem pesquisar impacto
- Matar processos (kill -9) sem entender o que esta a correr
- Desactivar modulos/servicos sem confirmar dependencias

---

## Anti-Patterns (NUNCA FAZER)

| Anti-Pattern | Risco | Alternativa |
|--------------|-------|-------------|
| Inventar comandos | PHP desactivado, site offline | Pesquisar skills/wiki primeiro |
| Restart sem testar config | Downtime | `httpd -t` primeiro |
| Editar vhosts manualmente | Sobrescrito | Usar CWP ou rebuild |
| Ignorar erros de teste | Site offline | Corrigir antes restart |
| Restart em vez de reload | Downtime | Reload quando possível |
| Alterar sysctl sem pesquisar | Instabilidade | Verificar documentacao |
| kill -9 em processos CWP | Servicos corrompidos | Usar scripts oficiais |

---

## Diferença Restart vs Reload

| Operação | Efeito | Quando Usar |
|----------|--------|-------------|
| **Reload** | Recarrega config sem parar | Alterações pequenas |
| **Restart** | Para e inicia novamente | Alterações grandes, módulos |

---

## Validação Pós-Operação

```bash
# 1. Verificar serviços activos
systemctl is-active httpd nginx

# 2. Testar localhost
curl -sI localhost | head -5

# 3. Testar domínio específico
curl -sI http://DOMINIO | head -5

# 4. Verificar logs de erro
tail -20 /var/log/httpd/error_log
tail -20 /var/log/nginx/error.log
```

---

## Checklist de Execução

- [ ] Testar configuração (`httpd -t`, `nginx -t`)
- [ ] Escolher reload vs restart
- [ ] Executar comando
- [ ] Verificar serviços activos
- [ ] Testar acesso aos sites
- [ ] Verificar logs se problemas

---

**Versão:** 1.0.0 | **Autor:** Descomplicar®
**Fonte:** wiki.centos-webpanel.com/cwp-admin-api, wiki.centos-webpanel.com/cwp-scripts
