php gd freetype support,尝试在Docker官方映像中将freetype添加到php-gd

我正在尝试向PHP GD安装添加一些功能。我正在使用Docker PHP“官方”发行版作为基础(php:7.1.15-fpm-jessie)。

我当前的生产环境使用CentOS,该GD模块带有FreeType,JPEG和PNG支持,如phpinfo输出所示:

GD Support => enabled

GD headers Version => 2.2.5

GD library Version => 2.2.5

FreeType Support => enabled

FreeType Linkage => with freetype

FreeType Version => 2.4.11

GIF Read Support => enabled

GIF Create Support => enabled

JPEG Support => enabled

libJPEG Version => 6b

PNG Support => enabled

libPNG Version => 1.5.13

WBMP Support => enabled

XPM Support => enabled

libXpm Version => 30411

XBM Support => enabled

WebP Support => enabled

Directive => Local Value => Master Value

gd.jpeg_ignore_warning => 1 => 1

但是,此Docker映像不提供FreeType和JPEG支持,并且具有较旧的GD版本(请参见phpinfo,下面):

GD Support => enabled

GD Version => bundled (2.1.0 compatible)

GIF Read Support => enabled

GIF Create Support => enabled

PNG Support => enabled

libPNG Version => 1.2.50

WBMP Support => enabled

XBM Support => enabled

Directive => Local Value => Master Value

gd.jpeg_ignore_warning => 1 => 1

我需要重新编译PHP还是仅重新编译扩展名?该图像使用Debian Jessie。

版本(解决方案):

重新编译后,我在这篇文章中找到了最好的解决方案:

所以我简单地添加:

RUN apt-get update && apt-get install libgd3 libgd-dev && rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/

RUN docker-php-ext-install -j$(nproc) gd

之后,我的phpinfo开始显示:

GD Support => enabled

GD Version => bundled (2.1.0 compatible)

FreeType Support => enabled

FreeType Linkage => with freetype

FreeType Version => 2.5.2

GIF Read Support => enabled

GIF Create Support => enabled

JPEG Support => enabled

libJPEG Version => 6b

PNG Support => enabled

libPNG Version => 1.2.50

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,您想问有关使用Docker运行PHP-FPM的问题,是吗?那我来简单介绍一下。 使用Docker运行PHP-FPM的主要目的是为了方便地进行开发和部署,同时还可以保证应用程序在不同环境中的一致性。下面是一些基本步骤: 1. 首先,您需要安装Docker,可以在官网上下载安装包。 2. 然后,您需要创建一个dockerfile文件,用于构建您的PHP-FPM镜像。示例文件内容如下: ``` FROM php:7.4-fpm-alpine RUN apk --update --no-cache add \ git \ unzip \ libzip-dev \ libpng-dev \ libjpeg-turbo-dev \ freetype-dev \ && docker-php-ext-install zip pdo_mysql mysqli gd \ && apk del --purge autoconf g++ make \ && rm -rf /var/cache/apk/* WORKDIR /var/www/html CMD ["php-fpm"] ``` 3. 接着,您可以使用以下命令构建您的镜像: ``` docker build -t your-image-name . ``` 4. 然后,您可以使用以下命令运行您的PHP-FPM容器: ``` docker run -d --name your-container-name -p 9000:9000 -v /path/to/your/app:/var/www/html your-image-name ``` 其中: - -d:表示在后台运行容器 - --name:指定容器的名称 - -p:将容器的9000端口映射到主机的9000端口 - -v:将主机上的应用程序目录挂载到容器中的/var/www/html目录中 5. 最后,您可以使用以下命令进入容器并查看PHP-FPM的日志: ``` docker exec -it your-container-name /bin/sh tail -f /usr/local/var/log/php-fpm.log ``` 希望这些信息能帮助到您。如果您还有其他问题,请随时问我。 ### 回答2: Docker是一种开源的容器化平台,可以在不同的操作系统中创建和管理轻量级的容器。php-fpm(PHP FastCGI Process Manager)是PHP中用于处理FastCGI的进程管理器。结合使用Dockerphp-fpm可以带来一些好处。 首先,使用Dockerphp-fpm可以使PHP应用程序更易于部署和管理。通过在Docker容器中运行php-fpm,可以将应用程序及其所有的依赖项打包到一个容器中,而不需要在不同的环境中进行配置和安装。这使得在不同的服务器上部署应用程序变得更加简单和一致。 其次,使用Dockerphp-fpm可以提供更好的资源管理。通过使用php-fpm进程管理器,可以控制和监视PHP进程的数量和资源使用情况。这有助于避免服务器过载和资源浪费,并确保应用程序的性能和稳定性。 此外,使用Dockerphp-fpm可以提高开发和测试的效率。在开发环境中,可以使用Docker容器来模拟生产环境,确保应用程序在不同的环境中具有一致的行为。还可以利用Docker容器的快速启动和停止功能,加速开发、测试和部署流程。 最后,使用Dockerphp-fpm还可以实现应用程序的可伸缩性。通过通过启动多个具有相同配置的php-fpm容器来处理更多的请求,可以轻松地扩大应用程序的处理能力。这使得应对高流量和负载峰值变得更加容易。 综上所述,通过结合使用Dockerphp-fpm,可以简化应用程序的部署和管理、提高资源利用率、加速开发和测试速度,并实现应用程序的可伸缩性。 ### 回答3: Docker是一个开源的应用容器引擎,可以将应用程序与其依赖项打包在一个轻量级的、可移植的容器中。而php-fpm是PHP FastCGI Process Manager的简称,是一种常用的PHP处理器,它能够管理和处理PHP请求。 在使用Docker时,可以通过Docker镜像来运行php-fpm容器,以便于更方便、更快速地搭建和部署PHP应用程序。首先,我们可以根据需要选择适合的php-fpm镜像,并使用Docker命令来创建和启动容器。 在创建容器时,我们可以指定容器运行的端口号、挂载主机目录、设定环境变量等。例如,我们可以将容器的端口号映射到主机的某个端口上,这样就可以通过主机的IP地址和对应端口号来访问容器内运行的PHP应用程序。 另外,我们还可以通过容器之间的网络连接来实现不同容器间的通信。例如,我们可以创建一个Nginx容器来作为反向代理服务器,同时将其与php-fpm容器连接在一起,这样就可以实现客户端与PHP服务器之间的通信。 由于Docker的轻量级特性,可以在一台物理机或虚拟机上运行多个容器,每个容器可以独立运行,互不干扰。这样的模式可以有效地隔离应用程序及其依赖项,减少部署和升级的风险。 总而言之,通过使用Docker来运行php-fpm容器,可以更方便、更快速地部署和管理PHP应用程序,提高开发和运维效率。同时,Docker的轻量级特性和容器间的网络连接,也提供了更灵活和可扩展的部署方案,使整个应用环境更加稳定和可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值