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

树莓派4 Docker环境安装PHP扩展mysqli、pdo_mysql、zip无响应求助

问题排查与解决方案

核心原因

树莓派属于ARM架构设备,你遇到的卡顿绝大多数是三类问题:国外软件源访问不稳定、本地编译扩展时硬件算力/内存不足、架构适配相关的依赖缺失。

分步排查方案

  • 第一步:定位卡顿具体环节
    进入运行中的PHP容器后,执行带verbose参数的安装命令输出详细日志,确认卡在哪一步:

    docker-php-ext-install -v mysqli
    

    如果日志卡在apt install相关的依赖拉取步骤,属于源的问题;如果卡在configure或make步骤,属于编译时资源不足的问题。

  • 第二步:替换容器内软件源为国内ARM镜像站
    树莓派默认的Debian官方源访问速度极慢,拉取依赖时会长期无响应,在Dockerfile的apt update步骤前新增源替换逻辑:

    # 替换为中科大ARM架构Debian源
    RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && \
        sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
    
  • 第三步:解决编译资源不足问题
    2G及以下内存的树莓派编译PHP扩展时容易因内存不足进入IO等待状态,优先两个方案:

    1. 直接使用预编译扩展,放弃本地编译:不需要用docker-php-ext-install,直接通过apt安装系统预编译的扩展包,速度提升10倍以上:
    RUN DEBIAN_FRONTEND=noninteractive apt install -y php7.4-mysql php7.4-zip
    
    1. 临时增大树莓派交换分区到2G,避免编译时OOM,操作方式为在树莓派宿主机执行:
    sudo dphys-swapfile swapoff
    sudo sed -i 's/CONF_SWAPSIZE=.*/CONF_SWAPSIZE=2048/g' /etc/dphys-swapfile
    sudo dphys-swapfile setup
    sudo dphys-swapfile swapon
    
  • 第四步:排查网络配置问题
    进入容器后执行ping mirrors.ustc.edu.cn确认网络连通性,若出现解析失败的情况,给Docker daemon添加公共DNS配置:
    修改/etc/docker/daemon.json新增:

    {
      "dns": ["114.114.114.114", "8.8.8.8"]
    }
    

    之后重启docker服务生效。

可用Dockerfile示例

FROM php:7.4-apache
LABEL maintainer="dev@chialab.io"

# 替换为国内ARM源
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && \
    sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -qq -y curl php7.4-mysql php7.4-zip

RUN a2enmod rewrite

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:15:07