Ubuntu 22安装LNMP,使用vscode远程连接Linux系统,对sqli-labs-master进行断点分析

发布于:2025-03-03 ⋅ 阅读:(87) ⋅ 点赞:(0)

Ubuntu 22安装LNMP

"L"

我们使用的是Ubuntu 22,先从物理机克隆一个ubuntu虚拟机,保证Linux系统内没有其他版本nginx,mysql,php,使用纯净的Ubuntu环境

因为需要对sqli-labs-master的代码进行断点分析,选用的是nginx1.18,mysql5.7,php7.3,php-fpm7.3

"N"——安装nginx1.18

使用命令

sudo apt-get install nginx

nginx的默认安装位置        /etc/nginx

nginx配置文件        /etc/nginx.conf

nginx网站配置文件        /etc/nginx/sites-available/default

nginx默认网站目录        /var/www/html

我们检测nginx是否安装成功

浏览器输入localhost即可


"M"——安装mysql5.7

首先下载适合Ubuntu的mysql5.7的tar文件

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.42-1ubuntu18.04_amd64.deb-bundle.tar

新建一个mysql文件夹,并解压tar文件到新文件夹中

mkdir /etc/mysql

tar -xvf mysql-server_5.7.42-1ubuntu18.04_amd64.deb-bundle.tar -C /opt/mysql/

进入/etc/mysql目录

依次运行以下命令安装mysql相关文件

dpkg -i mysql-common_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i libmysqlclient20_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i libmysqlclient-dev_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i libmysqld-dev_5.7.42-1ubuntu18.04_amd64.deb 
dpkg -i mysql-community-server_5.7.42-1ubuntu18.04_amd64.deb

在安装 mysql-community-server_5.7.42-1ubuntu18.04_amd64.deb 这个包的时候报错缺少 mysql-client 依赖

安装 mysql-client,提示缺少 mysql-community-client 依赖

dpkg -i mysql-client_5.7.42-1ubuntu18.04_amd64.deb 

安装 mysql-community-client 提示缺少 libtinfo5 依赖

dpkg -i mysql-community-client_5.7.42-1ubuntu18.04_amd64.deb 

使用命令来自动解决当前所出现的依赖问题

apt --fix-broken install

选择Y同意,在出现的图形界面中输入mysql的密码(可以设置123456),根据提示输入两次

这下我们的mysql就安装好了

root@heath-virtual-machine:/etc/mysql# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.7.42 MySQL Community Server (GPL)

"P"——安装php7.3

安装

执行三条命令,添加php的源地址,更新,安装

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update

安装php和php-fpm        

sudo apt-get install php7.3 php7.3-mysql php7.3-fpm php7.3-curl php7.3-xml php7.3-gd php7.3-mbstring php-memcached php7.3-zip

php-fpm与nginx互通

查看www.conf的listen地址

sudo vim /etc/php/7.1/fpm/pool.d/www.conf

记住该地址

listen = /run/php/php7.3-fpm.sock

在修改nginx中网站配置文件,fastcgi_pass unix 为 /run/php/php7.3-fpm.sock

注释 #fastcgi_pass 127.0.0.1:9000

修改网站目录为root /var/www

vim /etc/nginx/sites-available/default

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        #root /var/www/html;
        root /var/www;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
                # With php-cgi (or other tcp sockets):
                #fastcgi_pass 127.0.0.1:9000;
        }

}

重启php-fpm

指定配置文件

重启nginx

sudo service php7.0-fpm restart

sudo nginx -c /etc/nginx/nginx.conf

sudo nginx -s reload

在nginx默认网站目录root /var/www中新建php文件,a.php

a.php内容

<?php phpinfo();?>

浏览器访问 localhost/a.php

使用vscode远程连接Linux系统

虚拟机配置

首先在Ubuntu虚拟机中安装ssh服务

sudo apt-get install ssh

修改配置文件 /etc/ssh/sshd_config 

允许端口通信

允许root用户连接

把下面这一行

#PermitRootLogin prohibit-password

改成:

PermitRootLogin yes

重启ssh服务

sudo service ssh restart

vscode配置

扩展一栏搜索 Remote Development,安装扩展插件

点击左边新出现的图标

新建远程

输入 ssh root@虚拟机IP -A 回车

选择默认选项

选择Linux

输入密码回车

连接成功

对sqli-labs-master进行断点分析

在远程虚拟机中安装扩展 php debug

点击链接

打开网站

上传sqli-labs-master文件到虚拟机的网站目录 /var/www/ 

使用vscode打开文件夹

在sqli-labs-master文件夹中新建web.php

输入

<?php phpinfo();?>

浏览器输入 ​localhost/sqli-labs-master/web.php​ 访问

页面单击右键选择查看网站源码,全选复制

将源码粘贴至https://xdebug.org/wizard 分析php输出

根据分析,一步步进行

wget https://xdebug.org/files/xdebug-3.1.6.tgz

下载对应版本php7.3-dev

apt-get install php7.3-dev autoconf automake

解压缩tar包

tar -xvzf xdebug-3.1.6.tgz

cd xdebug-3.1.6

运行 phpize 命令

接着 ./configure 命令

然后 make 命令

移动文件

cp modules/xdebug.so /usr/lib/php/20180731/

运行命令并输入内容

/etc/php/7.3/fpm/conf.d/99-xdebug.ini

修改上层目录中 php.ini 文件

vim  /etc/php/7.3/fpm/php.ini

重启php-fpm服务

service php7.3-fpm restart 

在sqli-labs-master 目录下新建 test.php 文件

<?php
$a = 1;
$b = 2;
echo $a;
$c = $b;
echo $c;

点击齿轮打开launch.json,后保存

下断访问

添加断点,然后点击绿色三角开始运行

访问 test.php界面

返回vscode以进入断点,可以分析代码


网站公告

今日签到

点亮在社区的每一天
去签到