LAMP/LNMP:是有Linux系统,Apache网络服务器或者Nginx服务器,MySQL数据库。php。 LAMP/LNMP具有通用,跨平台,高性能的。LNMT/LAMt :整合 Apache Http Server 和 Tomcat 可以提升对静态文件的处理性能、利用 Web 服务器来做负载均衡以及容错、无缝的升级应用程序。
1. 用户向HTTPD服务器发送HTTP请求。
2. HTTPD分析URL得到所需的资源路径,在内核空间中读到磁盘资源,在静态的情况下,生成响应包并发送给用户。
3. 对于一个动态资源,将一个资源地址传送到PHP解析程序,并将其解析,并将其传送至HTTPD,并产生响应信息,并将其传送至用户。
4. 在数据库操作时,使用PHP-MySQL驱动程序,将数据库中的数据提取出来,并将其返回到PHP分析器中。
LAMP工作流程架构如图2-1所示:
Apache,MySQL,PHP 之间的联动工作apache + php结合的方式大概几种:
安装和配置Apache、PHP和MySQL:首先,需要在服务器上安装和配置Apache、PHP和MySQL,以便它们可以一起工作。安装和配置Apache、PHP和MySQL的过程可能因不同的环境和操作系统而发生变化。
Apache处理HTTP请求:当用户请求一个页面时,Apache接收HTTP请求,并将其发送到合适的PHP脚本进行处理。
PHP脚本处理请求:当Apache接收到请求后,它将请求的文件扩展名判断为php,把这个请求通过CGI方式发送给PHP解析器进行解析和处理。 PHP解析器处理完请求后再把结果返还给Apache,Apache再把处理结果通过HTML形式返回给Web浏览器,用户就可以看到请求的页面了 。
PHP操纵MySQL:PHP在处理请求时可以调用MySQL扩展程序的API函数,连接到MySQL服务器,并执行各种MySQL操作,如查询、插入、删除和更新等。
MySQL响应PHP请求:MySQL数据库会响应PHP发出的请求,并将相关数据返回给PHP应用程序。 PHP通过查询结果处理函数,将MySQL查询结果存储在PHP数组或对象中,以供进一步处理。
PHP返回处理结果:PHP应用程序将处理结果转换为HTML格式,发送给Apache,Apache将其发送给用户的Web浏览器展示给用户。
在 Kali 系统中自带源是官方的apt 源,经常会因为网络问题,导致无法安装或更新程序。而且国外的 apt 源使用起来速度是相当慢。因此直接使用国内的源来解决此问题。
首先第一步要ping到网络源进行百度访问如图3-1所示:
ping百度
apt全称Advanced Package Tool,是一个用于管理Debian及其衍生发行版本上软件包的命令行工具。
apt可以自动解决依赖关系并安装、更新、移除软件包,它从Debian的软件仓库中获取软件包并安装到系统中,同时也能增加和管理第三方软件源。
apt的常用命令如下:
apt-get update 更新软件包列表
apt-get upgrade 更新已安装的软件包
apt-get install 安装软件包
apt-get remove 卸载软件包
apt-get autoremove 自动删除系统不需要的依赖包
apt-get purge 彻底删除软件包及其配置
apt的优点包括:
自动解决依赖关系,安装软件包更加方便。
命令行界面,允许批量安装、更新、卸载软件包。
可以管理多个软件仓库和第三方软件源。
支持软件包的版本管理和回滚。
查看apt是否可以安装
相关安装情况
查看apache2是否安装
查看mysql是否安装
查看php是否安装
查看lamp架构是否都安装
3. 启动Apache,
(1)Systemctl start httpd.service #启动Apache
(2)Systemctl stop httpd.service #停止
(3)Systemctl restart httpd.service #重启
4. 检查Apache安装情况
浏览器访问IP地址(127.0.0.1),安装成功,
在浏览器输入IP,直接进入apache,表示安装成功
PHP(Hypertext Preprocessor)是一种开源的服务器端脚本语言,它被广泛应用于Web开发领域。PHP的编译器将PHP代码编译成可执行二进制文件,该文件可以在Web服务器上直接运行,因此它在Web开发中被广泛使用。
PHP的语法类似于C语言,它可以与HTML一起使用来构建动态Web页面,还可以与数据库结合使用来创建动态网站。PHP支持多种操作系统和Web服务器,包括Windows、Linux、Apache、Nginx等,并且可以与数据库系统如MySQL、Oracle、MongoDB等集成,提供强大的数据处理功能。
PHP的优点包括:
可以与多种Web服务器和数据库系统集成,提供强大的数据处理能力。
简单易学,学习成本低,上手快。提供了丰富的代码库和插件
支持面向对象编程,具有良好的代码重用和易于维护性。
具有良好的可移植性和跨平台性,适用于不同类型的项目和应用场景。
PHP在Web开发中已经被广泛应用,它可以用于开发各种类型的Web应用,包括电商网站、博客、在线社交网络、CMS系统等等。通过使用PHP,开发者可以快速地构建功能丰富的Web应用,同时还可以享受到PHP强大的性能和可扩展性。
图3-8 安装PHP
3.1.3 安装MySQL
MySQL是一种开源的关系型数据库管理系统(RDBMS),广泛应用于web应用程序的开发中。它支持多个平台,包括各种Linux发行版、macOS、Microsoft Windows等,并且可以与不同的编程语言集成,如PHP、Python、Java等。
MySQL使用标准SQL语言进行数据操作,支持多种数据类型(例如字符、数字、日期/时间等)和对数据的复杂查询。MySQL提供了多种存储引擎,包括InnoDB、MyISAM、Memory等,每个存储引擎都针对不同的应用场景具有不同的优势。
MySQL的优点包括:
数据安全性高:MySQL提供了多层的访问控制和权限管理,可以保证数据的安全性。
性能卓越:由于其高效的存储引擎、索引机制和查询优化,MySQL具有高速读写和查询性能。
可扩展性好:可以在不同的硬件设备和操作系统上运行MySQL,同时也可以对数据库进行复制、分区和集群等改进以适应业务需求的扩展。
易用性好:MySQL具有简单易用的界面和命令行,对于开发人员和管理员也提供了良好的开发和管理体验。
安装成功,
安装MySQL
下载phpmyadmin后,再解压到可以访问的web目录下(如果是虚拟空间,可以解压后通过ftp等上传到web目录下),也可以修改解压后该文件的名称
查看下载phpadmin解压
2. 配置config文件
打开libraries下的config.default.php文件,依次找到下面各项,按照说明配置即可:
A.访问网址
$cfg['PmaAbsoluteUri'] = '';
这里填写phpmyadmin的访问网址,如:$cfg['PmaAbsoluteUri'] = 'http://你的站点/phpmyadmin/';
B.mysql主机信息
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address
填写localhost或mysql所在服务器的ip地址,如果mysql和该phpmyadmin在同一服务器,则按默认localhost
$cfg['Servers'][$i]['port'] = ''; // MySQL port - leave blank for default port
mysql端口,如果是默认3306,保留为空即可
C.mysql用户名和密码
$cfg['Servers'][$i]['user'] = 'root';
MySQL user 访问phpmyadmin使用的mysql用户名
fg['Servers'][$i]['password'] = '';
MySQL password (only needed对应上述mysql用户名的密码
D.认证方法
$cfg['Servers'][$i]['auth_type'] = 'cookie';
在此有四种模式可供选择:cookie,http,HTTP,config
01:config方式即输入phpmyadmin的访问网址即可直接进入,无需输入用户名和密码,这种方式是不安全的,并不推荐使用。
02:当设置为cookie,http或HTTP时,登录phpmyadmin需要数据用户名和密码进行验证,
具体如下:
PHP安装模式为Apache,可以使用http和cookie;
PHP安装模式为CGI,可以使用cookie
E.短语密码(blowfish_secret)的设置
$cfg['blowfish_secret'] = '';
如果认证方法设置为cookie,就需要由自己设置短语密码,但是不能留空,否则会在登录phpmyadmin时提示错误。修改相关配置文件如图3-13所示。
查看修改myphpadmin配置文件
修改apache2的配置文件如图3-14
<Directory "/usr/local/httpd/htdocs">
…… // 省略部分内容
Require all granted #允许所有主机访问
</Directory>
修改apache2的配置文件
数据库提权所谓利用数据库进行提权,利用的其实是数据库的运行权限,所以只要满足以下条件即可进行提权:
1、必须获得sa的账号密码或者sa相同权限的账号密码,且mssql没有被降权。
2、必须可以以某种方式执行sql语句,例如:webshell或者1433端口的连接。
3、监听在1433端口,拿到mssql的sa账户账号和密码,方可执行命令,
提权以及phpadmin搭建成功
数据库提权
phpadmin搭建成功