我正在使用PHP 7(7.0.3-Apache)和MySql(5.7.10)的官方docker镜像。 使用docker-compose,从图像创建容器并链接它们。
从https://github.com/php/php-src/blob/php-7.0.3/php.ini-production复制php.ini,用替换 dll 扩展并将该文件放在 / usr / local / etc / php < / em>并启用了_pdo_mysql_扩展名。
extension=php_pdo_mysql.so
phpinfo 显示 php.ini 已加载但未加载 pdo_mysql ,因为它未安装。
我用Google搜索并尝试使用apt-get install
的不同扩展名:
php-mysql
,php7-mysql
,php7.0-mysql
,php7.0.3-mysql
。
它们都不起作用。错误说:E: Unable to locate package
。
使用php5-mysql
,它已安装但在使用命令docker kill --signal="USR1" <container-name>
重新启动apache后,扩展名未显示在 php.ini 中加载。
(不要认为它与码头工人有多大关系,但我现在是码头工人的新手,现在就尝试使用它,所以在这里提一下。)
任何人都可以帮助使用 php7-Apache 配置 pdo_mysql 扩展名吗?
答案 0 :(得分:6)
您需要在docker镜像上的/etc/apt/sources.list中使用Dotdeb存储库:
FROM php:7-apache
# Install pdo_mysql
RUN apt-get update \
&& echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list \
&& echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list \
&& apt-get install -y wget \
&& wget https://www.dotdeb.org/dotdeb.gpg \
&& apt-key add dotdeb.gpg \
&& apt-get update \
&& apt-get install -y php7.0-mysql \
&& docker-php-ext-install pdo_mysql