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

如何在未用--with-sodium编译的PHP 8.2 Docker镜像中启用ext-sodium?

解决GitLab CI中drupalci/php-8.2-apache镜像启用sodium扩展的问题

你当前仅安装了底层依赖libsodium-dev,但PHP的sodium扩展需要单独安装对应版本的包,或确保扩展已在PHP配置中启用。以下是具体解决步骤:

方案1:通过包管理器安装PHP sodium扩展

drupalci的镜像基于Debian/Ubuntu体系,直接安装对应PHP版本的sodium扩展包即可:

修改.gitlab-ci.yml的before_script部分:

before_script:
  - apt-get update 
  - apt-get install -y --no-install-recommends php8.2-sodium
  - service apache2 restart

可添加验证命令确认扩展是否成功启用:

before_script:
  - apt-get update 
  - apt-get install -y --no-install-recommends php8.2-sodium
  - service apache2 restart
  - php -m | grep sodium  # 输出"sodium"则说明扩展已加载

方案2:手动启用已存在的扩展(镜像已编译但未启用)

如果镜像中已包含sodium扩展但未开启,可修改PHP配置文件启用:

  1. 先检查扩展是否存在:
php -i | grep -i sodium

若输出包含sodium相关信息但未标注enabled,执行以下步骤:

  1. 在before_script中添加启用配置:
before_script:
  - apt-get update 
  - apt-get install -y --no-install-recommends libsodium-dev
  - echo "extension=sodium.so" >> /etc/php/8.2/apache2/php.ini  # 路径需根据镜像实际PHP配置调整
  - service apache2 restart

方案3:源码编译安装扩展(针对源码编译的PHP环境)

若上述方案无效,说明镜像中的PHP是源码编译且未加入sodium支持,可通过phpize编译安装:

before_script:
  - apt-get update 
  - apt-get install -y --no-install-recommends libsodium-dev php8.2-dev build-essential
  - cd /tmp
  - wget https://www.php.net/distributions/php-8.2.xx.tar.gz  # 替换为镜像实际使用的PHP精确版本
  - tar xzf php-8.2.xx.tar.gz
  - cd php-8.2.xx/ext/sodium
  - phpize
  - ./configure --with-sodium
  - make && make install
  - echo "extension=sodium.so" >> /etc/php/8.2/apache2/php.ini
  - service apache2 restart

注意:需通过php -v确认镜像中PHP的精确版本,替换命令中的版本号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:30:05