部署LAMP环境

红帽9搭建LAMP

  1. 安装Apache

   2.安装数据库服务

   3.安装php

    (1)使用IP访问/phpinfo.php

   4.安装phpMyAdmin

  (1)数据库端口改为学号后五位
  (2)登录phpmyadmin

  5.SSH增加一个端口10022,fttp增加两个端口10080和8080

  (1)修改防火墙规则用端口登录myadmin(只允许10080端口访问myadmin)

什么是LAMP?

LAMP 是一种常用于 web 开发的软件堆栈的缩写,它代表了 Linux(操作系统)、Apache(HTTP 服务器)、MySQL(数据库管理系统)和 PHP(编程语言)。这种组合因其高效、开源和免费的特点而广受欢迎,常用于搭建动态网站和 web 应用程序。

下面是 LAMP 堆栈中每个组件的简要说明:

Linux:Linux 是一个开源的操作系统,广泛应用于服务器环境。它提供了稳定、高效和安全的运行环境,是 web 服务器的基础。

Apache:Apache 是一个开源的 HTTP 服务器,用于处理 web 请求并返回 web 页面。它提供了丰富的功能和模块,支持各种 web 技术和标准。

MySQL:MySQL 是一个开源的关系型数据库管理系统,用于存储和管理网站的数据。它提供了高效的数据存储和查询功能,是 web 应用程序中不可或缺的部分。

PHP:PHP 是一种通用的脚本语言,尤其适合 web 开发。它可以嵌入到 HTML 中,用于生成动态页面和与数据库进行交互。PHP 的易用性和强大的功能使其成为 web 开发的流行选择。

LAMP 堆栈的流行部分归功于其开源和免费的特点,这使得用户可以轻松地获取、使用和定制这些软件。此外,LAMP 堆栈中的每个组件都经过了广泛的测试和验证,具有高度的稳定性和可靠性。

在搭建 LAMP 堆栈时,用户需要分别安装和配置这些组件。具体的安装和配置方法因 Linux 发行版和版本的不同而有所差异。一般来说,用户可以通过包管理器(如 apt、yum 等)来安装这些软件,并通过配置文件来设置它们的行为和参数。

总之,LAMP 是一种强大的 web 开发工具集,它提供了稳定、高效和可靠的运行环境,是搭建动态网站和 web 应用程序的常用选择。

环境准备

(ip为10.0.0.99的虚拟机为主机,然后分别克隆两台ip为10.0.0.119的客户机和ip为10.0.0.219的测试机;主机需安装Apache和PHP,客户机需安装Mysql,且三台虚拟机都能进行远程连接即开启SSH服务)

主机名及IP

主机名

        IP地址

wwg2(主机)

10.0.0.99

 wwg2(客户机)

10.0.0.119

wwg2(测试机)

10.0.0.219

 

 

安装Apache(主机内进行ip为10.0.0.99)

Apache:开放源码的网页服务器,跨平台、安全、流行,支持众多网站运行。

输入命令“yum install http”安装Apache,complete表示安装成功。

yum install http

安装成功后启动Apache,查看Apache是否为开启状态。running表示启动成功。启动成功后,输人命令行:systemctl enable httpd设置apache服务开机自启。

systemctl enable httpd

 

安装数据库服务(客户机内进行ip为10.0.0.119)

输入命令行:yum install mariadb-server mariadb安装mariadb(MariaDB是MySQL的开源分支,提供高性能、高可靠性,兼容MySQL且易于迁移。),安装完成后启动数据库服务。

yum install mariadb-server mariadb

启动成功后,输入命令“mysql_secure_installation”设置数据库密码。

还没密码直接回车,输入两次yH后设置数据库密码,用于后续登录。

mysql_secure_installation

选择是否删除匿名用户账户。

选择是否禁用远程登录。

选择是否删除测试数据库。

输入y重新加载权限表,保存更改。

完成设置后查看mariadb状态,running为服务开启。

输入命令行:systemctl enable mariadb设置mariadb开机自启。

systemctl enable mariadb

