升级MacOS与Docker后phpMyAdmin 5.2.1会话Cookie设置失败
此前通过Docker部署的phpMyAdmin 5.2.0运行正常,升级MacOS M1至13.3.1、Docker Desktop至4.18.0并启用VirtuoFS文件共享后,访问localhost上的phpMyAdmin 5.2.1时出现错误提示:
Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin
回退至phpMyAdmin 5.2.0版本仍无法解决该问题,且docker-compose.yml中的PMA_HOST配置无误。
- Docker镜像:
phpmyadmin/phpmyadmin:latest - PHP版本:8.1.17
- MariaDB版本:10.2
- 浏览器:Chrome、Firefox、Safari,无VPN或代理工具
- 清除浏览器所有Cookie与本地存储数据
- 禁用Chrome扩展,切换不同浏览器及使用隐身模式访问
- 修改
config.inc.php中的auth_type为http/config(切换为非cookie类型时登录页无法正常加载) - 重启电脑、重新拉取无缓存的phpMyAdmin镜像
针对VirtuoFS文件共享与Docker容器的兼容性问题,可尝试以下几种修复方案:
1. 修复PHP Session存储目录权限
VirtuoFS可能导致容器内的session目录权限异常,使得phpMyAdmin无法写入session文件。可通过挂载本地目录指定session存储路径:
在docker-compose.yml的phpmyadmin服务中添加配置:
services: phpmyadmin: image: phpmyadmin/phpmyadmin:latest # 保留原有端口、PMA_HOST等配置 volumes: - ./phpmyadmin-sessions:/var/lib/php/sessions user: "www-data:www-data"
然后在本地项目目录执行命令创建并设置目录权限:
mkdir phpmyadmin-sessions chmod 777 phpmyadmin-sessions
2. 强制指定访问URI
VirtuoFS可能导致phpMyAdmin无法正确识别请求地址,添加PMA_ABSOLUTE_URI环境变量强制指定访问路径:
services: phpmyadmin: # 其他配置... environment: - PMA_HOST=mariadb # 替换为你的MariaDB服务名称 - PMA_ABSOLUTE_URI=http://localhost:8080/ # 替换为你的phpMyAdmin实际访问地址与端口
3. 调整Session Cookie属性
在config.inc.php中添加以下配置,修正session cookie的属性设置:
$cfg['SessionCookieSameSite'] = 'Lax'; $cfg['SessionCookieSecure'] = false; // HTTP访问下需设为false $cfg['SessionCookieHttpOnly'] = true;
如果使用自定义config.inc.php,需确保将其挂载到容器的/etc/phpmyadmin/config.inc.php路径。
4. 回退文件共享模式
若以上方案均无效,可暂时禁用VirtuoFS,切换回Docker Desktop的gRPC FUSE文件共享:
打开Docker Desktop设置 → Resources → File sharing,取消勾选"Use VirtuoFS accelerated directory sharing",应用设置后重启Docker。
内容的提问来源于stack exchange,提问作者mar

