为PHP扩展使用不同的源

ozxc1zmp  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(121)

我需要使用imagick PHP扩展进行图像处理。在安装此扩展之前,我还使用sudo apt install imagemagick在机器上安装了ImageMagick。事实证明,这个版本已经过时了(因为它不支持HEIC图像格式)。所以我从源代码安装了ImageMagick,它作为magick包安装。但是PHP的imagick扩展仍然可以使用早期过时的imagemagick
如何告诉PHP的imagick扩展使用我从源代码安装的最新magick包?

w8biq8rn

w8biq8rn1#

如果您使用的是发行版自己的PHP imagick模块,则不可能使用自己的ImageMagick副本。
有两种方法可以使用您自己的ImageMagick:
1.使用指定的ImageMagick副本从源代码编译您自己的PHP。
1.通过proc_open或类似的函数调用使用ImageMagick with command line
我想第二种选择会比编译整个PHP更容易和更灵活。最好继续使用发行版的PHP,所有的安全更新和补丁都会自动发送给您,而不是维护您自己的二进制文件。

ggazkfy8

ggazkfy82#

要基于非标准ImageMagick安装目录从源代码构建imagick PECL扩展,您需要使用扩展configure脚本的--with-imagick参数指定目录。
但是,pecl命令提供了更用户友好的方式来安装PECL扩展。下面是如何安装ImageMagick包和imagick PECL扩展:
1.安装ImageMagick:

# Prepare target directory.
# !!!
# !!! Warning: Replace this path with whatever path you prefer on your system.
# !!!
target_dir="/home/johndoe/usr/lib/imagemagick"

mkdir -p "$target_dir"

git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.1
cd ImageMagick-7.1.1
./configure --prefix="$target_dir"
make
make install

1.安装PECL扩展:

sudo pecl install imagick

该命令将要求提供ImageMagick安装目录的路径。将ImageMagick安装目录粘贴到此处(将/home/johndoe/usr/lib/imagemagick替换为您的路径):

Please provide the prefix of ImageMagick installation [autodetect] : /home/johndoe/usr/lib/imagemagick

然后将extension=imagick.so添加到php.ini * 或 * 使用-d 'extension=imagick.so'参数运行PHP CLI,例如:

$ php -d 'extension=imagick.so' -m | grep imagick
imagick

相关问题