Docker-如何禁用PHP ext /模块

Moh*_*iri 1 php php-extension docker

我正在使用PHP API,我想在我的PHP-FPM映像中禁用未使用的php模块,例如“ sqlite3,pdo ..”。

我是一个docker初学者,我想知道是否有类似的东西,docker-php-ext-enable如果不是,禁用未使用的php模块的最佳实践是什么。

Alf*_*ang 6

最后,我找到了关键点。

在docker php容器内部,所有已注册模块都由以下路径下的配置文件保存。

/usr/local/etc/php/conf.d/*.ini
Run Code Online (Sandbox Code Playgroud)

bash 放入容器中:

docker exec -it php_container_name bash
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式列出所有已启用的模块php -m

cd到该文件夹,你可以看到与配置文件:

cd /usr/local/etc/php/conf.d/
ls

# output
docker-php-ext-mcrypt.ini  docker-php-ext-mysqli.ini    
docker-php-ext-opcache.ini  opcache-recommended.ini  
docker-php-ext-zip.ini
Run Code Online (Sandbox Code Playgroud)

要禁用某些扩展模块,请创建一个dir disabled并将该.ini文件移入其中,例如:

mkdir disalbled
mv docker-php-ext-opcache.ini disabled
mv opcache-recommended.ini
Run Code Online (Sandbox Code Playgroud)

最后,按Ctrl+D退出容器,然后重新启动容器以使更改生效。

docker restart php_container_name
Run Code Online (Sandbox Code Playgroud)

您可以进入容器并运行php -m以查看相关的扩展名已消失。

  • 我正在使用 php:7.2.5-fpm 并想禁用默认情况下随图像一起提供的 pdo_sqlite。怎么做? (2认同)