# 🌐 INSTALAÇÃO EM CPANEL (Hospedagem Compartilhada)

## ✅ Checklist Inicial

Antes de começar, verifique com sua hospedagem:

- [ ] PHP 8.2 ou superior disponível?
- [ ] Composer está instalado?
- [ ] MySQL 5.7+ disponível?
- [ ] SSH access disponível?
- [ ] Limite de memória adequado (mínimo 256MB)?
- [ ] Limite de tempo de execução (min 30 segundos)?

---

## 📋 PASSO 1: Acessar cPanel

1. Abra: `https://seu-dominio.com.br:2083` (ou IP do cPanel)
2. Login com suas credenciais
3. Você verá o painel cPanel

---

## 📦 PASSO 2: Criar Banco de Dados MySQL

### No cPanel:

1. Vá até **Databases** → **MySQL Databases**
2. Em "Create New Database":
   - Database name: `siged_local`
   - Clique "Create Database"

3. Em "MySQL Users":
   - Username: `siged_user`
   - Password: (gere uma senha forte)
   - Clique "Create User"

4. Em "Add User to Database":
   - Selecione o usuário e banco criados
   - Marque "All Privileges"
   - Clique "Add User to Database"

**Salve essas informações:**
```
Banco:     siged_local
Usuário:   seu_usuario_siged_user
Senha:     sua_senha_gerada
Host:      localhost
```

---

## 🚀 PASSO 3: Fazer Upload do Projeto

### Via File Manager (cPanel):

1. Acesse **File Manager**
2. Vá para `public_html` (ou onde quer instalar)
3. Clique "Upload"
4. Upload de `C:\Users\Win10\Desktop\ATUALIZAÇÃO SIGED\Conversão SIGED para Laravel`
   - Ou via FTP/SFTP

**OU via Terminal (recomendado):**

Abra terminal no seu computador:

```bash
# Instalar via Git (se disponível)
cd public_html
git clone https://github.com/seu-repo/siged-militar.git .

# OU via SCP (copiar arquivos)
scp -r "C:\Users\Win10\Desktop\ATUALIZAÇÃO SIGED\Conversão SIGED para Laravel\*" usuario@seu-servidor:/home/usuario/public_html/
```

---

## ⚙️ PASSO 4: Configurar Versão PHP

### No cPanel:

1. Vá para **Select PHP Version**
2. Escolha **PHP 8.2** (ou superior disponível)
3. Adicione essas extensões (marcar):
   - ✅ pdo
   - ✅ pdo_mysql
   - ✅ mysql
   - ✅ curl
   - ✅ gd
   - ✅ zip
   - ✅ bcmath
   - ✅ json
   - ✅ mbstring
   - ✅ xml
   - ✅ tokenizer
   - ✅ fileinfo

4. Clique "Set as current"

---

## 🔌 PASSO 5: Acessar via SSH (Terminal)

### No cPanel:

1. Vá até **Advanced** → **Terminal**
2. Ou use seu cliente SSH (PuTTY, MobaXterm, etc)

```bash
ssh usuario@seu-servidor.com.br
# Digite sua senha
```

---

## 📥 PASSO 6: Instalar Dependências (via SSH)

```bash
# Ir até o diretório do projeto
cd public_html

# Verificar PHP
php --version

# Verificar Composer
composer --version

# Se Composer não estiver instalado:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
```

### Instalar Dependências PHP:

```bash
# Instalar via Composer
composer install --no-dev --optimize-autoloader

# Isso vai criar a pasta vendor/
# Pode levar 2-5 minutos
```

---

## 🔐 PASSO 7: Criar Arquivo .env

```bash
# No SSH, navegue até o projeto
cd ~/public_html

# Copiar arquivo de exemplo
cp .env.example .env

# Editar .env com suas credenciais do banco
nano .env
```

**Edite estas linhas no .env:**

```env
APP_NAME="SIGED Militar"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://seu-dominio.com.br

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=siged_local
DB_USERNAME=siged_user
DB_PASSWORD=sua_senha_gerada

# Deixe o resto como está
```

**Para sair do nano:**
- Pressione `Ctrl + X`
- Pressione `Y` (yes)
- Pressione `Enter`

---

## 🔑 PASSO 8: Gerar Chave da Aplicação

```bash
php artisan key:generate
```

---

## 🗄️ PASSO 9: Executar Migrations (criar tabelas)

```bash
php artisan migrate --force
```

**Se der erro de conexão:**
- Verifique se `DB_HOST` está correto (`localhost`)
- Verifique credenciais do banco
- Teste conexão:
  ```bash
  php artisan tinker
  # Digite: DB::connection()->getPDO();
  # Deve retornar PDO object
  ```

---

## 🌱 PASSO 10: Popular Banco com Dados Iniciais

```bash
php artisan db:seed --class=PapelPermissaoSeeder
```

---

## 📊 PASSO 11: Configurar Permissões de Pastas