安装PHP(主机内进行ip为10.0.0.99)

PHP是开源的服务器端脚本语言,适用于Web开发,简单易学且功能强大。

输入命令行:yum install php安装php

输入命令行:yum install php-mysqli安装mysqli

yum install php
yum install php-mysqli

 

安装完毕后,重新启动Apache服务。

输入命令行:vim /var/www/html/phpinfo.php将以下代码复制到新创建的文件中保存并退出。关闭防火墙和守护进程。

vim /var/www/html/phpinfo.php

 

在测试机(ip为10.0.0.219)的浏览器内输入主机ip:10.0.0.99/phpinfo.php

成功安装便会出现以下界面。

安装phpMyAdmin(主机内进行ip为10.0.0.99)

phpMyAdmin是MySQL的Web管理工具,界面直观,易于管理数据库

输入命令行:yum install php-mbstring php-xml -y安装依赖包。

yum install php-mbstring php-xml -y

安装完成后重启Apache和php-ftp服务。

重启后切换cd /var/www/html切换到网页目录,下载phpmyadmin安装包。Wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

 

下载完成后输入命令行:mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1 解压文件。解压完成后重启Apache和php-fpm服务。

mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1

切换到测试机(ip为10.0.0.119)

输入命令行: vim /etc/my.cnf.d/mariadb-server.cnf修改数据库端口文件,修改端口为学号后五位30317。重启mariadb服务后输入命令“netstat -lntp”查看端口是否修改成功。

vim /etc/my.cnf.d/mariadb-server.cnf

 

输入命令行:mysql -u root -p 创建用户及密码CREATE USER root'@ 10.0.0.99 IDENTIFIED BY 123456';#此处为主机ip

GRANT ALL PRIVILEGES ON *.* TO root@ % IDENTIFIED BY 123456' WITH GRANT OPTION;

flush privileges;(刷新使之生效)

SELECT user,host FROM mysql.user ;(查看所创建用户)

完成后exit退出

输入命令行:mysql -u root -p 创建用户及密码CREATE USER ‘root'@ ‘10.0.0.99’ IDENTIFIED BY ‘123456';#此处为主机ipGRANT ALL PRIVILEGES ON *.* TO ‘root’@ ‘%’ IDENTIFIED BY ‘123456' WITH GRANT OPTION;flush privileges;(刷新使之生效)SELECT user,host FROM mysql.user ;(查看所创建用户)完成后exit退出

退出后需输入命令“systemctl restart mariadb”重启数据库。

systemctl restart mariadb

修改成功后回到到主机(ip为10.0.0.99),从/var/www/html目录切换到phpMyAdmin目录,查看当前命令下的文件输入命令 cp config.sample.inc.php config.inc.php 文件config.sample.inc.php 复制到文件config.inc.php

cp config.sample.inc.php config.inc.php 

编辑config.inc.php文件

 

关闭防火墙和守护进程后重启apache和php-fpm服务。

在测试机(ip为10.0.0.219)的浏览器内输入主机ip:10.0.0.99/phpMyAdmin/index.php登录phpmyadmin用户密码为数据库所创用户及密码。成功登录phpmyadmin。

 

SSH增加一个端口10022,fttp增加两个端口10080和8080

编辑/etc/ssh/sshd_config文件,在ssh中增加10022端口,重启ssh服务后查看是否成功增加10022端口。

 

 

编辑vi /etc/httpd/conf/httpd.conf文件在http中增加10080和8080的端口,重启http服务后查看是否成功增加10080和8080的端口。

 

开启防火墙,查看防火墙状态后输入命令行:sysystemctl firewall-cmd --zone=public --add-service=https --permanent

firewall-cmd --reload

firewall-cmd --zone=public --add-service=http --permanent

这个命令在public区域(zone)中永久添加http服务。这意味着,当firewalld启动时,或者你重新加载防火墙规则时,它会允许http(通常是80端口)的流量通过。

--zone=public 指定了要配置的区域,public是默认的区域。

