Dispongo di un framework di Ubuntu e Laravel 5 e vedo la schermata bianca nel browser.
Quando cambio le autorizzazioni della directory storage/logs
, è utile, ma devo farlo ogni giorno, a causa della configurazione del registro "giornaliero".Laravel 5 permesso negato durante la scrittura nel file di registro
risposta
Risposta breve:
sudo chmod -R 777 vendor storage
echo "umask 000" | sudo tee -a /etc/resolv.conf
sudo service apache2 restart
risposta completa:
Quando si avvia laravel 5 quadro sul server Apache con abilitato di default l'opzione 'quotidiana' per la creazione di file di registro, a volte si dovrebbe affrontare con ostentazione di scrivere in file di log a causa delle autorizzazioni del file.
In genere, quando si dispone di un progetto php, tutti i file appartengono all'utente www-data
e l'utente corrente non ha bisogno di scrivere su file di log.
Per quanto riguarda Laravel, due processi diversi devono scrivere nei file di registro:
1) Server Apache (utente www-data
) quando si esegue un'operazione nel browser;
2) Processo di php (utente) quando si esegue php artisan something
nella riga di comando.
Ovviamente, è possibile eseguire sudo -u www-data php artisan your_command (come suggerito here) ogni volta che si desidera utilizzare l'artigiano, ma è un po 'fastidioso.
Prima di tutto è necessario fornire le autorizzazioni alle directory di vendita e di archiviazione per l'utente Apache. La maggior parte modo più semplice (ma non il migliore) è quello di eseguire: sudo chmod -R 777 vendor storage
Ora, vediamo cosa succede quando file di log crea in entrambi i casi.
Se inizialmente logfile storage/logs/laravel-2015-mm-dd.log
stato creato attraverso l'errore sollevato dal php artisan something
comando (caso 2), file di log avrà
`-rw-rw-r-- your_user:your_user`
permessi.
se è stato creato dal server apache (caso 1), che ussually lanciare sotto www-data
utente, i permessi sarà simile a questa:
-rw-r-r-- www-data:www-data
Quindi, il mio suggerimento è quello di cambiare permissins per i nuovi file creati da apache.
Aggiungiamo la riga umask 000
al file /etc/resolv.conf
.
echo "umask 000" | sudo tee -a /etc/resolv.conf
Ora,
sudo service apache2 restart
Questo è tutto.
Attenzione, questa soluzione è applicabile solo per l'ambiente di sviluppo , a causa del possibile rischio di sicurezza.
Le autorizzazioni per le cartelle storage
e vendor
devono rimanere a 775
, per ovvi motivi di sicurezza.
Tuttavia, sia il computer che il server Apache devono essere in grado di scrivere in queste cartelle. Es: quando esegui comandi come php artisan
, il tuo computer deve scrivere nel file dei registri in storage
.
Tutto quello che dovete fare è dare la proprietà delle cartelle per Apache:
sudo chown www-data:www-data /path/to/your/project/vendor
sudo chown www-data:www-data /path/to/your/project/storage
allora avete bisogno di aggiungere il computer (a cui fa riferimento è username
) al gruppo a cui il server Apache appartiene. In questo modo:
sudo usermod -a -G www-data userName
più delle volte, è groupName
www-data
ma si potrebbe desiderare di sostituirlo con il gruppo corretto.
Sfortunatamente, il tuo approccio non aiuterebbe. Di default Apache crea nuovi file con permessi 644 (-rw-r -r--). Significa che l'artigiano non può scrivere sullo stesso file se appartiene al gruppo www-data o no. – ademin
Hai ragione. Cancellerò la mia risposta. Tuttavia, dovresti considerare di aggiungere l'utente al gruppo www-data e di mantenere 775, anziché 777 tutta la cartella. Abbiamo bisogno di una soluzione che funzioni anche per la produzione. –
- chmod 777 è in generale un rischio per la sicurezza estremamente rischioso.
chmod 775 per la cartella di archiviazione va bene considerando anche l'utente
appartiene al gruppo di server Web.con -R è estremamente rischioso poiché per i file non è necessario un permesso di esecuzione.
chmod 664 per i file nella memoria interna. chmod 775 per cartelle all'interno
- 1. Autorizzazione negata durante la scrittura del file di registro
- 2. laravel 5 registro middleware dal fornitore di servizi nel pacchetto
- 3. errore: Errore durante la creazione del file di stato/var/lib/logrotate/Stato: Permesso negato
- 4. permesso discarica Postgresql negato
- 5. Laravel 5 - modifica la posizione del registro predefinito, spostamento del file di registro all'esterno dell'app
- 6. Permesso negato per rapporto
- 7. Scrittura di eccezioni nel file di registro di Windows
- 8. rsync - mkstemp fallito: Permesso negato (13)
- 9. git pull: permesso negato
- 10. Git in grado di creare il permesso di file negato
- 11. Scrittura/lettura nel registro eventi di Windows
- 12. permesso negato su Xcode 4
- 13. Laravel 5 cattivo comportamento durante la rimozione della barra finale
- 14. Scrittura in file di registro separati
- 15. Laravel 5 non ha trovato nessun registro errori
- 16. Registro di scrittura Android sul file
- 17. La regola di sicurezza di Firebase dà il permesso negato?
- 18. "Errore di file cancellando: Permesso negato" con rimuovere in C++
- 19. Studio Android: permesso dispositivo/dev/kvm negato
- 20. Scrittura nel registro in un'applicazione C#
- 21. Scrittura% ~ DP0 nel registro utilizzando REG ADD
- 22. Nginx permesso negato durante la lettura di upstream - anche quando eseguito come root
- 23. Errore durante la creazione del progetto Laravel 5
- 24. Errore durante la scrittura del file di registro con RavenDB Embedded in Windows Azure
- 25. Json.net Async durante la scrittura su file
- 26. Permesso di controllo file
- 27. Come disabilitare l'accesso automatico al registro in Laravel 5?
- 28. Accesso negato su TFS - Permesso PendChange
- 29. Android applicazione: il permesso SocketException negato (Nessun file o directory)
- 30. git clone heroku ssh permesso negato
tbh, non dovresti mai voler chmod 777, mai. – Gooey
Qualche aggiornamento su come eseguire questa operazione con un server di produzione? – PickYourPoison