如何修复 mpdf 临时文件目录可写问题?

Posted

技术标签:

【中文标题】如何修复 mpdf 临时文件目录可写问题?【英文标题】:How to fix mpdf temporary files directory writable issue? 【发布时间】:2019-03-05 16:32:48 【问题描述】:

我的 laravel 应用程序出现此错误。 Mpdf \ MpdfException (E_ERROR) 临时文件目录“/var/www/html/../temp/”不可写

请任何人告诉我解决此问题的解决方案。

【问题讨论】:

您是否检查过该特定目录的权限?我猜测该目录需要 HTTP 服务器用户的写入权限(在大多数情况下是 apachewww-data,具体取决于 Linux 发行版)。 我正在使用 centOS 。那么在这里我该如何授予权限 您是否尝试在配置中设置临时文件夹路径'tempDir' => __DIR__ . '/../../tmp', 另外,您是否提供写权限chmod 777 /var/www/protected/vendor/mpdf/mpdf/tmp 是的路径也给出了,这在本地工作得很好。但仅在服务器中不起作用。 【参考方案1】:

我是这样修复的:

$mpdf = New \Mpdf\Mpdf(['tempDir'=>storage_path('tempdir')]);

storage_path('tempdir') 是 laravel 管理的临时目录。

【讨论】:

【参考方案2】:
    转到目录“/var/www/html/../temp/”并检查它是否存在。 如果不存在,则创建它。 如果存在,请授予必要的权限(通常 777 取决于您的环境)

【讨论】:

未经777 的许可,还有其他方法吗? 777 我猜有点冒险。 它是一个临时文件夹..您可以选择只授予写入权限而不读取,但重点是什么!你需要你的脚本来读写这个文件夹中的数据

以上是关于如何修复 mpdf 临时文件目录可写问题?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Ant创建可写目录?

如何使用 heroku 临时文件系统

如何修复 Mpdf overWrite() 不起作用?

如何更改mpdf的位置

从目录中删除只读属性

mPDF SetSourceFile - 从临时存储中导入 PDF