猫宁!!!
参考链接: https://www.jianshu.com/p/5491ce5bfbac
- https://www.cnblogs.com/wujuntian/p/8183952.html
- https://www.cnblogs.com/lonnie/p/9027566.html
- https://stackoverflow.com/questions/34274492/dvwa-setup-php-function-allow-url-include-disabled/34540293
- https://blog.csdn.net/reblue520/article/details/52464099
搭建 dvwa 的环境就相当于是搭建一个站点, 这里采用 LNMP 的方式, 即 Linux,nginx,mariadb,PHP 的方式, 全部在一台 centos7 上搭好.
Linux 环境配置, ip:192.168.0.100
centos7 已经关闭了防火墙, selinux, 否则会严重影响安装进程.
更新一下 centos7
yum -y update
安装软件源
yum -y install epel-release
缓存软件包信息
yum makecache
nginx 服务
安装
yum -y install nginx
开启
systemctl start nginx
本地浏览器输入 192.168.0.100, 显示 nginx 页面, 说明安装成功, 页面路径 / usr/share/nginx/HTML
修改 nginx 主配置文件 vi /etc/nginx/nginx.conf
server_name 填写为 192.168.0.100, 这是服务器 ip
在 location 中添加
root HTML;
index index.PHP; 两行
在内容 root 下面添加如下内容, 实现 nginx 服务器和 PHP 的关联, 保存并退出.
- location ~ \.PHP$ {
- root /usr/share/nginx/HTML; #指定 PHP 的根目录
- fastcgi_pass 127.0.0.1:9000;#PHP-fpm 的默认端口是 9000
- fastcgi_index index.PHP;
- fastcgi_param SCRIPT_FILENAME
- $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
nginx -t 检测是否出现配置错误, 显示成功.
由于进行了配置, 所以不得不重启 nginx 服务
systemctl restart nginx
安装 PHP 相关服务
安装, 全部都安装好
yum -y install PHP-fpm PHP PHP-MySQL PHP-gd libjpeg* PHP-ldap PHP-odbc PHP-Pear PHP-xml PHP-xmlrpc PHP-mbstring PHP-bcmath PHP-mhash
启动 PHP-fpm 服务
systemctl start PHP-fpm
修改 PHP-fpm 配置文件
vi /etc/PHP-fpm.d/www.conf, 将其中的 apache 修改为 nginx 即可, 保存退出
由于修改文件配置, 需要重启 PHP-fpm 服务
systemctl restart PHP-fpm
进入 / usr/share/nginx/HTML, 创建 info.PHP 的文件, vi info.PHP, 内容如下:
<?PHP
phpinfo();
?> 访问 192.168.0.100/info.PHP, 显示 PHP 环境已经好了.
mariadb 数据库环境
安装
yum -y install mariadb mariadb-server
启动
systemctl start mariadb
设置数据库密码, root 是账户, jiayou 是密码
mysqladmin -u root password jiayou
进入数据库
MySQL -u root -p
创建并使用名为 dvwa 的数据库
- create database dvwa;
- use dvwa;
exit 退出数据库
下载 dvwa 的源代码
- www.dvwa.co.uk
- https://github.com/ethicalhack3r/DVWA
将 kali Linux 本地代码全部上传到服务器 nginx 的 / usr/share/nginx/HTML 目录之下
scp -r * root@192.168.0.100:/usr/share/nginx/HTML
访问 http://192.168.0.100/setup.php, 会有一段文字提示:
- DVWA System error - config file not found. Copy config/config.inc.PHP.dist to config/config.inc.PHP and configure to your environment.
- cd /usr/share/nginx/HTML/config
生成一份新的配置文件
cp config.inc.PHP.dist config.inc.PHP
vi config.inc.PHP, 将数据库密码修改为 jiayou, 就是之前自定义的密码.
再次访问 192.168.0.100/setup.PHP, 显示如下, 有报错, function allow_url_include: Disabled 提示开启 PHP 的 allow_url_include
PHP 的配置文件存于 / etc/PHP.INI 中, vi /etc/PHP.INI, 查询关键词 allow_url, 找到 allow_url_include = Off, 将 Off 改为 On 就好了, 然后 systemctl restart PHP-fpm.
同时进入 cd /usr/share/nginx/HTML/config,vi config.inc.PHP, 添加公钥还有私钥.
- $_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';
- $_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
目前最后一个点:
chmod 666 /usr/share/nginx/HTML/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt, 给予所有用户对这个日志文件的读写权限
条件全部满足, 这个时候点击安装按钮依然没有反应, 查看 nginx 报错日志, tail -f /var/log/nginx/error.log
[error] 9112#0: *180 FastCGI sent in stderr: "PHP message: PHP Warning: session_start(): open(/var/lib/PHP/session/sess_5930ao4030vq7tble1pm2see32, O_RDWR), 这个值得关注.
解决方案是如下, 给予这个文件 777 权限, 这个文件是很重要的, 与用户的会话身份相关.
chmod 777 /var/lib/PHP/session
systemctl restart PHP-fpm, 再重启一下.
之后成功安装, 对于此类报错, 不是每个人都会遇到, 和每个人当时的安装环境以及采用的安装方法关系较大, 因为即使是 LNMP 安装 dvwa 的过程, 互联网上也方法多种多样.
http://192.168.0.100/index.php
感谢 aaron 提供的关键技术支持!!!
来源: https://www.cnblogs.com/landesk/p/10923573.html