举杯邀月

php编译安装imagick扩展,Dockerfile构建php添加imagick扩展

摘要:php的imagick是一个可以供PHP调用ImageMagick功能的PHP扩展,使用这个扩展可以使PHP具备和ImageMagick相同的功能。

ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式 的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。

编译安装

1、安装 imagemagick

wget http://www.imagemagick.org/download/ImageMagick.tar.gz
tar -xzvf ImageMagick
cd ImageMagick-7.0.7-22/
./configure --prefix=/usr/local/webserver/imagemagick
make && make install
1
2
3
4
5
1
2
3
4
5

2、安装 imagick

wget http://pecl.php.net/get/imagick-3.4.4.tgz
tar -xzvf imagick-3.4.4.tgz
cd imagick-3.4.4
[php安装目录]/bin/phpize
./configure --with-php-config=[php安装目录]/bin/php-config --with-imagick=/usr/local/webserver/imagemagick
make && make install
1
2
3
4
5
6
1
2
3
4
5
6

安装成功提示:

Build complete.
Don't forget to run 'make test'.
 
Installing shared extensions:     /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20170718/
Installing header files:          /usr/local/webserver/php/include/php/
1
2
3
4
5
1
2
3
4
5

安装完成后在php.ini配置文件中添加 extension=imagick.so 然后重启 php

3、检查扩展是否安装

1.可以通过 phpinfo() 中查看

2.php -m | grep imagick
1
2
3
1
2
3

Dockerfile 构建PHP镜像添加

Dockerfile 文件内容

FROM php:7.4-fpm

WORKDIR /home/wwwroot

ENV IMAGICK_VERSION=3.4.4
ENV IMAGEMAGICK_VERSION=7.0.10-39

# 安装ImageMagick扩展
COPY extend/ImageMagick-${IMAGEMAGICK_VERSION}.tar.gz /opt/ImageMagick.tar.gz
RUN cd /opt/ && tar -zxvf ImageMagick.tar.gz \
    && cd ImageMagick-${IMAGEMAGICK_VERSION} \
    && ./configure --prefix=/usr/local/ImageMagick \
    && make && make install

# 安装imagick扩展
COPY extend/imagick-${IMAGICK_VERSION}.tgz /opt/imagick.tgz
RUN docker-php-source extract \
    && cd /opt/ && tar zxvf imagick.tgz && mv imagick-${IMAGICK_VERSION} /usr/src/php/ext/imagick \
    && docker-php-ext-configure imagick --with-php-config=/usr/local/bin/php-config  --with-imagick=/usr/local/ImageMagick \
    && docker-php-ext-install imagick

RUN rm -rf /opt/*.tgz && rm -rf /opt/*.tar.gz

EXPOSE 9000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

2、构建

docker build -t my_php .
1
1

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fdc23b39e227.html

2020-10-21 标签: phpdocker