--add-service=http 告诉firewalld要添加http服务。

--permanent 表示这是一个永久性的更改,但注意,它不会立即生效,除非你重新加载或重启firewalld。

firewall-cmd --zone=public --add-service=https --permanent

这个命令与上一个类似,但它添加的是https服务(通常是443端口)。

这意味着防火墙将允许https的流量通过。

firewall-cmd --reload

这个命令重新加载firewalld的配置。这意味着,任何你之前用--permanent标志做的更改现在都会生效。

重新加载与重启firewalld不同。重启会中断所有当前的连接,而重新加载则不会。

开启防火墙,查看防火墙状态后输入命令行:sysystemctl firewall-cmd --zone=public --add-service=https --permanentfirewall-cmd --reloadfirewall-cmd --zone=public --add-service=http --permanent这个命令在public区域(zone)中永久添加http服务。这意味着,当firewalld启动时,或者你重新加载防火墙规则时,它会允许http(通常是80端口)的流量通过。--zone=public 指定了要配置的区域,public是默认的区域。--add-service=http 告诉firewalld要添加http服务。--permanent 表示这是一个永久性的更改,但注意,它不会立即生效,除非你重新加载或重启firewalld。firewall-cmd --zone=public --add-service=https --permanent这个命令与上一个类似,但它添加的是https服务(通常是443端口)。这意味着防火墙将允许https的流量通过。firewall-cmd --reload这个命令重新加载firewalld的配置。这意味着,任何你之前用--permanent标志做的更改现在都会生效。重新加载与重启firewalld不同。重启会中断所有当前的连接,而重新加载则不会。

出现三个success后即操作成功。

输入命令行:firewall-cmd --zone=public --add-port=10080/tcp --permanent

firewall-cmd --zone=public --add-port=8080/tcp --permanent

firewall-cmd --reload

firewall-cmd --zone=public --add-port=10080/tcp --permanentfirewall-cmd --zone=public --add-port=8080/tcp --permanentfirewall-cmd --reload

在 public 区域中永久添加一个 TCP 端口规则,允许流量通过 TCP 协议的 10080 和8080的端口。重新加载防火墙配置后查看监听的端口发现为8080和10080还有80(本来就存在)

 

 

Firefox搜索界面。在地址栏输入about:config并回车。警告页面会告诉您修改这些设置可能会有风险,点击“我接受风险!”按钮继续。在搜索框中输入network.security.ports.banned.override。选择“切换”设置,输入10080到其值字段中。重启Firefox浏览器。10.0.0.99:10080/phpMyAdmin/index.php发现成功登录到myadmin。

此时三个端口都可进入phpmyadmin

v

此时打开主机(ip为10.0.99),输入命令行:firewall-cmd --zone=public --remove-port=8080/tcp --permanent永久移除对TCP端口8080的访问权限。重新加载防火墙配置后查看可访问防火墙的端口发现只有80和10080的端口了,此时再次打开火狐浏览器发现8080端口发现该端口已不可访问phpmyadmin。

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

或者

在客户机(ip为10.0.0.119)中输入命令行: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.99" port protocol="tcp" port="30317" accept允许从 IP 地址 10.0.0.99 发送的 TCP 流量(目标端口为 30317)通过防火墙。'后重启防火墙

 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.99" port protocol="tcp" port="30317" accept

输入命令行:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.219" port protocol="tcp" port="10080" accept'允许从 IP 地址 10.0.0.219 发送的 TCP 流量(目标端口为 10080)通过防火墙

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.219" port protocol="tcp" port="10080" accept

输入命令行:firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.219" port protocol="tcp" port="80" reject'在 public 区域中,拒绝来自 IP 地址 10.0.0.219 的 TCP 流量到端口 80重启防火墙后输入命令“ sudo firewall-cmd --zone=public --list-rich-rules查询 Firewalld 中 public 区域的所有富规则(rich rules)。

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.219" port protocol="tcp" port="80" reject'
 sudo firewall-cmd --zone=public --list-rich-rules

