2015-02-08 15 views
5

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:

  1. 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 gruppo www-data? Quando inizio git, creo il progetto usando il compositore, configuro la chiave pubblica/privata SSH, devo appartenere al gruppo www-data o devo essere sudo o cosa? Nel mio server di produzione, ho provato a utilizzare sudo per configurare tutto in qualche modo rende più facile fare tutto quanto sopra, ma è la migliore pratica?

  2. 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 e sudo 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 cartella app/storage, quindi alla fine devo impostarla su 777 o 775 se io ' m fortunato

  3. cartelle 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 su 777 o modificato il gruppo su www-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?

  4. 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 cartella public, potrebbe essere necessario scrivere solo in una sottodirectory in public o forse a volte è necessario creare una cartella basata su un certo id 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 o jlapp/swaggervel, che sembra usare la stessa facciata File, 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.

  5. 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

+0

Oh un'altra cosa, per favore non Homestead risposta -.- –

risposta

Problemi correlati