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

在Google Cloud Build部署Laravel应用时无法安装PHP Sodium扩展

解决GCP App Engine Flex部署Laravel时sodium扩展安装失败问题

问题分析

部署时提示sodium * is not available on your system,原因是App Engine Flex的PHP7.3基础镜像未预装sodium扩展,而你的composer依赖明确要求该扩展。


解决方案(推荐:升级PHP版本)

PHP 7.4及以上版本中,sodium是内置核心扩展,无需额外安装。调整以下配置即可:

1. 修改composer.json的PHP版本要求

更新require中的PHP版本范围:

{
    "require": {
        "php": "^7.4|^8.0",
        // 其他依赖保持不变
    }
}

2. 在app.yml中指定PHP版本

在runtime_config下添加php_version配置:

runtime: php
env: flex
runtime_config:
    document_root: web
    php_version: 7.4 # 可选择8.0/8.1,需与Laravel 8.75兼容
skip_files: 
    - .env

# 其他自动扩容、资源、环境变量配置保持不变

3. 重新部署

执行原Cloud Build命令即可,此时构建过程会自动使用PHP7.4+环境,sodium扩展已内置,不会再报错。


备选方案:自定义Dockerfile(强制使用PHP7.3时)

若因依赖限制必须保留PHP7.3,需通过自定义Dockerfile手动安装sodium扩展:

1. 项目根目录创建Dockerfile

FROM gcr.io/google-appengine/php:7.3

# 安装sodium扩展依赖并编译安装
RUN apt-get update && apt-get install -y libsodium-dev \
    && docker-php-ext-install sodium

# 复制项目文件到容器
COPY . /app

# 设置工作目录
WORKDIR /app

# 安装生产环境Composer依赖
RUN composer install --no-dev --optimize-autoloader

2. 修改app.yml使用自定义运行时

将runtime改为custom:

runtime: custom
env: flex

# 自动扩容、资源、环境变量配置保持不变

3. 重新部署

执行原Cloud Build命令,构建过程会基于自定义Dockerfile创建镜像,包含sodium扩展。


内容的提问来源于stack exchange,提问作者marunk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:50:28