提问人:Nick 提问时间:8/23/2023 最后编辑:Nick 更新时间:8/23/2023 访问量:43
php-imagick + nginx chroot 缺少 PDF 支持
php-imagick + nginx chroot are missing PDF support
问:
我目前正在尝试在 PHP 中将图像转换为 PDF。从命令行运行时,脚本运行良好,但是当从浏览器调用完全相同的代码时,它无法加载PDF模块。所以我认为这是一个 chroot 问题?
在 phpinfo() 中,PDF 扩展名也没有以 ImageMagick 支持的格式显示,所以这是一个危险信号。
错误信息: UnableToLoadModule '/usr/lib64/ImageMagick-7.1.1/modules-Q16HDRI/coders/pdf.la':找不到文件 @ error/module.c/OpenModule/1291 in /test.php:8
但是当我查看我的chroot文件夹时,这个文件就存在。使用 imagick 将 JPG 转换为 PNG 时,它可以在浏览器(和测试脚本)中工作。它唯一的错误是 PDF 的
测试代码:
<?php
$sSourcePath = dirname(__FILE__) . '/test.png';
$sDestinationPath = dirname(__FILE__) . '/test.pdf';
$oImagick = new Imagick($sSourcePath);
$oImagick->setImageFormat('pdf');
$oImagick->writeImage($sDestinationPath);
版本:
OS: AlmaLinux 9.2
Nginx: 1.25.2
PHP Version:8.2.9
PHP-Imagick version info:
imagick module version 3.7.0
imagick classes Imagick, ImagickDraw, ImagickPixel
ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version ImageMagick 7.1.1-2 Q16-HDRI x86_64 20952
Imagick using ImageMagick library version ImageMagick 7.1.1-15 Q16-HDRI x86_64 21298
我尝试过的事情:
- 其他文件格式(jpg -> png、png -> jpg),正在工作
- 我已经将 /etc/ 和 /usr/ 复制到我的 chroot 中,没有任何区别
- 安装Imagick与yum install分开,没有任何区别
- 我已经检查了 /etc/ImageMagick-7/policy.xml 文件。这是在策略映射中:--> -->
对此文件的更改没有区别,将权限更改为无,删除行,它没有更改任何内容。
- 每次更改后,php-fpm 和 nginx 都会重新启动。所以这也不是问题
我没有办法检查了,有人知道吗?
答: 暂无答案
评论