记录一些常用的函数和瞎折腾的过程……

在php容器中安装php扩展

在docker的php容器中,有些扩展是需要自己安装的,安装方式有普通物理主机有所不同,在这里简单记录一下。

一、如何在docker容器中安装php自带的扩展模块?

1、进入到php容器中:

[root@server ~]$ docker exec -it php /bin/bash

2、查看php当前自带的扩展模块:

[root@server ~]$ php -m

或进入扩展模块目录下查看:

[root@server ~]$ cd /usr/local/bin

3、安装gd模块:

a、安装gd相应的依赖包:

[root@server ~]$ apt-get install libwebp-dev libjpeg-dev libpng-dev zlib1g-dev libfreetype6-dev libjpeg62-turbo-dev

b、添加gd库编译选项:

[root@server ~]$ docker-php-ext-configure gd --with-jpeg-dir=/usr/include/

c、安装gd扩展模块:

[root@server ~]$ docker-php-ext-install gd

4、安装exif模块:

[root@server ~]$ docker-php-ext-install exif

5、安装缓存器OPcache:

[root@server ~]$ docker-php-ext-install opcache

6、安装pdo模块

[root@server ~]$ docker-php-ext-install pdo_mysql

7、安装mysqli模块

[root@server ~]$ docker-php-ext-install mysqli

二、如何在docker容器中安装第三方扩展?

以安装ioncube为例讲一下步骤:

1、切换到/usr/local/目录:

[root@server ~]$ cd /usr/local

2、下载安装包,根据自己使用的系统下载对应的64位或是32位包(下地地址:https://www.ioncube.com/loaders.php),可使用uname -a命令查看系统:

[root@server ~]$ wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

3、解压安装包:

[root@server ~]$ tar -zxvf ioncube_loaders_lin_x86-64.tar.gz

4、解压后,可以看到里面有各个php版本对应的.so文件,根据你的php版本自行选择对应的,然后修改php.ini配置文件,在文件尾部添加如下代码:

[ionCube Loader]
zend_extension="/usr/local/ioncube/ioncube_loader_lin_7.4.so"

再以安装imagick为例讲一下安装步骤。

1、由于安装imagick扩展时需要依赖ImageMagick的函数库,因此必须要先安装ImageMagick

a、下载安装包(版本选择可前往:https://imagemagick.org/download/):

[root@server ~]$ wget https://imagemagick.org/download/ImageMagick-7.0.10-35.tar.gz

b、解压安装包:

[root@server ~]$ tar -zxvf ImageMagick-7.0.10-35.tar.gz

c、进入安装目录:

[root@server ~]$ cd ImageMagick-7.0.10-35

d、进行配置:

[root@server ~]$ ./configure --prefix=/usr/local/imagemagick

e、执行安装:

[root@server ~]$ make && make install

2、安装PHP的扩展imagick:

安装imagick扩展时需要PHP >= 5.1.3,ImageMagick >= 6.2.4,可以从http://pecl.php.net/package/imagick找到imagick的最新的stable版本。

a、下载最新版本(下载地址:http://pecl.php.net/package/imagick):

[root@server ~]$ wget http://pecl.php.net/get/imagick-3.4.4.tgz

b、解压安装包:

[root@server ~]$ tar -zxvf imagick-3.4.4.tgz

c、进入安装目录:

[root@server ~]$ cd imagick-3.4.4

d、配置phpize:phpize是一个shell脚本,主要是用来进行编译环境的准备,执行以后会生成一些新的文件,为配置、编译及安装作好准备。在imagick-3.4.4目录中执行/usr/local/bin/phpize(php容器中的位置)以生成configure。

[root@server ~]$ /usr/local/bin/phpize

e、查找配置相关的php-config路径:

[root@server ~]$ find / -name php-config
/usr/local/bin/php-config

f、进行配置(将上一步的中php-config路径放入到--with-php-config):

[root@server ~]$ ./configure --with-php-config=/usr/local/bin/php-config --with-imagick=/usr/local/imagemagick

g、执行安装:

[root@server ~]$ make && make install

3.配置扩展:

打开配置文件php.ini(php容器中的位置:/usr/local/etc/php/php.ini),加入如下的一行 :

extension = "imagick.so"

然后执行php -m | grep imagick,发现已经出现imagick模块了,证明imagick已经生效了

在完成扩展安装后,退出并重启容器就可以生效了。

[root@server ~]$ exit
[root@server ~]$ docker restart php
[root@server ~]$ docker restart nginx

注意:如果进入容器无法使用wget之类的命令,请参考《docker容器中安装常用命令工具》。

我安装好的扩展模块目录为:/usr/local/lib/php/extensions/no-debug-non-zts-20190902/。这个目录根据系统和环境会有不同。

《在php容器中安装php扩展》没有评论
发表评论