宝塔面板PHP禁用函数列表,安全加固推荐

PHP禁用函数是宝塔面板里成本最低、见效最快的一项安全加固手段。
它把 exec、system、eval 这类容易被木马利用的高危函数直接关掉,即使网站被上传了恶意脚本,攻击者能执行的系统命令也会被大幅限制。
本文面向零基础站长,讲清在宝塔面板中设置PHP禁用函数列表的完整步骤、推荐清单和验证方式。

先确认你的环境是否适合直接禁用

并不是所有网站都能照搬同一份禁用列表。
动手前先做一个判断:

  • 如果网站是 WordPress、Typecho、ThinkPHP、Laravel 等主流程序,且没有使用需要执行系统命令的插件,可以按推荐列表禁用。
  • 如果网站依赖 图片处理、PDF 生成、视频转码、定时备份脚本,部分函数被禁用后功能会报错。
  • 如果服务器上多个站点共用一个PHP版本,禁用函数对该版本下所有站点同时生效,需要先确认没有其他程序依赖这些函数。

宝塔面板的禁用函数是写在PHP配置文件里的,修改后需要重载PHP才会生效。
建议在业务低峰期操作,并提前备份网站和数据库。

在宝塔面板里找到禁用函数设置入口

操作路径很固定,按下面顺序点即可:

  1. 登录宝塔面板,左侧菜单点击 软件商店。
  2. 在已安装列表中找到对应的PHP版本,例如 PHP-7.4、PHP-8.0。
  3. 点击该PHP版本右侧的 设置 按钮。
  4. 在弹出的配置窗口中切换到 禁用函数 标签页。
  5. 在输入框中按行或按逗号填写要禁用的函数名,保存后点击 重载配置。

如果你习惯命令行,也可以直接编辑配置文件。
以PHP 7.4为例,路径通常是:

/www/server/php/74/etc/php.ini

找到 disable_functions 这一行,把函数名用英文逗号连接:

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source

保存后执行重载:

/etc/init.d/php-fpm-74 reload

面板操作和命令行改的是同一个配置,两种方式选一种即可,不要重复改造成冲突。

推荐的PHP禁用函数清单

下面这份列表适合大多数建站场景,按风险等级分组,你可以根据实际情况删减。

命令执行类,风险最高,建议必禁:

exec,system,shell_exec,passthru,proc_open,popen,pcntl_exec

代码执行与信息泄露类,建议禁用:

eval,assert,create_function,phpinfo,show_source,highlight_file,parse_ini_file

文件与权限相关,按需禁用:

chmod,chown,chgrp,file_put_contents,copy,rename,unlink

最后这一组要谨慎。
很多CMS在上传图片、更新缓存时会用到 copy、rename、unlink,全禁可能导致后台上传失败。
建议先禁前两组,观察一周没有异常再考虑第三组。

一个可直接使用的保守版本:

disable_functions = exec,system,shell_exec,passthru,proc_open,popen,pcntl_exec,eval,assert,create_function,phpinfo,show_source,highlight_file,parse_ini_file

保存后如何验证是否生效

改完配置不能只看面板显示,要用实际结果确认。
推荐两种验证方式:

方法一:用探针或临时PHP文件测试

在网站根目录新建 test.php,写入调用 phpinfo() 的代码,访问后如果页面提示函数被禁用,说明生效。
测试完立即删除该文件。

方法二:查看PHP错误日志

访问网站后台,如果某个功能报错,去宝塔面板 网站 - 对应站点 - 日志 或 PHP 错误日志里查找关键字,例如:

Warning: exec() has been disabled for security reasons

看到这类提示,说明函数确实被禁用了,同时也告诉你哪个程序在用这个函数。

常见报错与避坑说明

禁用函数后最常见的现象是网站某个功能白屏或报500错误。
处理思路是:

  • 先看错误日志定位是哪个函数被禁,不要盲目把整份列表清空。
  • 如果确认是业务必需函数,比如某插件需要 proc_open,就把这一个函数从列表里移除,而不是全部放开。
  • 不要禁用 mail、curl_init、json_decode 这类基础函数,它们和命令执行无关,禁了只会让网站功能异常。
  • 修改 php.ini 后如果面板显示已保存但没生效,检查是否点过重载,或重启一次PHP-FPM。
  • 多版本PHP要分别设置,只改一个版本不会影响其他版本。

另外要清楚一点:禁用函数是纵深防御的一环,不能替代及时更新程序、设置强密码和限制目录权限。
它的作用是提高攻击门槛,不是让网站绝对安全。

写在最后

宝塔面板PHP禁用函数列表并不需要照搬网上的长清单,核心是把命令执行类函数关掉,再根据自己程序的实际依赖逐步收紧。
建议先按本文的保守版本配置,观察一段时间,确认无报错后再考虑增加文件操作类函数。
安全加固是一个持续调整的过程,遇到报错优先查日志、定位函数,再决定是否放行。

分享到:
上一篇
宝塔面板防火墙IP黑名单批量导入导出
下一篇
宝塔面板磁盘告警设置,空间不足短信提醒
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意