DVWA 能不能跑起来,安装八成取决于你 PHP 版本和 MySQL 认不认对方。教程我见过太多人卡在登录页,安装输入 admin/password 之后页面一片空白——不是教程密码错了,是安装数据库压根没连上。
先把环境说清楚。教程DVWA 是安装个 PHP 写的漏洞演练靶场,它需要三样东西:Web 服务器、教程PHP、安装MySQL。教程你可以用 XAMPP 或 phpStudy 一键装,安装也可以自己配 Apache+PHP+MySQL。教程图省事就上 XAMPP,安装Windows 和 macOS 都有。教程我手头这台是安装 Ubuntu,直接用 apt 装 lamp 环境,命令如下:
sudo apt install apache2 php php-mysql mysql-server php-gd php-mbstring 装完记得重启 Apache:sudo systemctl restart apache2。MySQL 如果没自动启动,也手动拉一下。
去 GitHub 搜 digininja/DVWA,或者直接 git clone:
git clone https://github.com/digininja/DVWA.git 把整个文件夹丢进 Web 根目录。XAMPP 是 htdocs,Linux 默认 /var/www/html。我习惯把文件夹名改成 dvwa,访问路径就是 http://localhost/dvwa。
进入 config 目录,把 config.inc.php.dist 复制一份改名为 config.inc.php。打开它,找到这几行:
$_DVWA[ 'db_server' ] = '127.0.0.1'; $_DVWA[ 'db_database' ] = 'dvwa'; $_DVWA[ 'db_user' ] = 'root'; $_DVWA[ 'db_password' ] = ''; $_DVWA[ 'db_port' ] = '3306'; 如果你 MySQL root 有密码,就填进去。没密码留空。数据库名 dvwa 不用提前建,DVWA 安装脚本会自己创建,前提是 root 用户有 CREATE 权限。
还有个坑:allow_url_fopen 和 allow_url_include 最好打开,不然文件包含漏洞那关没法玩。在 php.ini 里改成 On,然后重启 Apache。
浏览器打开 http://localhost/dvwa/setup.php。页面会列出几个检查项,绿色 OK 就继续。往下拉,点 “Create / Reset Database” 按钮。如果一切正常,会跳转到登录页,提示数据库创建成功。
登录账号 admin,密码 password。进去之后第一件事——去 DVWA Security 把难度调成 low,不然很多漏洞模块默认不显示完整功能。
“Could not connect to the database” 十有八九是 MySQL 没跑或者密码不对。用 mysql -u root -p 手动连一下验证。
“Access denied for user ‘root’@‘localhost’” 说明密码错了,或者 MySQL 8 的 caching_sha2_password 认证插件搞鬼。改一下:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES; 页面空白?打开 PHP 错误显示。php.ini 里 display_errors = On,重启服务再看报错。
还有种情况:安装按钮点了没反应,地址栏还是 setup.php。多半是文件权限问题,Linux 下给 /var/www/html/dvwa 目录 755,hackable/uploads 目录 777。别嫌麻烦,DVWA 要写文件。
最后提醒一句:这玩意儿是故意留洞的,别放公网。本地虚拟机或者内网 IP 玩玩就行。我一般用 Docker 跑,docker run --rm -it -p 80:80 vulnerables/web-dvwa,一行命令完事,比配环境省心多了。