[关闭]
@Chiang 2020-01-09T09:20:17.000000Z 字数 1002 阅读 853

docker-php-ext-enable可以开启扩展的原理

Docker


(我们以docker镜像php:7.2-cli-alpine为例进行讲解)

我们知道,当我们编译完一个PHP扩展的时候,执行命令:

  1. docker-php-ext-enable 扩展名

就可以开启这个扩展。起初我并没有觉得很奇怪,我以为肯定是在php.ini文件里面增加了一行:

  1. extension=扩展名

但是,今天我由于某些原因想要去寻找这个容器里面的php.ini文件却发现并没有找到。于是我就很纳闷了。查看docker-php-ext-enable的源码才发现,原来它是这样开启扩展的:

  1. ini="/usr/local/etc/php/conf.d/${iniName:-"docker-php-ext-$ext.ini"}"
  2. if ! grep -q "$line" "$ini" 2>/dev/null; then
  3. echo "$line" >> "$ini"
  4. fi

然后我就明白了,开启扩展的那一行是写在文件/usr/local/etc/php/conf.d/docker-php-ext-扩展名.ini这个配置文件里面的。查看命令php -i的输出,得到如下内容:

  1. Scan this dir for additional .ini files => /usr/local/etc/php/conf.d
  2. Additional .ini files parsed => /usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini,
  3. /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini,
  4. /usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini,
  5. /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
  6. /usr/local/etc/php/conf.d/docker-php-ext-sockets.ini,
  7. /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
  8. /usr/local/etc/php/conf.d/docker-php-ext-tinyswoole.ini,

焕然大悟。


参考资料:
docker-php-ext-enable可以开启扩展的原理

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注