2013-07-08 3 views
7

Я использую бродягу с точной коробкой & проект Laravel 4. Я установил папку хранения для записи (777 работает только для меня), и каждый раз, когда создается новый файл, например, сеанс, мне нужно вручную установить новый файл для записи.Разрешение не поддерживается для вновь созданных файлов при использовании vagrant

Есть ли возможность установить вновь созданные файлы для записи, чтобы предотвратить такую ​​проблему в будущем?

Редактировать: Вот пример вывода ll -la в папке сеанса, содержащей новый сеанс (сделанный из окна бродяг), возможно, это поможет.

[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

Можете ли вы показать нам результат команды (после SSHing в вашу бродячего поле) 'LL -la' на каталог с файлами после их создания? – fideloper

+0

Я отредактировал вопрос и добавил то, что вы просили. –

+0

Что вы подразумеваете под 'storage folder'? Вы имеете в виду 'synced folder'? – Mingyu

ответ

0

Если вы говорите о shared folder или synced folder, вы можете использовать дополнительные аргументы для контроля доступа:

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

Reference

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

Источник

# 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

Не помогло, я продолжаю получать разрешения на новые файлы, созданные «системой», например файлы сеанса. –

3

У меня была очень похожая, возможно, такая же проблема с разрешениями. Я мог просматривать сайт один раз, а затем все запросы после этого приведут к ошибке разрешения.

Попробуйте добавить следующий код в ваш VagrantFile:

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

Надеется, что поможет вам. Следующий источник предоставил мне решение: https://github.com/experience/vagrant-laravel-application/blob/master/Vagrantfile

+2

К сожалению, это мне не помогает. независимо от того, что я пытаюсь назвать именем/группой (попробовал мой пользователь, как на моем хосте) ничего не работает, но «бродяжничает» как владелец и группа. что дает мне такую ​​же проблему. любой другой результат работы владельца или группы: 'Следующая команда SSH ответила с ненулевым статусом выхода. Вагрант предполагает, что это означает, что команда не удалась!' –

0

Измените его, чтобы синхронизировать всю папку с папкой laravel. Не только конкретный каталог хранилища. У меня была такая же проблема, как и вы, я только синхронизировал хранилище. Laravel смог создать новый файл в каталоге dir, но позже не смог записать файл, который он только что создал.

Вот мой новый конфигурационный

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

Для тех, кто может быть ищущего на этот вопрос, но с этой проблемой при использовании VirtualBox (и вы используете общие папки):

// 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

Установите пользователя и группу apache для бродяг. В Ubuntu, редактировать/и т.д./apache2/envvars и изменить

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

в

export APACHE_RUN_USER=vagrant 
export APACHE_RUN_GROUP=vagrant 
+0

Кажется, что исправление постоянных проблем с Homestead при установке Apache внутри него. С файлом Homestead.yaml вы не можете определить «владелец» и «группа» – dlearious

+0

Да! Все остальные решения предложили chmod до 77x. Это единственное решение, которое сработало для меня, спасибо! –

Смежные вопросы