```bash
# Dar permissão de escrita nas pastas importantes
chmod -R 755 storage
chmod -R 755 bootstrap/cache
chmod -R 755 public

# Se der erro, tente:
chmod -R 777 storage
chmod -R 777 bootstrap/cache
```

---

## 🌐 PASSO 12: Configurar Domínio Raiz

### No cPanel → Addon Domains (ou main domain):

Se o projeto está em `/public_html`, configure:

1. **Document Root** para apontar para: `/public_html/public`

**OU se não conseguir alterar:**

Crie um arquivo `.htaccess` em `public_html`:

```apache
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
```

---

## ✅ PASSO 13: Testar Aplicação

Abra no navegador:

```
https://seu-dominio.com.br
```

Se tudo funcionou, você verá o login do SIGED!

**Credenciais:**
```
Email:    admin@siged.local
Senha:    password123
```

---

## ⚠️ POSSÍVEIS PROBLEMAS

### Problema 1: "Composer not found"
```
Solução:
1. Verificar PHP version: php --version
2. Instalar Composer:
   curl -sS https://getcomposer.org/installer | php
   mv composer.phar /usr/local/bin/composer
```

### Problema 2: "SQLSTATE[HY000]: General error"
```
Solução:
1. Verificar arquivo .env
2. Verificar credenciais do banco
3. Rodar: php artisan config:cache
```

### Problema 3: "Class not found" ou "500 error"
```
Solução:
1. Rodar: php artisan cache:clear
2. Rodar: php artisan config:clear
3. Rodar: composer dump-autoload -o
```

### Problema 4: "Permission denied" na pasta storage
```
Solução:
chmod -R 777 storage
chmod -R 777 bootstrap/cache
```

### Problema 5: "Blank page" ou "Whoops! There was an error"
```
Solução:
1. Verificar logs: tail -f storage/logs/laravel.log
2. Ativar debug: APP_DEBUG=true no .env
3. Recarregar página
```

### Problema 6: "404 Not Found" em rotas
```
Solução:
1. Verificar mod_rewrite ativo: a2enmod rewrite
2. Testar: php artisan serve (local)
3. Verificar .htaccess existe em public_html
```

---

## 🔧 COMANDOS ÚTEIS (SSH)

```bash
# Ver logs da aplicação
tail -f storage/logs/laravel.log

# Limpar caches
php artisan cache:clear
php artisan config:cache
php artisan view:clear

# Rodar testes
php artisan test

# Ver status do banco
php artisan tinker
# Dentro do tinker:
DB::connection()->getPDO();
DB::table('users')->count();

# Sair do tinker
exit;

# Atualizar composer
composer update

# Verificar versão Laravel
php artisan --version
```

---

## 🚀 CHECKLIST FINAL

```
[ ] Banco de dados criado
[ ] Usuário MySQL criado
[ ] Projeto uploadado em public_html
[ ] PHP 8.2+ configurado
[ ] Composer instalado
[ ] .env configurado com credenciais
[ ] key:generate executado
[ ] Migrations executadas
[ ] Seeder executado
[ ] Permissões ajustadas
[ ] .htaccess configurado
[ ] Domínio apontando correto
[ ] Teste: https://seu-dominio.com.br/
```

---

## 📞 Informações para sua Hospedagem

Quando contactar o suporte, mencione:

- Preciso instalar uma aplicação Laravel 11
- Versão PHP recomendada: 8.2+
- Extensões necessárias: pdo, pdo_mysql, curl, zip, bcmath, mbstring
- Banco de dados: MySQL 5.7+
- SSH access necessário
- Documentação: https://laravel.com/docs/11.x/deployment

---

## 🎯 PRÓXIMAS ETAPAS

Após a instalação funcionar:

1. **Acesse** https://seu-dominio.com.br
2. **Login** com admin@siged.local / password123
3. **Leia** README_MASTER.md para documentação completa
4. **Explore** os 17 módulos do sistema
5. **Teste** funcionalidades principais

---

## 💡 DICAS DE PERFORMANCE

Em hospedagem compartilhada, otimize:

```bash
# Otimizar autoloader
composer dump-autoload -o

# Cache de config
php artisan config:cache

# Cache de rotas
php artisan route:cache

# Cache de views (cuidado!)
php artisan view:cache
```

---

## 📚 DOCUMENTAÇÃO COMPLETA

Todos estes arquivos estão em: `C:\Users\Win10\Desktop\ATUALIZAÇÃO SIGED\Conversão SIGED para Laravel\`

- `README_MASTER.md` - Guia principal
- `CHECKLIST_PRODUCAO.md` - Checklist pré-produção
- `DOCKER_DEPLOYMENT.md` - Deploy (mesmo em cPanel)
- Todos os outros guias técnicos

---

## ✅ PRONTO!

Sua aplicação SIGED Militar está instalada no cPanel! 🎉

**Próximo acesso:**
```
https://seu-dominio.com.br
Email: admin@siged.local
Senha: password123
```

