J'utilise Vagrant avec une boîte précise64 et un projet Laravel 4. J'ai défini un dossier de stockage pour être écritable (777 ne fonctionne que pour moi) et chaque fois qu'un nouveau fichier créé, session par exemple, j'ai besoin de définir manuellement le nouveau fichier pour être écritable.
Y a-t-il une option pour Définissez les fichiers nouvellement créés pour être écritable afin d'empêcher ce type de problème dans le futur? p>
EDIT: Voici un exemple de sortie LL -LA sur le dossier de session contenant une nouvelle session (effectuée à partir de la case Vagrant. ), peut-être que ça va aider. p>
5 Réponses :
Si vous parlez de dossier partagé code> ou
dossier synchronisé code>, vous pouvez utiliser des arguments facultatifs pour contrôler l'autorisation:
# 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
Je n'ai pas aidé, je continue à obtenir des problèmes d'autorisation sur de nouveaux fichiers créés par le «système» tel que des fichiers de session.
J'avais une question très similaire, éventuellement la même, la question des autorisations. Je pourrais afficher le site une fois, puis toutes les demandes suivantes entraîneraient une erreur d'autorisation.
Essayez d'ajouter le code suivant à votre VagrantFile: P>
# Set the ownership of the app/storage directory config.vm.synced_folder "app/storage", "/vagrant/app/storage", :owner => 'www-data', :group => 'www-data'
Malheureusement, ça ne m'ade pas. Peu importe ce que j'essaie comme pour le nom / nom de groupe (essayé mon utilisateur comme dans mon hôte), rien ne fonctionne, mais Vagrant code> en tant que propriétaire et groupe. qui me donne le même problème. Tout autre propriétaire ou résultat de groupe:
La commande SSH suivante a répondu avec un statut de sortie non zéro.Vagrant suppose que cela signifie que la commande a échoué! code>
Changez-le afin que vous synchronisez l'ensemble du dossier de l'application Laravel. Pas seulement le répertoire de stockage spécifique. J'ai eu le même problème que vous, je faisais seulement synchroniser le Dir de stockage. Laravel a été capable de créer un nouveau fichier dans la session Dir, mais plus tard ne pouvait pas écrire au fichier qu'il vient de faire.
Voici ma nouvelle config p>
Pour quiconque peut rechercher cette question mais qu'il s'agit de ce problème lors de l'utilisation de // 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
Définissez votre utilisateur Apache et votre groupe sur Vagrant. Dans Ubuntu, Edit / etc / Apache2 / envvars et Modifient à p>
Cela semble corriger des problèmes constants avec une maison de famille lorsque vous installez Apache à l'intérieur. Avec le fichier Homestead.YAML, vous ne pouvez pas définir le «propriétaire» et «groupe»
Oui! Toutes les autres solutions suggérées Chmod à 77x. C'est la seule solution qui a fonctionné pour moi, merci!
Pouvez-vous nous montrer le résultat de la commande (après l'assignation dans votre boîte à votre vagabond)
ll -la code> dans le répertoire avec les fichiers après leur création récemment?
J'ai édité la question et ajouté ce que vous avez demandé.
Qu'entendez-vous par
dossier de stockage code>? Voulez-vous dire que
a synchronisé le dossier code>?
Le dossier de stockage n'est qu'un dossier du cadre de Laravel 4 qui devait être écritable.