sudo apt-get install apache2 //下载apache
sudo apt-get install php //2019.7.23现在下载的都是php7.2
sudo apt-get install mysql-server //下载mysql
sudo apt-get install libapache2-mod-php //php与apache2关联
sudo apt-get install php-mysql //mysql与php关联
浏览器打开http://localhost,出现It works界面,说明Apache2环境搭建成功。
在/var/www/html文件夹下,新建文件test.php,内容如下:
浏览器打开http://localhost/test.php,出现php的info信息,说明php安装成功。
再在/var/www/html文件夹下,新建文件test.html,内容和test.php相同,浏览器访问http://localhost/test.html,如果出现php的info信息,说明Apache2可以正确解析html中的php,可以进行下一步操作;如果是空白,说明Apache2不能正确解析html中的php,需要再做额外的操作。
网上解决这个问题的方法有很多,有一种便捷而有趣的方法分享一下:
该方法思路参考链接:https://blog.csdn.net/qq_37756513/article/details/70821168,但是略有不同。
找到/etc/apache2/mods-available/下的php7.2.conf文件,将第一行的
改成:
解释一下引号中的部分:
.用于匹配除换行符的任意字符,+表示匹配前面的子表达式一次或多次,\.用于匹配.字符,所以.+\.就可以匹配任意文件名加上.符号。例如对于test.php,它可以匹配test.这一部分。
原来第一行中的ph(ar|p|tml)是指可以匹配后缀为phar、php、phtml的文件。$符号表示结束。
考虑到我们的目的是让Apache2可以匹配html等文件,所以在后面加上了html和htm两种后缀类型,如果后续有需要,也可以接着加。
下面重启Apache2服务:sudo /etc/init.d/apache2 restart,得到重启成功的提示。
再次访问http://localhost/test.html,可以得到php的info信息,说明Apache2可以正确解析html中的php。
命令行窗口输入sudo mysql -uroot -p,默认密码为空,直接回车,进入mysql命令交互界面,说明mysql数据库安装成功。
我的用户名为root,密码为空的账号在使用时遇到了一些问题,所以我决定新建一个用户来本地或者远程连接数据库。
首先以刚才提到的方式进入MySQL命令交互界面,先创建新用户user,使用户可以在任意远程主机上登录:
CREATE USER 'user'@'%' IDENTIFIED BY '123';
再赋予用户对所有数据库中的所有表增删改查的权限:
GRANT ALL ON *.* TO 'user'@'%';
由于我们使用的是PHP7,原来的sqli-labs使用的是PHP5,所用函数有所区别。
所以这里从https://github.com/skyblueee/sqli-labs-php7下载文件,解压后放入目录/var/www/html中。
修改sqli-labs文件夹中,sql-connections文件夹下的db-creds.inc文件,将用户名dbuser和密码dbpass改成自己新设置的。
观察自己sqli-labs文件夹的结构,如果你文件夹的路径大概是/var/www/html/sqli-labs/index.html,那么通过:
http://localhost/sqli-labs/index.html
就可以成功访问sqli-labs的首页了!
记得点击Setup/reset Database for labs链接,来重新设置数据库。如果返回页面都是successfully或者correctly等信息,说明安装成功了!
下一步可以获取自己ubuntu的IP地址,尝试通过其它主机来访问sqli-labs,点击Setup/reset Database for labs链接,观察远程主机是否能够成功重设数据库。