最简单解决方案Ubuntu18.04安装sqli-lab(完美避开所有巨坑)

1前言

sqli-lab真的坑太多的了!!!配这个环境搞了整整三天!

坑1:

由于之前一个版本的sqli-lab对应的是php5,现在的版本对应的是php7,所以很可能造成你装上了之后打不开数据库。

坑2:

如果你装了php7,但是你装的是mysql7的话,恭喜你,你会发现到了sqli-lab的第六关的时候你就会出错,过不了!!!

坑3:

如果你装了mysql5,你会发现装好了mysql 之后打不开mysql

完美搭配

这里着重强调在Ubuntu18.04上安装sqli-lab的完美搭配是:Ubuntu18.04+apache2+php7+mysql5
这里的完美搭配的意思是你能够尽可能的避免一些坑,但是并不能代表你能避免所有的坑。

下面我们来开始配置处处坑的sqli-lab吧,首先我们需要安装apache、php、mysql(千万注意版本!!!!!!!)

step1:安装mysql5

首先我建议你们先把mysql安装上,再像其他博客一样安装,因为在ubuntu18.04上安装mysql5需要一顿操作,比较复杂,其他的apache什么的安装就比较简单,写在后面,通过全网的搜索这里我选了最简单的一种解决方式来解决mysql5sudo mysql -uroot -p 打不开数据库的问题。

(1)卸载电脑上存在的mysq并安装(因为我当时先下载了mysql7,所以先进行了卸载)
在ubuntu上安装mysql5

sudo apt-get autoremove --purge mysql-server-5.0
 sudo apt-get remove mysql-server
 sudo apt-get autoremove mysql-server
 sudo apt-get remove mysql-common (!!!别忘了)
 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

(2)安装mysql

sudo apt-get install mysql-server
sudo apt-get install mysql-client

(3)检查mysql是否在运行

sudo netstat -tap | grep mysql

结果如下:

tcp        0      0 localhost.localdo:mysql *:*                     LISTEN   
6030/mysqld 

(4)若没有启动,则重启一下mysql

sudo /etc/init.d/mysql restart

但是坑就在这里来了!!!
使用sudo mysql -uroot -p 无法连接数据库,并报错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' 

(5)此时应该到到etc/mysql 目录下,查看debian.cnf文件

sudo vim /etc/mysql/debian.cnf

然后就会看到这个文件中的内容如下:

host     = localhost
user     = debian-sys-maint
password = pjabc9ORmJklrmQS
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = pjabc9ORmJklrmQS
socket   = /var/run/mysqld/mysqld.sock

我们可以看到用户名user和密码password,前面的问题是我们无法使用mysql -u root -p打开数据库,所以在获得了用户名和密码以后,我们将命令改为我们自己的userpassword,命令如下(你们一定要看自己的电脑的用户名和密码哦):
mysql -udebian-sys-maint -ppjabc9ORmJklrmQS

(6)修改用户名和密码
通过上面的用户名和密码我们就可以进入数据库了!但是我们此处将用户修改为root

use mysql;
update user set authentication_string=PASSWORD("自1234") where user='root';//将用户名root密码修改为1234
update user set plugin="mysql_native_password";
flush privileges;
quit;

(7)修改后,重启数据库服务,并打开数据库

/etc/init.d/mysql restart;
mysql -u root -p    //登陆时候的密码就是刚刚设置的1234

是的!这样就解决了ubuntu18中mysql5无法的登录的问题!!!!

step2:安装apache2+php7

参考安装sqli-lab
(1)基本环境的安装

sudo apt-get install apache2				//下载apache
sudo apt-get install php7.2					//这里是7!!!!注意是7
//sudo apt-get install mysql-server			//这一步不再需要了,因为我们已经安装了
sudo apt-get install libapache2-mod-php*	//php与apache2关联
sudo apt-get install php-mysql

如果你的电脑之前用的是php5,此时需要把你的php5禁用

sudo a2dismod php5 //禁用php5

(2)apache2解析php环境设置
首先,打开文件apache2.conf

sudo nano /etc/apache2/apache2.conf

然后将下列信息写入文件最后

AddType application/x-httpd-php .php
DirectoryIndex index.php index.htm index.html

(3)重启apache和PHP
修改了之后重新启动一下apache和PHP,相当于平时安装了个什么东西,电脑需要重启一个意思哈!

sudo a2enmod php7.2
sudo systemctl restart apache2

(4)测试是否能够成功解析PHP文件和html文件

sudo nano /var/www/html/test.php
<?php
phpinfo();
?>
ctrl+x 保存

浏览器打开localhost/test.php若出现PHP的信息则证明解析成功,test.html文件同理

step3:下载sqli-lab文件,并完成数据库信息修改

sqli-lab下载地址为:https://github.com/skyblueee/sqli-labs-php7
从名字就可以看出是PHP7的!!!!
解压之后放进文件夹/var/www/html/
然后我们就应该修改sqli-lab中的连接数据库的配置文件信息了,比如用户名还有密码等信息:
(文件夹sqli-labs就是我们刚才解压的文件夹的名称)

sudo vim /var/www/html/sqli-labs/sql-connections/db-creds.inc

将用户名dbuser和密码dbpass改成root1234,也就是刚才我们在安装mysql创建的那个用户的用户名和密码,这个跟你创建的用户名和密码有关。

然后你就配置成功了!!!!!

在浏览器中输入网址:

localhost/sqli-labs/index.html

然后点击Setup/reset Database for labs建立数据库,然后就可以做题啦!!!

经过整理全网所有解决办法,找出的最简单的解决方案,如有错误希望大家评论告诉我

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值