如何修复共享服务器中的 open_basedir 限制错误?

How to fix open_basedir restriction error in shared server?

我正在设置 laravel-snappy 来创建 pdf。

我的 snappy 配置如下

<?php
return array(
'pdf' => array(
        'enabled' => true,
        'binary' => base_path('vendor/h4cc/wkhtmltopdf/bin/wkhtmltopdf'),
...

通过 运行 config('snappy') inside tinker,我还得到了 laravel 项目文件夹中所需的确切路径

但我收到以下错误

local.ERROR: is_dir(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s):

如何在不更改 php 设置的情况下解决此问题?

似乎该包试图写入 /tmp 文件夹,但受到 PHPs ini 选项的限制 open_basedir

您可以使用 setTemporaryFolder() 方法将此文件夹路径更改为应用程序中的某个路径,也许 storage/tmp

$pdf = App::make('snappy.pdf.wrapper');
$pdf->setTemporaryFolder(storage_path('tmp'));
// ...