虽然普通用户和www-data都可以访问路径 / mnt / my-proj / app /../ var / sessions / dev 以下消息:
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;
我做错了什么?
我已阅读以下帖子,但找不到我的解决方案:
https://github.com/NewEraCracker/suhosin-patches/issues/3
PHP7 + Symfony 2.8, Failed to write session data
我在Vagrant上的Windows 8.1 Enterprice(64Bit)和ubuntu-xenial 16.04上使用Vagrant 1.8.1。提供者是VirtualBox 5.0.20。设置大多是默认设置。使用具有完全访问权限的VirtualBox GUI共享上述路径。
亲切的问候,
树里
答案 0 :(得分:3)
解决了! : - )
设置
save_path: "/var/lib/php/sessions"
/mnt/my-proj/app/config/config.yml 中的解决了这个问题。无需调整 /etc/php/7.0 / 中的ini-Files(这些文件仍然只有默认值)。
但是我为什么不在prod中收到错误信息?
答案 1 :(得分:0)
In addition to the previous answer from Juri Sinitson, it also solved me tweaking the VM instead of tweaking the project base.
Adding to my Vagrant bash root provisioner this line:
sed -i "s/www-data/vagrant/g" /etc/apache2/envvars
service apache2 restart
Makes the apache run as vagrant
. This confers apache more power on the shared directory as it appears to the filesystem that it is the user vagrant
and not the user www-data
who happens to be touching there.
Maybe this is 'apparmor' related or so.
答案 2 :(得分:0)
您可以只编辑配置的文件。
vi /etc/php/7.2/fpm/pool.d/www.conf
然后将PHP的所有者角色从www-data
更改为vagrant
user = vagrant
group = vagrant