В моем приложении Cakephp 3.6
я использую mpdf
для создания PDF-файлов. В то время как на локальном хосте работает без каких-либо проблем, когда я пытаюсь сделать это на сервере, я получаю эту ошибку:
SplFileInfo :: isFile () [https://secure.php.net/splfileinfo.isfile'>splfileinfo.isfile]: действует ограничение open_basedir. Файл (/tmp/mysql.sock) находится вне допустимых путей:
Это связано с тем, что он пытается сохранить файл PDF в папке src
, а не в папке webroot
.
Вот код: (генератор Excel работает нормально)
$inv = TableRegistry::get('invoices')->get($invoice->id);
$inv->file_id = $newFile->id;
TableRegistry::get('invoices')->save($inv);
$writer = new Xlsx($spreadsheet);
$writer->save($folder->path.'/timologio'.$inv->invoice_no.'.xlsx');
//Save as Pdf, even though $folder->path is pointing under webroot, its trying to save it under src
$PdfWriter = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Mpdf');
$PdfWriter->save($folder->path.'/timologio'.$inv->invoice_no.'.pdf');
Если я изменю open_basedir
с {WEBSPACEROOT}{/}{:}{TMP}{/}
на none
, то это работает, но безопасно ли это сделатьтак?