PHP7+;Symfony 3.1.0+;Vagrant:无法写入会话数据

PHP7+;Symfony 3.1.0+;Vagrant:无法写入会话数据,php,symfony,session,vagrant,php-7,Php,Symfony,Session,Vagrant,Php 7,虽然路径/mnt/my proj/app/./var/sessions/dev对于普通用户和www数据都是可访问的,但我收到以下消息: Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/mnt/op-accounting2/app/../var/sessions/d

虽然路径/mnt/my proj/app/./var/sessions/dev对于普通用户和www数据都是可访问的,但我收到以下消息:

Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/mnt/op-accounting2/app/../var/sessions/dev)
我只在dev中得到上面的消息,但在prod中没有。 /mnt/my proj/app/./var/sessions/dev/mnt/my proj/app/./var/sessions/prod具有相同的任务:777

上面的路径安装如下:

# mount -t vboxsf -o uid=1000,gid=33,umask=000 my-proj /mnt/my-proj;
我做错了什么

我读过以下帖子,但找不到解决方案:

我在Windows8.1企业版(64位)上使用Vagrant1.8.1,在Vagrant中使用UbuntuXenial 16.04。提供程序是VirtualBox 5.0.20。这些设置大多是默认设置。上面的路径是使用具有完全访问权限的VirtualBox GUI共享的

亲切问候,

Juri已解决!:-)

背景

save_path:   "/var/lib/php/sessions"
/mnt/my proj/app/config/config.yml中解决了问题。不需要对/etc/php/7.0/中的ini文件进行任何调整(这些文件仍然只有默认值)


但是我想知道为什么我没有在prod中得到错误消息?

除了Juri Sinitson之前的回答之外,它还解决了我调整VM而不是调整项目基础的问题

将以下行添加到我的Vagrant bash根供应器:

sed -i "s/www-data/vagrant/g" /etc/apache2/envvars
service apache2 restart
使apache以vagrant的身份运行。这赋予了apache更多的共享目录权力,因为在文件系统看来,恰好接触到共享目录的是用户
vagrant
,而不是用户
www-data


可能这与“apparmor”有关。

您只需编辑配置的文件即可

vi /etc/php/7.2/fpm/pool.d/www.conf
然后将PHP的所有者角色从
www-data
更改为
vagrant

user = vagrant
group = vagrant

你救了我!!发生在我身上的SF3+PHP7+Vagrant,可能与主机共享
/Vagrant
这一事实有关,而主机是windows。-注意:当然这在DeValand和Debug之间是不同的,所以在参数中添加<代码> SaveYouPuth/Cube > YML<代码> > <代码> SeStista SaveYouTube:“/VAR/LIB/PHP/Stine” > Script SaveSeEXPATH:“%Kr.RoTo.dir %//Val/Stuts/%Kr.Engine %”分别在devel和production参数中,然后在
config.yml
中使用
save\u path:“%session\u save\u path%”
。我仍然不明白为什么这样做会有帮助,因为
var/sessions
上的权限也很好。