--- name: Procedimento de Deploy description: Passo a passo completo para deploy no servidor de produção, incluindo upload, sync financeiro, ownership e migrations type: reference originSessionId: 30ca44ac-e884-4293-ab32-57e3f44147be --- ## Procedimento de Deploy - AG-Music ### Ferramentas - **SSH na porta 1907** (não 22): `-P 1907` no plink, `-P 1907` no pscp - Senha root: `QVxdH6beewndm7Vj8nTvKTokr6eFJNvFy` (atualizada 2026-05-06; antiga `YfJo6DxTfxJpoJ1` foi trocada) - `pscp` para upload: `"C:\Program Files\PuTTY\pscp.exe" -P 1907 -pw 'QVxdH6beewndm7Vj8nTvKTokr6eFJNvFy' -batch` - `plink` para comandos remotos: `"C:\Program Files\PuTTY\plink.exe" -P 1907 -pw 'QVxdH6beewndm7Vj8nTvKTokr6eFJNvFy' -batch` - Destino: `root@server.whmservidor.com:/home/agmusiccom/public_html/sistema.agmusic/` ### Passos do Deploy 1. **Verificar arquivos** — `git status --short` para listar modificados e novos 2. **Upload por pasta** — enviar com `pscp` agrupando por diretório (Config, Controllers, Models, Services, Views, etc.) 3. **Pastas novas** — criar no servidor com `plink mkdir -p` antes do upload 4. **Sincronizar financeiro** — `cp .../financeiro/index.php .../financeiro.php` (OBRIGATÓRIO) 5. **Corrigir ownership** — `chown -R agmusiccom:agmusiccom /home/agmusiccom/public_html/sistema.agmusic/` 6. **Rodar migrations** — `php spark migrate` no servidor 7. **Se migration falhar por coluna duplicada** — registrar manualmente no banco via arquivo .sql (cuidado com backslashes no class name, usar Write tool para criar o .sql) ### Cuidados com Migrations Manuais - A tabela `migrations` tem colunas: id, version, class, `group`, namespace, time, batch - O campo `class` precisa de backslashes: `App\Database\Migrations\NomeMigration` - Não usar `echo` do bash para criar SQL com backslashes — usar Write tool para gerar o arquivo .sql - Fazer upload do .sql e executar via `mysql < arquivo.sql` ### Conexão MySQL Produção ``` mysql -u agmusiccom_agmusic '-p&i?Vjpcf2jIU' agmusiccom_agmusic ``` ### Opcache do PHP-FPM (IMPORTANTE) Quando editar `Routes.php`, `Controllers/*`, ou qualquer PHP base, **o opcache do PHP-FPM pode manter versão antiga**. - Sintoma: `php spark routes` mostra a rota nova, mas HTTP retorna 404 "Can't find route" - Solução: `plink ... "/scripts/restartsrv_apache_php_fpm"` - Alternativa mais leve: `touch` no arquivo alterado pode invalidar (nem sempre funciona rápido) - Servidor tem 2 versões: PHP 8.1 e 8.0 (restartsrv reinicia ambas)