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

PHP8环境运行PhpSpreadsheet Hello World程序报权限拒绝错误

问题根因定位

这个错误是目录写入权限不足导致,和PhpSpreadsheet代码本身无关,错误日志里的Permission denied已经明确了原因:PHP运行时的身份没有权限在指定路径下创建、写入xlsx文件。

修复步骤
  • 第一步:确认实际写入路径
    你当前使用相对路径hello_world.xlsx作为保存参数,实际写入位置为PHP当前工作目录,你可以在代码中添加一行代码打印确认路径:
var_dump(getcwd());

执行后输出的路径就是xlsx文件要写入的目标目录,你当前的脚本路径为C:\inetpub\wwwroot\App\Services\,默认工作目录和脚本路径一致。

  • 第二步:配置目录写入权限
    你使用的是Windows IIS服务,PHP的默认运行身份为IUSR用户或者IIS_IUSRS用户组,按以下步骤配置权限:
  1. 右键点击目标文件夹,选择「属性」→ 切换到「安全」选项卡
  2. 点击「编辑」→ 「添加」,输入IIS_IUSRS后点击「检查名称」,确认后添加该用户组
  3. 给IIS_IUSRS组勾选「修改」、「写入」权限,保存所有配置即可
  • 第三步:额外排查项
    如果配置权限后还是报错,排查两个常见场景:
  1. 目标路径下已经存在同名的hello_world.xlsx文件,且该文件正被Excel等程序打开占用,关闭占用程序即可
  2. 可以先使用绝对路径测试验证代码是否正常,比如修改保存路径为公共临时目录:
$writer->save('C:/Windows/Temp/hello_world.xlsx');

该目录默认有写入权限,能正常生成文件即可确认代码本身无问题。

内容的提问来源于stack exchange,提问作者B. Allred

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:15:04