php.ini设置session.save_path后phpinfo仍显无值及phpMyAdmin权限报错求助
解决macOS High Sierra下XAMPP的session.save_path不生效及权限报错问题
我之前在macOS上用XAMPP折腾session功能时,碰到过完全一样的坑——明明改了php.ini里的session.save_path,但phpinfo()偏显示no value,还连带phpMyAdmin报权限错误。给你一步步拆解靠谱的解决方法:
1. 先确认你改对了php.ini文件
XAMPP里可能藏着多个php.ini副本(比如CLI命令行用的和Apache服务用的),必须修改phpinfo里明确标注的那个生效配置文件:
- 先在浏览器里打开
phpinfo()页面,找到Loaded Configuration File这一行,复制它的完整路径(比如/Applications/XAMPP/xamppfiles/etc/php.ini) - 用文本编辑器(比如VS Code或终端vim)打开这个路径的文件,别手滑改错了其他无效副本!
2. 检查session.save_path的配置格式
打开正确的php.ini后,定位到session.save_path这一行:
- 确保前面没有分号
;(分号是注释标记,会直接让配置失效) - 格式要规范,比如:
等号前后的空格不影响,但路径加引号能避免特殊字符导致的解析问题session.save_path = "/Applications/XAMPP/xamppfiles/temp"
3. 修复session目录的权限问题
这是macOS上最容易踩的坑——就算路径设置对了,Apache运行的用户(通常是_www)没有读写权限也会报错:
- 打开终端,执行命令修改目录所有者:
sudo chown _www:_www /Applications/XAMPP/xamppfiles/temp - 再设置安全的权限(用700确保只有
_www用户能访问):
如果还是有问题,可以临时改成777测试(但生产环境绝对别这么干):sudo chmod 700 /Applications/XAMPP/xamppfiles/tempsudo chmod 777 /Applications/XAMPP/xamppfiles/temp
4. 必须重启Apache服务
修改php.ini后,一定要重启XAMPP里的Apache——配置不会自动生效!
- 打开XAMPP控制面板,先停止Apache再重新启动,这步千万别偷懒跳过
5. 验证配置是否生效
重启后刷新phpinfo页面,查看session.save_path的值,或者写个简单的PHP脚本测试:
echo ini_get('session.save_path');
如果输出了你设置的路径,说明配置已经生效了。
6. 解决phpMyAdmin的额外报错
如果phpMyAdmin还是报session_start(): open(SESSION_FILE, O_RDWR) failed,检查phpMyAdmin的config.inc.php文件(通常在/Applications/XAMPP/xamppfiles/phpmyadmin目录下):
- 看看有没有设置
$cfg['SessionSavePath'],如果有的话,把它改成和php.ini一致的路径,或者直接注释掉这一行,让phpMyAdmin使用系统默认的session配置。
按照这些步骤走下来,应该能彻底解决session无法使用的问题,我当初就是这么搞定的~
内容的提问来源于stack exchange,提问作者Shaswat Lenka
相关产品推荐
相关产品推荐

