news 2026/6/1 12:23:51

新手避坑实录:我在Windows 11上用PHPStudy搭DVWA靶场遇到的3个典型错误及解决方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
新手避坑实录:我在Windows 11上用PHPStudy搭DVWA靶场遇到的3个典型错误及解决方法

新手避坑实录:Windows 11下PHPStudy搭建DVWA靶场的3个典型错误及解决方案

第一次在Windows 11上用PHPStudy搭建DVWA靶场时,我像个无头苍蝇一样踩遍了所有能踩的坑。本以为跟着教程一步步操作就能轻松搞定,结果从PHP配置到数据库连接,各种报错接踵而至。这篇文章记录了我解决三个最典型问题的完整过程,希望能帮到同样被困住的初学者。

1. "PHP function allow_url_include is disabled"错误全解析

当我兴冲冲地在浏览器输入127.0.0.1/dvwa后,迎接我的不是期待中的登录界面,而是一行刺眼的红色错误提示:

PHP function allow_url_include is disabled.

错误背后的真相

这个错误实际上是因为DVWA需要启用PHP的allow_url_include功能,而PHPStudy默认安装时这个选项是关闭的。这个配置项控制着PHP是否允许通过URL包含远程文件,DVWA的部分功能依赖于此。

常见误解:很多新手会直接去修改DVWA的配置文件,但这其实是个PHP环境配置问题。

分步解决方案

  1. 定位PHP配置文件

    • 打开PHPStudy主界面
    • 点击左侧菜单的"PHP"
    • 选择当前使用的PHP版本(通常是7.x)
    • 点击"配置"按钮
  2. 修改php.ini文件

    ; 找到这行配置(约在第800行) allow_url_include = Off

    改为:

    allow_url_include = On
  3. 重启服务

    • 返回PHPStudy主界面
    • 点击"重启"按钮应用更改

注意:如果修改后问题依旧,检查是否修改了正确的php.ini文件。PHPStudy可能同时存在多个PHP版本的配置文件。

验证是否解决

刷新DVWA页面,如果配置正确,错误提示应该消失,取而代之的是数据库设置界面。如果仍然看到错误,尝试清除浏览器缓存或使用隐私模式访问。

2. 数据库连接失败:从"Fatal error"到顺畅运行

解决了第一个问题后,点击"Create/Reset Database"按钮时,我又遇到了新的拦路虎:

Fatal error: Call to undefined function mysql_connect()

问题根源分析

这个错误表明PHP缺少MySQL扩展支持。现代PHP版本(7.0+)已经移除了原生的mysql_函数,改用mysqli_或PDO。但DVWA为了兼容性,仍然使用了旧式函数。

关键发现:不是所有PHP版本都能完美运行DVWA,需要特定配置。

详细解决步骤

  1. 切换PHP版本

    • 在PHPStudy主界面
    • 点击"PHP版本"
    • 选择PHP 5.4.45(这是兼容性最好的版本之一)
  2. 启用MySQL扩展

    • 再次打开当前PHP版本的配置
    • 确保以下行没有注释(去掉前面的分号):
      extension=php_mysql.dll extension=php_mysqli.dll
  3. 检查MySQL服务

    • 确认PHPStudy中的MySQL服务正在运行
    • 测试数据库连接是否正常:
      mysql -u root -p
      输入密码(默认为root)看能否成功登录
  4. 修改DVWA配置: 打开dvwa/config/config.inc.php,确保数据库配置如下:

    $_DVWA['db_user'] = 'root'; $_DVWA['db_password'] = 'root'; $_DVWA['db_database'] = 'dvwa';

常见连带问题

  • Access denied for user 'root'@'localhost':说明MySQL密码不匹配,需要重置密码或修改DVWA配置
  • Can't connect to MySQL server:检查MySQL服务是否真的启动,有时需要手动重启

3. 文件上传路径异常:破解upload-labs的路径谜题

在upload-labs靶场测试文件上传功能时,我发现虽然显示上传成功,但实际文件却找不到。控制台显示:

Warning: move_uploaded_file(): Unable to move...

深层原因探究

这个问题通常由三个因素导致:

  1. 目录权限不足:Windows 11默认对Program Files目录有严格权限控制
  2. 路径配置错误:相对路径和绝对路径混用导致
  3. PHP上传限制:文件大小超过PHP默认配置

全方位解决方案

