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以进入断点,可以分析代码