打开测试机(ip为10.0.0.219)输入10.0.0.99:80/phpMyAdmin/index.php发现找不到网页,可知在 public 区域中,拒绝来自 IP 地址 10.0.0.219 的 TCP 流量到端口 8080端口不允许访问防火墙。

通过本次实验,我能够掌握在Linux系统中搭建LAMP环境的基本步骤和要点。同时,我也了解到Web应用的基本架构和工作原理,以及如何在Linux系统中进行基本的服务器管理和配置。在实验过程中遇到的问题和解决方法也将成为我宝贵的经验,有助于我在未来的Web开发工作中更加得心应手。

在搭建LAMP环境时,需要注意以下几点:

确保系统的安全性:在安装和配置过程中,要注意设置合理的安全策略,如防火墙规则、数据库用户权限等,以防止恶意攻击和数据泄露。

选择合适的版本和配置:在选择Linux发行版、Apache服务器、MySQL数据库和PHP解释器的版本时,要根据实际需求和项目要求来选择。同时,也要根据实际需求来配置这些组件的参数和选项。

备份重要数据:在搭建和测试过程中,要定期备份重要的数据和配置文件,以防止意外丢失或损坏。

持续学习和更新:Web开发是一个不断发展的领域,新的技术和工具不断涌现。因此,作为Web开发者,要保持持续学习和更新的态度,不断提高自己的技能和能力。

大学生课程作业点赞加关注谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李廉洋:5.29黄金震荡,原油持续走高,今日美盘行情走势分析及策略。

黄金消息面分析:当前美国存在一个令人担忧且未被充分关注的问题:房地产行业低迷、高利率和抵押贷款利率、租金高涨以及美联储的紧缩政策构成了一个恶性循环。由于高房价和高抵押贷款利率,美国住房经济活动远低于两年前的水平。为了让该行业好…

Apache、Nginx、IIS文件解析漏洞

