最常用也最稳妥的禁用扩展方式是注释php.ini中对应extension行;需先用php --ini或phpinfo()确认正确配置文件路径,区分CLI与Web环境,修改后重启对应服务(Apache/PHP-FPM),或使用phpdismod命令、-d参数临时禁用。

直接在 php.ini 中禁用扩展,最常用也最稳妥的方式是注释掉对应的 extension 行。但要注意:不同 PHP 版本和安装方式(如 apt、源码编译、Docker)的配置结构略有差异,盲目修改可能导致 PHP 启动失败。
找到并编辑正确的 php.ini 文件
先确认你改的是哪个配置文件,避免白忙活:
- 命令行下运行
php --ini,看 “Loaded Configuration File” 路径 - Web 环境中创建
info.php,内容为<?php phpinfo(); ?>,浏览器打开后查找 “Loaded Configuration File” - 注意 CLI(终端)和 Web(如 Apache 或 PHP-FPM)可能使用不同的 php.ini,要分别检查
禁用扩展的标准写法
在 php.ini 文件中,找到类似这样的行:
extension=redis.so
extension=mysqli.so
zend_extension=xdebug.so
立即学习“PHP免费学习笔记(深入)”;
禁用其中某一个,只需在行首加英文分号 ;:
;extension=redis.so
保存后,必须重启对应服务才生效:
- Apache:运行
sudo systemctl restart apache2 - PHP-FPM:运行
sudo systemctl restart php8.1-fpm(版本号按实际调整) - CLI 场景无需重启,但下次执行脚本时会自动读取新配置
更安全的替代方案:用独立 .ini 文件管理
现代 PHP(尤其 Debian/Ubuntu 的 apt 安装包)推荐把每个扩展放在单独的 .ini 文件里,比如:
/etc/php/8.1/mods-available/redis.ini
/etc/php/8.1/mods-available/xdebug.ini
这时禁用扩展不用碰 php.ini,而是用系统命令:
- 禁用 CLI 的 redis:
sudo phpdismod -s cli redis - 禁用 FPM 的 xdebug:
sudo phpdismod -s fpm xdebug - 重新启用只需把
dismod换成enmod
本质是软链接操作,不删文件,可逆且不易出错。
临时禁用(不改配置文件)
调试时不想永久关闭,可用命令行参数绕过:
- CLI 下完全跳过所有扩展:
php -n script.php - 只禁用某个扩展(如 redis):
php -d extension= script.php - 只禁用 zend 扩展(如 xdebug):
php -d zend_extension= script.php
注意:-d 参数仅对当前命令生效,不影响 Web 服务,也不需要重启。



















