貓寧!!!
參考連結: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提供的關鍵技術支援!!!