Laravel部署Windows服务器MPDF临时目录不可写问题求助
解决Laravel+Windows服务器下mPDF临时目录不可写问题
先确认并创建正确目录
报错里的C:\inetpub\wwwroot\laravel\../temp//mpdf对应实际路径是C:\inetpub\wwwroot\temp\mpdf,先手动创建该目录(包括父目录temp);或者更推荐调整到Laravel项目内的storage目录下(比如storage/temp/mpdf),更符合框架目录规范。用绝对路径配置
temp_dir
避免相对路径解析出错,直接用Laravel路径辅助函数生成绝对路径,在mPDF配置文件(如config/mpdf.php)中设置:'temp_dir' => storage_path('temp/mpdf'),也可以直接写Windows绝对路径(注意转义反斜杠):
'temp_dir' => 'C:\\inetpub\\wwwroot\\laravel\\storage\\temp\\mpdf',正确配置IIS权限
给目标目录添加IIS应用池用户的写入权限:- 右键目标目录 → 属性 → 安全 → 编辑 → 添加
- 在“选择用户或组”中输入
IIS AppPool\你的应用池名称(比如IIS AppPool\LaravelSite),点击检查名称确认 - 给该用户勾选写入、修改、读取和执行权限,保存设置
测试目录可写性
在任意控制器中添加代码验证:$targetDir = storage_path('temp/mpdf'); // 自动创建层级目录(如果不存在) if (!file_exists($targetDir)) { mkdir($targetDir, 0777, true); } // 输出是否可写 dd(is_writable($targetDir));返回
true说明权限正常,检查mPDF配置是否生效;返回false则重新核对IIS用户的权限设置。
内容的提问来源于stack exchange,提问作者itsmed
相关产品推荐
相关产品推荐

