我正在使用带有精确64盒的流浪汉Laravel 4项目。 我已将Storage文件夹设置为可写(777仅适用于我),每次创建新文件时,例如会话,我需要再次手动设置新文件是否可写。
是否有任何选项可以将新创建的文件设置为可写,以便将来防止出现此类问题?
编辑:这是包含新会话的会话文件夹(从流浪盒中完成)的ll -la输出示例,也许它会有所帮助。
vagrant@precise64:/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 :(得分: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
答案 1 :(得分:2)
将您的apache用户和组设置为vagrant。在ubuntu中,编辑/ etc / apache2 / envvars并更改
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
到
export APACHE_RUN_USER=vagrant
export APACHE_RUN_GROUP=vagrant
答案 2 :(得分:0)
如果您正在谈论shared folder
或synced folder
,您可以使用可选参数来控制权限:
config.vm.share_folder "shared_folder", "/myfinalproject", "/host/path", :owner => "vagrant", :group => "vagrant"
<强>参考强>
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
答案 3 :(得分:0)
更改它,以便您同步整个laravel应用程序文件夹。不仅仅是特定的存储目录。 我和你有同样的问题,我只是同步存储目录。 Laravel能够在session dir中创建一个新文件,但后来无法写入它刚刚创建的文件。
这是我的新配置
config.vm.synced_folder "./", "/var/www", :owner => 'www-data', :group => 'www-data'
答案 4 :(得分: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