无法在 php:fpm-alpine 中加载 mysqlnd 扩展

Can't load mysqlnd extension in php:fpm-alpine

我正在尝试设置一个基于 php:fpm-alpine 的 php 图像。 我想让 php 使用 mysqlnd 扩展。更确切地说:我希望文件 mysqlnd.so 位于扩展文件夹 /usr/local/lib/php/extensions/no-debug-non-zts-20190902 中。不知何故,这似乎是存储 .so 个文件的文件夹。

我在 php conf.d 文件夹中有一个用于启用扩展的 .ini 文件:

; configuration for php mysql module
; priority=10
extension=mysqlnd

我的 Dockerfile 如下所示:

FROM php:fpm-alpine

RUN apk update --no-cache \
    && apk add --no-cache $PHPIZE_DEPS \
    && apk add --no-cache php-mysqlnd \
    && docker-php-ext-install mysqlnd \
    && docker-php-ext-enable mysqlnd 

当我尝试构建图像时,它停止并输出以下内容(仅相关部分):

#5 7.687 fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
#5 7.820 fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
#5 7.980 (1/3) Installing php7-common (7.3.24-r0)
#5 8.000 (2/3) Installing php7-openssl (7.3.24-r0)
#5 8.021 (3/3) Installing php7-mysqlnd (7.3.24-r0)
#5 8.048 OK: 255 MiB in 59 packages
#5 9.541 fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
#5 9.819 fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
#5 10.15 (1/1) Installing .phpize-deps (20201122.190848)
#5 10.16 OK: 255 MiB in 60 packages
#5 10.22 Cannot find config.m4. 
#5 10.22 Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module
#5 10.22 
------

错误基本上是:

#5 10.22 Cannot find config.m4.

Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module

我还创建了一个没有 mysqlnd 的功能图像,并尝试从 cointainer 的 cli 手动安装它。也没用。

非常感谢您的帮助,因为我似乎无法让它正常工作。

发生这种情况是因为您不必安装它,it is there already

运行 这个命令

docker run -ti php:fpm-alpine php -i | grep mysqlnd

产生此输出:

Configure Command =>  './configure'  '--build=x86_64-linux-musl' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--enable-option-checking=fatal' '--with-mhash' '--with-pic' '--enable-ftp' '--enable-mbstring' '--enable-mysqlnd' '--with-password-argon2' '--with-sodium=shared' '--with-pdo-sqlite=/usr' '--with-sqlite3=/usr' '--with-curl' '--with-libedit' '--with-openssl' '--with-zlib' '--with-pear' '--enable-fpm' '--with-fpm-user=www-data' '--with-fpm-group=www-data' '--disable-cgi' 'build_alias=x86_64-linux-musl'
mysqlnd
mysqlnd => enabled
Version => mysqlnd 7.4.12
Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password

重要的部分是:

mysqlnd => enabled
Version => mysqlnd 7.4.12