第一步:检查并修改目录权限

  1. 找到PHPStudy的www目录(通常是C:\phpstudy_pro\WWW
  2. 右键点击upload-labs文件夹 → 属性 → 安全
  3. 给Users组添加"完全控制"权限

第二步:修正配置文件打开upload-labs的upload/upload.php,查找以下配置:

$upload_path = $_SERVER['DOCUMENT_ROOT'].'/upload/';

确保路径指向正确的位置,或者改为绝对路径:

$upload_path = 'C:/phpstudy_pro/WWW/upload-labs/upload/';

第三步:调整PHP上传限制在php.ini中修改以下参数:

upload_max_filesize = 10M post_max_size = 12M max_execution_time = 300

验证上传功能

  1. 尝试上传一个小文本文件
  2. 检查指定目录是否真的出现了该文件
  3. 如果使用相对路径,确保从正确的位置引用

高级技巧:使用虚拟主机避免路径问题

在PHPStudy中创建虚拟主机可以彻底解决路径混乱问题:

  1. 点击"网站" → "创建网站"
  2. 填写域名(如dvwa.test)和路径
  3. 修改hosts文件添加127.0.0.1 dvwa.test
  4. 通过专属域名访问,路径问题迎刃而解

4. 预防胜于治疗:搭建靶场的最佳实践

经历了这些坑后,我总结出一套顺畅搭建PHPStudy靶场的方法论:

环境准备清单

  • 系统选择

    • 推荐Windows 10/11专业版
    • 关闭杀毒软件实时防护(避免误拦截)
    • 以管理员身份运行PHPStudy
  • 目录规划

    C:\web_environment\ ├── phpstudy_pro ├── projects │ ├── dvwa │ ├── sqlilabs │ └── upload-labs
  • 版本组合建议

    靶场名称推荐PHP版本必要扩展
    DVWA5.4.45mysql, gd
    sqli-labs5.4.45mysql, pdo
    upload-labs7.2.34fileinfo, exif

调试技巧宝典

  1. 查看完整错误信息: 在php.ini中设置:

    display_errors = On error_reporting = E_ALL
  2. 分步验证法

    • 先测试纯PHP文件能否执行
    • 再测试MySQL连接
    • 最后测试具体功能
  3. 日志分析

    • PHP错误日志:phpstudy_pro/Extensions/php/版本/php_error.log
    • Apache访问日志:phpstudy_pro/Extensions/Apache2.4.39/logs

效率工具推荐

  • 数据库管理:使用PHPStudy自带的phpMyAdmin
  • 文件比对:WinMerge检查配置文件差异
  • 端口检测:TCPView查看端口占用情况
  • 快速切换:PHPStudy的多版本共存功能

搭建Web安全靶场是学习渗透测试的第一步,也是检验耐心和解决问题能力的试金石。每解决一个报错,对Web应用运行机制的理解就加深一层。记住,遇到问题时不慌不忙地查看日志、分析原因,才是成长为合格安全工程师的必经之路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/1 12:23:06

想上岸南大AI或软工?这份保姆级保研准备清单请收好(含导师联系、笔试面试重点)

南大AI与软工保研实战指南:从科研准备到考核通关的深度策略每年九月,南京大学人工智能学院和软件学院的推免招生都会吸引全国顶尖计算机学子的目光。作为国内最早设立人工智能本科专业的学院和首批国家级示范性软件学院,这两个平台的竞争激烈…

作者头像 李华
网站建设 2026/6/1 12:23:04

social-auto-upload Bilibili上传详细教程:使用biliup集成自动化投稿

social-auto-upload Bilibili上传详细教程:使用biliup集成自动化投稿 【免费下载链接】social-auto-upload 自动化上传视频到社交媒体:抖音、小红书、视频号、tiktok、youtube、bilibili 项目地址: https://gitcode.com/GitHub_Trending/so/social-aut…

作者头像 李华
网站建设 2026/6/1 12:19:50

龙蜥AnolisOS 8.8装完系统后,这5个必做的配置你做了吗?(网络、时间、防火墙、软件源、基础工具)

龙蜥AnolisOS 8.8系统初始化配置实战指南刚装完系统的龙蜥AnolisOS 8.8就像一张白纸,虽然纯净但缺乏生产力所需的各项基础配置。作为系统管理员,我们需要在最短时间内将其打造成一个稳定、高效的开发或生产环境。本文将带你完成五个关键配置步骤&#xf…

作者头像 李华
网站建设 2026/6/1 12:18:30

网盘下载困境终结者:如何用LinkSwift实现九大平台统一管理

网盘下载困境终结者:如何用LinkSwift实现九大平台统一管理 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …

作者头像 李华
网站建设 2026/6/1 12:16:59

从设备维修到资源调度,重新理解 SAP S/4HANA Asset Management 的业务闭环

工厂里最怕的事情,不是设备需要维修,而是维修这件事没有被提前看见。生产线上的一台灌装机、一台压缩机、一套输送设备,平时看起来只是设备台账里的一个编号,真到停机那一刻,它牵动的就不只是维修班组,还会牵动生产计划、备件库存、采购、成本归集、质量交付,甚至客户订…

作者头像 李华