如何在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
相关产品推荐
相关产品推荐