目录 1、文件解析漏洞介绍 2、Apache相关的解析漏洞 (1)多后缀解析漏洞 (2)Apache配置问题 (3)换行符解析漏洞 (4)罕见后缀解析 3、Nginx相关的解析漏洞 (1&…

《java数据结构》--栈的详解

一.栈的认识 栈是一种不同于链表和顺序表的储存数据结构,它对存储数据和取出数据有着特殊的要求🤔。 首先栈只能从一端存储数据,也就是从一端进,还从这一端出这也是栈最大的特点,这也导致在栈中存取数据都必须遵循先…

C++线程任务队列模型

功能描述 实现一个任务队列,用于任务的执行 任务队列 任务队列可以添加、删除任务,实现对任务的管理添加任务后,任务队列可以开始执行任务队列执行任务方式为串行执行 任务 任务执行需要持续一段10s内随机的时间,执行过程通过…

打造爆款活动:确定目标受众与吸引策略的实战指南

身为一名文案策划经理,我深知在活动策划的海洋中,确定目标受众并设计出能触动他们心弦的策略是何等重要。 通过以下步骤,你可以更准确地确定目标受众,并制定出有效的吸引策略,确保活动的成功: 明确活动目…

【Oracle篇】rman标准化全库备份策略:完整备份or增量备份(第三篇,总共八篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…

单元测试框架Pytest的基本操作

Pytest基本操作 1. 详解1.1 命名规则:1.2 自定义查找规则:1.3 3种运行方式1.4 执行顺序2. 断言2.1 定义2.2 断言的规则3. mark3.1 mark的作用3.2 mark的标记方式3.3 注册标签名3.4 skip跳过标记4. pytest的参数化5. pytest的夹具(fixture测试夹具)5.1. 作用5.2. 夹具应用场…

web前端框架设计第十一课-常用插件

web前端框架设计第十一课-常用插件 一.预习笔记 1.路由的基础使用 2.动态路由 3.嵌套路由 二.课堂笔记 三.课后回顾 –行动是治愈恐惧的良药,犹豫拖延将不断滋养恐惧

Web渗透-MySql-Sql注入:联合查询注入

SQL注入(SQL Injection)是一种网络攻击技术,攻击者通过将恶意的SQL代码插入到应用程序的输入字段,从而欺骗应用程序执行未经授权的操作。这种攻击方式可以导致严重的安全问题,包括: 数据泄露:攻…

UE5 UE4 快速定位节点位置

在材质面板中,找到之前写的一个节点,想要修改,但是当时写的比较多,想要快速定位到节点位置. 在面板下方的 Find Results面板中,输入所需节点,找结果后双击,就定位到该节点处。 同理,…

【CUDA】Nsight profile驱动的CUDA优化

前置准备 安装NVIDIA Nsight Compute。 安装好后选择使用管理员权限启动下载官方 Demo 代码官方博客Shuffle warp 1. 任务介绍及CPU版本 1.1 任务介绍 任务理解: 有一个 L x M 的矩阵 M 1 M_1 M1​ 对其每行取平均值 得到 V 1 ∈ R L 1 V_1 \in \mathbb{R}^{…

pikachu—exec“eval“

这是原画面 然后呢? 我们知道会传入到后台rce_eval.php来处理然后通过 eval()是啥? 在eval括号里面可以执行外来机器的命令 然后我们通过php的一个内置的命令 我们通过phpinfo(); 这是输入后的结果

(四十八)第 7 章 图(图的数组(邻接矩阵)存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…

《python编程从入门到实践》day41

# 昨日知识点回顾 用户注销、注册&#xff0c;限制访问&#xff0c;新主题关联到当前用户 # 今日知识点学习 第20章 设置应用程序的样式并部署 20.1 设置项目“学习笔记”的样式 20.1.1 应用程序django-bootstrap4 # settings.py ---snip--- INSTALLED_APPS [# 我的应用程序…

链式法则:神经网络前向与反向传播的基石

在深度学习的浪潮中&#xff0c;神经网络以其强大的学习和预测能力&#xff0c;成为解决复杂问题的有力工具。而神经网络之所以能够不断学习和优化&#xff0c;离不开两个核心过程&#xff1a;前向传播和反向传播。其中&#xff0c;链式法则作为微积分学中的一个基本概念&#…

(C11) 泛型表达式

文章目录 ⭐语法⭐举例&#x1f6a9;判断对象类型&#x1f6a9;判断指针&#x1f6a9;函数重载&#x1f6a9;嵌套使用 END ⭐语法 Ref: 泛型选择 (C11 起) - cppreference.com 关键词&#xff1a; Genericdefault _Generic(控制表达式 , 关联列表) (C11 起) 关联列表 类型名:…

PHP:phpmyadmin 将查询数据导出csv

1、输入你的SQL查询出结果 2、查出数据以后拖到最下方【导出】 3、导出CSV

京东二面:Sychronized的锁升级过程是怎样的

引言 Java作为主流的面向对象编程语言&#xff0c;提供了丰富的并发工具来帮助开发者解决多线程环境下的数据一致性问题。其中&#xff0c;内置的关键字"Synchronized"扮演了至关重要的角色&#xff0c;它能够确保在同一时刻只有一个线程访问特定代码块或方法&#…

新书速览|Golang+Vue.js商城项目实战

架构师一步一步教你做项目&#xff0c;从架构设计到技术实现完整解析 本书内容 《GolangVue.js商城项目实战》以Gin和Vue.js为核心框架&#xff0c;以全栈商城项目开发为主线&#xff0c;详尽介绍前后端分离架构开发Web网站项目的关键阶段和技术细节。全书共9章&#xff0c;第…

多模态MLLM都是怎么实现的(9)-时序LLM是怎么个事儿?

时序预测这东西大家一般不陌生,随便举几个例子 1- 金融,比如预测股票(股市有风险,入市需谨慎),纯用K线做,我个人不太推荐 2- 天气,比如预测云图,天气预报啥的 3- 交通,早晚高峰,堵车啥的,车啥时候加油,啥时候充电之类的 4- 医疗,看你病史和喝酒的剂量建模,看你会…