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

如何在Dockerfile中设置php.ini的pdo_mysql.default_socket默认值

解决Docker中pdo_mysql.default_socket本地值为null的问题

当前基于php:7.4-fpm构建的镜像中,pdo_mysql.default_socket的本地值为null,可通过修改Dockerfile添加自定义PHP配置来解决,以下是调整后的完整Dockerfile:

FROM php:7.4-fpm
RUN apt-get -y update \
        && apt-get install -y libicu-dev \
                libxml2-dev \
                libzip-dev \
                libpng-dev \
                libwebp-dev \
                libjpeg-dev \
                libxpm-dev \
                libfreetype6-dev \
                libjpeg62-turbo-dev \
                zip \
                unzip \
                nano \
        && docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-freetype \
        && docker-php-ext-configure intl \
        && docker-php-ext-install mysqli intl pdo pdo_mysql soap opcache zip gd bcmath sockets

# 配置pdo_mysql默认socket路径
RUN echo "pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock" > /usr/local/etc/php/conf.d/pdo_mysql_socket.ini

COPY ./ioncube_loader_lin_7.4.so /usr/local/lib/php/extensions/no-debug-non-zts-20190902
RUN docker-php-ext-enable ioncube_loader_lin_7.4.so
RUN chown -R www-data:www-data /var/www

说明

  • 新增的RUN命令会在PHP的配置目录/usr/local/etc/php/conf.d下创建pdo_mysql_socket.ini文件,PHP启动时会自动加载该目录下的所有配置文件。
  • 配置的/var/run/mysqld/mysqld.sock是官方MySQL、MariaDB Docker镜像默认的socket路径,若你的数据库容器使用了自定义socket路径,替换为对应路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:52:42