2013-07-08 7 views
7

Sto utilizzando vagabondo con box preciso64 & un progetto Laravel 4. Ho impostato la cartella di archiviazione in modo che sia scrivibile (777 funziona solo per me) e ogni volta che viene creato un nuovo file, ad esempio, ho bisogno di impostare manualmente nuovamente il nuovo file per la scrittura.L'autorizzazione non viene mantenuta per i file appena creati mentre si utilizza vagabondo

C'è qualche opzione per impostare i nuovi file creati per essere scrivibili al fine di prevenire questo tipo di problema in futuro?

modifica: Ecco un esempio di ll -la output sulla cartella di sessione contenente nuova sessione (eseguita dalla casella vagabonda), forse sarà d'aiuto.

[email protected]:/myfinalproject$ ll -la ./app/storage/sessions/ 
total 16 
drwxrwxrwx 1 vagrant vagrant 4096 Jul 9 04:29 ./ 
drwxrwxrwx 1 vagrant vagrant 4096 Jun 10 12:57 ../ 
-rwxrwxrwx 1 vagrant vagrant 13 Jun 10 12:57 .gitignore* 
-rw------- 1 vagrant vagrant 229 Jul 9 04:29 sess_u8ov414cgie6v3afmkgn3net33 
+0

Puoi mostrarci il risultato del comando (dopo collegarsi con SSH nella vostra casella vagabondo) 'll -la' sulla directory con i file dopo che sono stati appena creati? – fideloper

+0

Ho modificato la domanda e aggiunto quello che hai chiesto. –

+0

Cosa intendi per 'cartella di archiviazione'? Intendi 'cartella sincronizzata'? – Mingyu

risposta

0

Se si sta parlando di shared folder o synced folder, è possibile utilizzare argomenti opzionali per controllare il permesso:

config.vm.share_folder "shared_folder", "/myfinalproject", "/host/path", :owner => "vagrant", :group => "vagrant" 

Riferimento

http://rubydoc.info/gems/vagrant/Vagrant/Config/VMConfig%3ashare_folder

Fonte

# File 'lib/vagrant/config/vm.rb', line 53 

def share_folder(name, guestpath, hostpath, opts=nil) 
    @shared_folders[name] = { 
    :guestpath => guestpath.to_s, 
    :hostpath => hostpath.to_s, 
    :create => false, 
    :owner => nil, 
    :group => nil, 
    :nfs => false, 
    :transient => false, 
    :extra => nil 
    }.merge(opts || {}) 
end 
+0

Non mi ha aiutato, continuo a ottenere problemi di autorizzazione sui nuovi file creati dal "sistema" come i file di sessione. –

3

Avevo un problema di autorizzazioni molto simile, probabilmente lo stesso. Potrei visualizzare il sito una volta e poi tutte le richieste dopo si tradurrebbe in un errore di autorizzazione.

Prova ad aggiungere il seguente codice al tuo VagrantFile:

# Set the ownership of the app/storage directory 
config.vm.synced_folder "app/storage", "/vagrant/app/storage", :owner => 'www-data', :group => 'www-data' 

Speriamo che si può dire. La seguente fonte mi ha fornito la soluzione: https://github.com/experience/vagrant-laravel-application/blob/master/Vagrantfile

+2

Sfortunatamente non mi aiuta. non importa quello che provo come nome/nome del gruppo (ho provato il mio utente come nel mio host) non funziona nulla ma "vagrant" come proprietario e gruppo. che mi dà lo stesso problema. qualsiasi altro risultato del proprietario o del gruppo: 'Il seguente comando SSH ha risposto con uno stato di uscita diverso da zero.Vagrant presuppone che questo significhi il comando non riuscito!' –

0

Cambialo in modo da sincronizzare l'intera cartella dell'app laravel. Non solo la directory di archiviazione specifica. Ho avuto lo stesso problema di te, stavo solo sincronizzando la directory di archiviazione. Laravel è stato in grado di creare un nuovo file nella directory della sessione, ma in seguito non è riuscito a scrivere sul file appena creato.

Ecco la mia nuova configurazione

config.vm.synced_folder "./", "/var/www", :owner => 'www-data', :group => 'www-data' 
0

Per tutti coloro che possono essere alla ricerca questa domanda, ma sta avendo questo problema quando si utilizza VirtualBox (e si utilizza cartelle condivise):

// Get your user id,gid (in this case I'm root): 
# id 
uid=0(root) gid=0(root) groups=0(root) 

// Add apache to vbox group 
usermod -a -G vboxsf apache 

// Get apache's id,gid 
# id apache 
uid=48(apache) gid=48(apache) groups=48(apache),499(vboxsf) 

// Update fstab mount to use these id,gid 
# vi /etc/fstab 
     [ add this line to the file ] 
     shared-name /path/to/guest/shared/folder/here vboxsf rw,uid=0,gid=0,uid=48,gid=48 0 0 
2

Imposta il tuo utente apache e il gruppo a vagabondo. In Ubuntu, modificare/etc/apache2/envvars e cambiare

export APACHE_RUN_USER=www-data 
export APACHE_RUN_GROUP=www-data 

a

export APACHE_RUN_USER=vagrant 
export APACHE_RUN_GROUP=vagrant 
+0

Questo sembra risolvere problemi costanti con Homestead quando si installa apache al suo interno. Con il file Homestead.yaml non è possibile definire "proprietario" e "gruppo" – dlearious

+0

Sì! Tutte le altre soluzioni suggerivano chmod a 77x. Questa è l'unica soluzione che ha funzionato per me, grazie! –

Problemi correlati