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

如何在Alpine Docker镜像中安装php8.0-ssh2扩展

问题原因

你当前使用的ssh2 1.2版本仅适配PHP 7.x系列,不兼容PHP 8.0+,因此原有安装方案执行后扩展无法正常加载。

可行安装方案

将libssh2-dev合并到原有构建依赖段,安装适配PHP 8.0的ssh2 1.3.1版本即可,同时可减少镜像分层、避免残留构建工具。
修改后的完整构建命令如下:

RUN apk add --no-cache mysql-client msmtp perl wget procps shadow libzip libpng libjpeg-turbo libwebp freetype icu libssh2

RUN apk add --no-cache --virtual build-essentials \
    icu-dev icu-libs zlib-dev g++ make automake autoconf libzip-dev libssh2-dev \
    libpng-dev libwebp-dev libjpeg-turbo-dev freetype-dev && \
    docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg --with-webp && \
    docker-php-ext-install gd && \
    docker-php-ext-install mysqli && \
    docker-php-ext-install pdo_mysql && \
    docker-php-ext-install intl && \
    docker-php-ext-install opcache && \
    docker-php-ext-install exif && \
    docker-php-ext-install zip && \
    # 安装适配PHP8的ssh2扩展
    pecl install ssh2-1.3.1 && \
    docker-php-ext-enable ssh2 && \
    # 清理构建缓存和依赖
    apk del build-essentials && rm -rf /usr/src/php* /tmp/pear/*

备选方案(PECL网络异常时使用)

如果PECL源访问失败,可以直接通过源码编译安装,替换上述代码中pecl安装的部分即可:

# 下载源码编译安装ssh2扩展
wget https://pecl.php.net/get/ssh2-1.3.1.tgz && \
tar -xf ssh2-1.3.1.tgz && \
cd ssh2-1.3.1 && \
phpize && \
./configure && \
make && make install && \
docker-php-ext-enable ssh2 && \
cd .. && rm -rf ssh2-1.3.1 ssh2-1.3.1.tgz

验证方式

镜像构建完成后,执行命令 php -m | grep ssh2,正常输出ssh2即表示扩展安装成功。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:06:05