Permissões de Arquivo & Armazenamento
As permissões de arquivo corretas são fundamentais tanto para a segurança quanto para o funcionamento adequado.
Permissões Necessárias
| Caminho | Permissão | Proprietário | Finalidade |
|---|---|---|---|
Raiz do projeto (/var/www/feedbackpulse-saas/) | 755 | www-data | Arquivos da aplicação |
storage/ | 775 | www-data | Logs, cache, sessões, uploads |
storage/app/public/ | 775 | www-data | Uploads públicos (logos, fotos) |
storage/framework/cache/ | 775 | www-data | Cache da aplicação |
storage/framework/sessions/ | 775 | www-data | Sessões de usuário |
storage/framework/views/ | 775 | www-data | Views Blade compiladas |
storage/logs/ | 775 | www-data | Logs da aplicação |
bootstrap/cache/ | 775 | www-data | Cache de bootstrap do framework |
.env | 640 | www-data | Configuração sensível |
Definir Permissões (Linux)
cd /var/www/feedbackpulse-saas
# Definir proprietário
sudo chown -R www-data:www-data .
# Arquivos: 644, Diretórios: 755
sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chmod 755 {} \;
# Diretórios com permissão de escrita
sudo chmod -R 775 storage bootstrap/cache
# Proteger o arquivo .env
sudo chmod 640 .env
Substitua
www-datapelo usuário do seu servidor web:
- Apache no Ubuntu:
www-data- Nginx no Ubuntu:
www-data- Apache no CentOS:
apache- Nginx no CentOS:
nginx- Laragon no Windows: Nenhuma alteração de permissão necessária
O Link Simbólico de Armazenamento
O Laravel usa um link simbólico para tornar os arquivos em storage/app/public/ acessíveis via web:
public/storage -> storage/app/public/
Criar o Link
php artisan storage:link
Verificar o Link
ls -la public/storage
# Deve mostrar: public/storage -> /var/www/feedbackpulse-saas/storage/app/public
O que é Armazenado
| Diretório | Conteúdo |
|---|---|
storage/app/public/logos/ | Logos das empresas dos tenants |
storage/app/public/products/ | Imagens dos produtos |
storage/app/public/submissions/ | Fotos enviadas com feedback |
storage/app/public/avatars/ | Fotos de perfil dos usuários |
storage/app/public/landing/ | Assets da landing page |
Gerenciamento de Espaço em Disco
Monitorar Uso de Disco
# Verificar uso geral de disco
df -h
# Verificar uso de armazenamento do FeedbackPulse
du -sh storage/app/public/
du -sh storage/logs/
du -sh storage/framework/cache/
Rotação de Logs
Os logs do Laravel podem crescer bastante. Configure a rotação de logs:
sudo nano /etc/logrotate.d/feedbackpulse
/var/www/feedbackpulse-saas/storage/logs/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
copytruncate
}
Limpar Cache
cd /var/www/feedbackpulse-saas
# Limpar cache da aplicação
php artisan cache:clear
# Limpar views compiladas
php artisan view:clear
# Limpar cache de rotas
php artisan route:clear
# Limpar cache de configuração
php artisan config:clear
# Tudo de uma vez
php artisan optimize:clear