В моем приложении 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
, то это сработает, но безопасно ли это делать?