直接删除/setup目录是安全且推荐的操作,因其仅为初始配置工具,长期暴露存在未授权修改风险;确认config.inc.php正常加载后,应通过sudo rm -rf删除,并验证返回404且无残留目录。

直接删掉 /setup 目录是安全且推荐的操作
只要 phpMyAdmin 已完成初始配置、config.inc.php 能正常加载,/setup 目录就不再需要。它本质是个 Web 界面配置工具,运行时会写入敏感配置,长期暴露在 Web 可访问路径下存在风险——比如被扫描到后触发未授权配置修改。
确认是否还能访问 setup 页面
先用浏览器访问 https://your-domain.com/phpmyadmin/setup(或对应路径)。如果返回 403/404,说明已有防护;若能打开页面,尤其显示“Welcome to phpMyAdmin Setup”,说明该目录仍可执行,必须立即处理。
- 检查
/var/www/html/phpmyadmin/setup/.htaccess是否存在且内容为Require all denied或Deny from all - 若 Apache 启用了
AllowOverride None,.htaccess会被忽略,此时仅靠文件权限或删除更可靠 - Nginx 默认不读
.htaccess,必须在 server 块中显式禁止:location /setup { deny all; }
执行删除前的两个关键检查
别急着 rm -rf,先确认两件事:
- 运行
ls -l /var/www/html/phpmyadmin/setup,看属主是否为www-data或apache—— 若是,需用sudo权限删除 - 检查
config.inc.php是否引用了setup目录里的文件(极少见),搜索:grep -r "setup/" /var/www/html/phpmyadmin/,无输出即可放心删
删除命令与验证方式
标准路径下执行:
立即学习“PHP免费学习笔记(深入)”;
sudo rm -rf /var/www/html/phpmyadmin/setup
删完立刻验证:
- 再次访问
/setupURL,应返回 404 - 运行
find /var/www/html/phpmyadmin -name "setup" -type d,应无任何输出 - 检查 Web 服务器错误日志(如
/var/log/apache2/error.log)是否有残留的 setup 相关报错,有则说明某处还硬编码调用了它
注意:有些一键脚本或 Docker 镜像会在启动时自动重建 setup 目录,这种情况下得查构建逻辑或覆盖镜像行为——单纯删目录只是临时有效。



















