#php #codeigniter #dompdf
#php #codeigniter #dompdf
Вопрос:
Я создаю PDF-файл, генерирующий приложение, используя CodeIgniter и DOMPDF. На моем локальном хостинге он работает нормально, но когда я перемещаю эти файлы на сервер, он выдает мне следующую ошибку. Пожалуйста, как я могу решить эту проблему?
Severity: Warning
Message: file_exists(): open_basedir restriction in effect. File(/tmp/log.htm) is not within the allowed path(s): (/home/admin/web/fryapps.com/public_html:/home/admin/tmp)
Filename: src/Dompdf.php
Line Number: 714
Backtrace:
File: /home/admin/web/fryapps.com/public_html/application/libraries/dompdf/src/Dompdf.php
Line: 714
Function: file_exists
File: /home/admin/web/fryapps.com/public_html/application/controllers/Createpdf.php
Line: 31
Function: render
ошибка в пути к изображению:https://imgur.com/a/zQo1873
это мой код:
$htmlcontent= $this->load->view('admin/test',$data,true);
$this->pdf->loadHtml($htmlcontent);
$this->pdf->render();
$this->pdf->stream("report.pdf",array("Attachment=>0"));
кто-нибудь, пожалуйста, помогите мне решить эту проблему?
Комментарии:
1. укажите абсолютный путь /home/admin/tmp/<имя файла>
2. @kuh-chan, где я должен это отредактировать?
3. Как решить эту проблему?
4. когда вы заглянете в код Dompdf, вы увидите, что он создаст
logOutputFile
. Вы можете установить его в массиве параметров5. еще
$this->pdf->set_option('logOutputFile', $this->getTempDir() . DIRECTORY_SEPARATOR . 'log.htm');
подождите… почему я читаю документы для вас?
Ответ №1:
создайте папку «/home/admin/web/example.com/tmp»
Используйте его
$this->pdf->set_options('tempDir','/home/admin/web/example.com/tmp');
или
Использование класса sys_get_temp_dir();
Установите его в VirtualHost для example.com
php_admin_value sys_temp_dir "/home/admin/web/example.com/tmp"
Комментарии:
1. мой домен fryapps.com итак, мне нужно создать папку tmp в корневом каталоге? и в каком файле я должен установить это $this-> pdf-> set(‘tempDir’,’/home/admin /web/example.com/tmp’);
2. Вызов неопределенного метода Pdf::set()
3. существует github.com/dompdf/dompdf/blob/master/src/Options.php это внутренний класс, используйте set_options github.com/dompdf/dompdf/blob/master/src/Dompdf.php
Ответ №2:
Я решил эту проблему, обновив php-версию cpanel.