Ho provato a cercare su questa domanda in precedenza, ma sembra che non ci sia alcun luogo dove è spiegato a fondo, per lo più solo i problemi come l'autorizzazione app/storage
non sono stati impostati in modo che il server web possa scrivi il file, ma il mio problema sembra più grande e più fondamentale, spero che qualcuno possa spiegare a fondo come questo dovrebbe essere impostato, preferibilmente senza bisogno di impostare il permesso su 777
.PHP-FPM + Laravel + Nginx + permesso di Ubuntu
Quindi il mio stack è Ubuntu 14.04, PHP 5.6 con PHP-FPM perché io uso nginx 1.4.6 e io uso laravel 4.2 come quadro, ow e uno più che uso Git come strumento di controllo delle versioni. Allora, qual è il necessario passo-passo per consentire le seguenti:
Impostazione del progetto iniziale, Git e Nginx:
Quindi, per quanto ne so, Nginx è impostato per utilizzare nome utente
www-data
come predefinito, giusto? Significa che devo assegnare il mio utente, ad es.kevin
al gruppowww-data
? Quando inizio git, creo il progetto usando il compositore, configuro la chiave pubblica/privata SSH, devo appartenere al gruppowww-data
o devo esseresudo
o cosa? Nel mio server di produzione, ho provato a utilizzaresudo
per configurare tutto in qualche modo rende più facile fare tutto quanto sopra, ma è la migliore pratica?Fare
app/storage
scrivibile per server web:Penso che questo sia il secondo e più importante per laravel, perché a meno che questo funziona laravel non sarà in esecuzione, la mia conoscenza è che questa cartella deve essere scrivibile dal server web (nginx), quindi ho bisogno di impostare questo a
sudo chown -R www-data:www-data app/storage
esudo chmod -R 664 app/storage
giusto? Ma in qualche modo questo non sembra funzionare tutto il tempo perché durante il mio sviluppo a volte si dirà che una cache di una vista non può essere scritta nella cartellaapp/storage
, quindi alla fine devo impostarla su777
o775
se io ' m fortunatocartelle pubbliche, o il luogo dei miei beni
Qui ho qualche incongruenza troppo, ho configurarlo alla fine per
777
per garantire che tutti i miei file sono accessibili da nginx. A volte nginx mi dirà che alcune immagini nella mia cartella di risorse sembrano essere vietate e restituiranno solo HTTP 200 se ho impostato su777
o modificato il gruppo suwww-data:www-data
, devo cambiare il permesso o il gruppo per ogni immagine che ho creato da Gimp, Photoshop, o quando ho scaricato da Dropbox o dalla mia email quando il mio grafico ha disegnato nuove icone?File Upload
Così da qualche parte intorno al tempo, la gente sarà in grado di caricare ad esempio l'immagine del profilo, o quando ho posto un blog posso caricare una foto, vuol dire che ad un certo punto la lo script di caricamento file sposterà il file dalla cartella
/tmp
alla mia cartellapublic
, potrebbe essere necessario scrivere solo in una sottodirectory inpublic
o forse a volte è necessario creare una cartella basata su un certoid
e spostare il file nella directory, la maggior parte di tempo avrò un errore che la directory sembra non essere scrivibile o qualche errore di autorizzazione in quanto tale durante l'esecuzione dello script. Questo significa che il processo PHP deve essere eseguito anche con determinate autorizzazioni? O significa che la directory deve avere una certa autorizzazione? Questo problema si riferisce al servizio Nginx o si riferisce al processo PHP ?Ho l'esperienza di utilizzare pacchetti come
roumen/sitemap
ojlapp/swaggervel
, che sembra usare la stessa facciataFile
, ma in qualche modo non hanno alcun problema con il permesso, cerco di replicare il loro comportamento codice, ma mi ha colpito il problema sopra.coda, artigiano, script eseguito basato altra riga di comando
scorso, sono riga di comando basata script eseguito, ciò comporta lo stesso script che esegue dall'interazione con server web, come ad esempio il file caricare sopra, o devo prepararmi per altre incongruenze?
Grazie, se qualcuno può spiegarmi questo. Penso che se lo capisco, creerò un post sul blog o qualcosa del genere, lo apprezzerò ragazzi! : D
Oh un'altra cosa, per favore non Homestead risposta -.- –