Linux环境下DVWA的完整安装与配置指南
在网络安全测试与学习领域,DVWA(Damn Vulnerable Web Application)是一款广受欢迎的Web漏洞靶场,它提供了多种常见的Web安全漏洞环境,适合初学者练习渗透测试技术,本文将详细介绍在Linux系统(以Ubuntu为例)中安装、配置DVWA的全过程,包括环境准备、软件安装、安全配置及常见问题解决,帮助读者快速搭建安全的测试环境。

环境准备
在安装DVWA之前,需确保Linux系统满足以下基础环境要求:
- 操作系统:推荐Ubuntu 20.04/22.04 LTS,其他基于Debian的发行版也可参考。
- Web服务器:Apache或Nginx,本文以Apache为例。
- 数据库:MySQL 5.7+或MariaDB 10.2+。
- 编程语言:PHP 7.4+(DVWA 2.0+版本需PHP 7.4以上)。
- 权限要求:需具备root或sudo权限,以安装软件包和修改配置文件。
安装基础组件
更新系统包
首先更新系统软件包列表并升级已安装的包:
sudo apt update && sudo apt upgrade -y
安装Apache
sudo apt install apache2 -y
安装完成后启动Apache服务并设置开机自启:
sudo systemctl start apache2 sudo systemctl enable apache2
通过浏览器访问http://服务器IP,若显示Apache默认页面,则安装成功。
安装MySQL/MariaDB
sudo apt install mysql-server -y
安装后安全配置MySQL(设置root密码、移除匿名用户等):
sudo mysql_secure_installation
根据提示完成配置,然后启动MySQL服务并设置自启:
sudo systemctl start mysql sudo systemctl enable mysql
安装PHP及扩展
DVWA依赖PHP的多个扩展,需安装以下组件:
sudo apt install php php-mysql php-gd php-xml php-mbstring php-curl php-zip -y
安装后验证PHP版本:

php -v
确保版本为7.4以上(若默认版本过低,需添加PPA源升级)。
下载与配置DVWA
下载DVWA
从GitHub官方仓库克隆DVWA最新版本:
cd /var/www/html sudo git clone https://github.com/digininja/DVWA.git
将目录权限设置为Apache用户:
sudo chown -R www-data:www-data /var/www/html/DVWA sudo chmod -R 755 /var/www/html/DVWA
配置数据库
登录MySQL创建数据库和用户:
sudo mysql -u root -p
执行以下SQL命令(替换password为自定义密码):
CREATE DATABASE dvwa; CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost'; FLUSH PRIVILEGES; EXIT;
修改DVWA配置文件
进入DVWA目录,复制并编辑配置文件:
cd /var/www/html/DVWA/config cp config.inc.php.dist config.inc.php nano config.inc.php
修改以下关键配置:
$_DVWA[ 'db_server' ] = '127.0.0.1'; $_DVWA[ 'db_database' ] = 'dvwa'; $_DVWA[ 'db_user' ] = 'dvwa'; $_DVWA[ 'db_password' ] = 'password'; // 替换为MySQL设置的密码 $_DVWA[ 'default_security_level' ] = 'low'; // 初始设置为low,便于练习
保存文件后,重启Apache服务:

sudo systemctl restart apache2
访问DVWA与初始化设置
访问Web界面
通过浏览器访问http://服务器IP/DVWA,若显示DVWA登录页面,则安装成功,默认用户名和密码均为admin。
初始化数据库
登录后,点击“Create/Reset Database”按钮,初始化DVWA数据库。
安全级别配置
DVWA提供四种安全级别(low、medium、high、impossible),可在“DVWA Security”页面调整,建议从low级别开始,逐步熟悉漏洞原理后再尝试更高级别。
常见问题与解决方案
数据库连接失败
- 问题:提示“Could not connect to the database”。
- 解决:检查
config.inc.php中的数据库配置(服务器、用户名、密码),确保MySQL服务运行正常,并授予dvwa用户足够权限。
PHP文件权限错误
- 问题:页面显示“Permission denied”或无法上传文件。
- 解决:确保DVWA目录权限为
755,文件所有者为www-data:sudo chown -R www-data:www-data /var/www/html/DVWA
Apache无法访问DVWA
- 问题:403 Forbidden错误。
- 解决:检查Apache的虚拟主机配置,确保
/var/www/html/DVWA目录有正确的访问权限,或禁用默认站点:sudo a2dissite 000-default.conf sudo systemctl reload apache2
PHP扩展缺失
- 问题:页面提示“PHP extensions missing”。
- 解决:安装缺失的PHP扩展(如
php-curl、php-gd)并重启Apache:sudo apt install php-curl php-gd -y sudo systemctl restart apache2
安全建议
DVWA设计为“易受攻击”环境,但部署时仍需注意以下安全事项:
- 网络隔离:建议仅在本地测试环境或内网中部署,避免暴露于公网。
- 修改默认凭证:登录后立即修改admin密码,避免被未授权访问。
- 定期重置数据库:练习后可通过“Create/Reset Database”清除测试数据,恢复初始状态。
- 监控日志:开启Apache和MySQL日志,记录访问行为便于分析。
通过以上步骤,读者已成功在Linux系统中搭建了DVWA测试环境,DVWA涵盖了SQL注入、XSS、文件上传等多种漏洞场景,是学习Web安全的有效工具,在实际操作中,建议结合漏洞原理逐步深入,同时遵守法律法规,仅在授权范围内进行测试,通过不断练习,可提升对Web漏洞的理解和防御能力,为后续网络安全学习奠定基础。




















