宝塔面板8.0.1的php安全设置核心是版本可控、扩展精简、配置加固、运行隔离:需锁定php 8.0.1,禁用exec等高危函数并关闭expose_php,取消全局限制open_basedir但设精确路径,分离权限并阻止上传目录执行php文件。

宝塔面板 8.0.1 的 PHP 安全设置,核心是「版本可控、扩展精简、配置加固、运行隔离」四点。不是装得越多越安全,而是关得准、限得清、写得对。
一、选对并锁定 PHP 版本
PHP 8.0.1 是宝塔 8.0.1 默认支持的稳定版本,但需注意:
- 不要用 PHP 7.x(不支持现代框架语法,且已停止安全更新)
- 避免升级到 PHP 8.3+(ThinkPHP/Laravel 等主流框架尚未完全兼容,易报
Undefined function或路由失效) - 安装后务必点击对应 PHP 版本右侧【设置】→【服务管理】→【重启】,否则 phpinfo() 仍显示旧版本
二、禁用高危函数与启用基础防护
进入【软件商店】→ 找到已安装的 PHP 8.0.1 → 【设置】→ 【配置修改】,在配置文件末尾添加或修改以下两行:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_sourceexpose_php = Off
说明:
- disable_functions 去掉空格和换行,确保所有函数名用英文逗号分隔;若已有部分函数,直接追加,不要重复
- expose_php = Off 防止 HTTP 响应头暴露 PHP 版本,降低被针对性攻击风险
- 保存后宝塔会自动校验语法并重载 PHP,无需手动操作
三、关闭防跨站(open_basedir)但手动加固路径
宝塔默认开启的「防跨站攻击」开关(即 open_basedir 全局限制)会破坏 ThinkPHP/Laravel 的自动加载机制,导致 500 错误。正确做法是:
- 进站点【设置】→【网站目录】→ 取消勾选「防跨站攻击(仅PHP生效)」
- 回到 PHP 8.0.1【设置】→【配置修改】,找到
open_basedir行(若无则新增),设为精确路径:
open_basedir = /www/wwwroot/your-site.com:/tmp:/proc
(把your-site.com替换为你的实际网站根目录) - 该设置既阻止跨站读取,又允许临时文件和系统信息访问,兼顾兼容与安全
四、分离代码与运行权限,阻断上传目录执行
安全的关键不在“全站只读”,而在“代码不可写、缓存可写、上传不可执行”:
- 右键网站根目录 →【设置权限】→ 勾选「禁止写入」(保护 .php/.ini 文件)
- 再右键
runtime/、uploads/、logs/等目录 → 取消「禁止写入」 - 进站点【设置】→【配置文件】,在
server{...}块末尾插入:
保存后务必点击【重载配置】,测试上传 test.php 到 uploads 目录,访问应返回 403。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











