You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下XAMPP的PHP无法访问外接磁盘文件求助

问题描述

Warning: file_get_contents(/Volumes/Disk/Folder/File.json): Failed to open stream: Operation not permitted

在MacOS系统通过XAMPP安装的Apache环境中,访问外接磁盘文件/目录时出现上述错误。已尝试以下操作但均无效:

  • sudo chown -R daemon:daemon …
  • sudo chmod -R 0777 …
  • 磁盘>显示简介>开启/关闭「忽略此宗卷的所有权」
  • 系统偏好设置>安全性与隐私>为httpd开启「完全磁盘访问权限」
  • 在httpd.conf中创建别名

chown/chmod命令在系统磁盘正常生效,但在外接挂载磁盘上无效,错误始终为Failed to open, Operation not permitted。

解决方案建议

1. 检查外接磁盘格式

MacOS权限管控对非APFS格式的外接盘支持有限:

  • NTFS格式:使用Paragon NTFS、Tuxera NTFS等工具挂载为支持权限的可读写模式,或备份数据后将磁盘格式化为APFS。
  • FAT32格式:该格式本身不支持Unix权限体系,可修改/etc/fstab添加挂载配置:
    LABEL=你的磁盘名称 none msdos rw,auto,users,uid=daemon,gid=daemon
    
    替换LABEL=你的磁盘名称为实际磁盘标签,执行sudo mount -a生效。

2. 修改Apache运行用户

XAMPP默认让Apache以daemon用户运行,可改为当前系统用户以获取外接盘访问权限:

  1. 打开XAMPP的httpd.conf文件(路径一般为/Applications/XAMPP/etc/httpd.conf)
  2. 找到并修改以下两行:
    User 你的系统用户名
    Group 你的系统用户组
    
    用户名可通过whoami查看,用户组可通过id -g -n查看
  3. 重启XAMPP的Apache服务

3. 完善隐私权限设置

  • 将XAMPP本体添加到「完全磁盘访问权限」列表(系统偏好设置>安全性与隐私>隐私>完全磁盘访问)
  • 修改权限后重启系统,确保设置彻底生效

4. 使用符号链接替代别名

在Apache根目录创建指向外接磁盘目录的符号链接:

ln -s /Volumes/Disk/Folder /Applications/XAMPP/htdocs/external-folder

之后通过http://localhost/external-folder/File.json访问文件

5. 调整磁盘挂载参数

  1. 执行mount命令查看外接磁盘挂载参数,确认是否存在noowners等限制权限的参数
  2. 若有,重新挂载磁盘:
    sudo umount /Volumes/Disk
    sudo mount -o rw,owners /dev/disk2s1 /Volumes/Disk
    
    替换/dev/disk2s1为实际磁盘设备名(可通过diskutil list查看)

内容的提问来源于stack exchange,提问作者Wald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:45:06