You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在基于Bref的AWS Lambda Laravel环境中安装GD Library

问题原因

  1. 仅给artisan函数配置了GD扩展层,处理Web请求的web函数未配置任何GD相关依赖
  2. web函数使用自定义容器镜像部署,Bref的层(layer)配置对容器镜像部署的Lambda函数不生效,需直接在镜像构建流程中安装GD扩展
  3. 扩展层版本与实际PHP版本不匹配:本地使用PHP 7.4,但配置的是PHP 8.0对应的GD层,即使配置到对应函数也会因版本不符无法加载

解决方案

根据你的部署方式二选一即可:

方案1:继续使用自定义容器镜像部署

直接在Laravel镜像对应的Dockerfile中添加GD扩展安装逻辑,示例如下(基于bref官方PHP基础镜像):

RUN apt-get update && apt-get install -y \
        libpng-dev \
        libjpeg-dev \
        libfreetype6-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd

修改后重新构建镜像再执行部署即可。

方案2:切换为层部署方式

如果你不想维护自定义容器镜像,将web函数改为Bref层部署,同时统一PHP版本(以下以你本地使用的PHP 7.4为例):
修改serverless.yml配置如下:

plugins:
    - ./vendor/bref/bref
    - ./vendor/bref/extra-php-extensions

functions:
    web:
        handler: public/index.php
        timeout: 28
        layers:
            - ${bref:layer.php-74-fpm}
            - ${bref-extra:gd-php-74}
        events:
            -   httpApi: '*'
    artisan:
        handler: artisan
        timeout: 120
        layers:
            - ${bref:layer.php-74}
            - ${bref:layer.console}
            - ${bref-extra:gd-php-74}

修改完成后重新执行sls deploy --stage dev部署即可。


内容的提问来源于stack exchange,提问作者ニホニウム

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:39:03