【发布时间】:2014-05-16 12:56:48
【问题描述】:
我将我的 PHP 会话文件存储在 NFS 共享上。问题是,PHP 总是会创建一个空的会话文件,但无法从中读取/写入,因此每次重新加载页面都会创建一个新文件。
如果我将会话存储路径移动到本地文件夹,会话将正常保存。此外,我正在运行具有相同配置的另一个环境,它工作正常。
在 PHP 遇到此问题的同一台服务器上,我能够在保存会话的相同目录中创建/写入/读取文件(使用 root、非 root 和特别是 www-data 用户进行测试)。
我在 Ubuntu 12.04 LTS 上使用 PHP 5.5.12、Apache 2.4.9 和 NFS v3
我的 php.ini
session.save_handler = files
session.save_path = "2;/mnt/cache/sessions"
session.use_cookies = 1
session.use_only_cookies = 0
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 2592000
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 2592000
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
我的 /etc/fstab
nfs-srv.local:/export/cache /mnt/cache nfs rw,hard,intr 0 0
我在 nfs-srv.local 上的 /etc/exports
/export/cache 10.1.10.0/24(rw,nohide,insecure,no_subtree_check,async,all_squash,anonuid=33,anongid=33)
会话文件
ls /mnt/cache/sessions/ -l
drwxrwxrwx 34 nobody nogroup 4096 May 16 10:33 0
drwxrwxrwx 34 nobody nogroup 4096 May 16 10:33 1
drwxrwxrwx 34 nobody nogroup 4096 May 16 10:33 2
...
ls /mnt/cache/sessions/m -l
drwxrwxrwx 2 nobody nogroup 4096 May 16 10:33 0
drwxrwxrwx 2 nobody nogroup 4096 May 16 12:18 1
drwxrwxrwx 2 nobody nogroup 4096 May 16 10:33 2
drwxrwxrwx 2 nobody nogroup 4096 May 16 10:33 3
drwxrwxrwx 2 nobody nogroup 4096 May 16 12:16 4
drwxrwxrwx 2 nobody nogroup 4096 May 16 12:14 5
...
ls /mnt/cache/sessions/m/5 -l
-rw------- 1 nobody nogroup 0 May 16 12:14 sess_m5ifehvhkjdisp7dgtiuu601e2
【问题讨论】:
-
你能解决这个问题吗?我遇到了同样的问题
-
是的,我已经修复了它,但只能通过将以下部分添加到 /etc/idmapd.conf [映射] 无名用户 = www-data 无名组 = www-data