部署LAMP环境

news2024/11/17 19:37:44

红帽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';#此处为主机ip

GRANT 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 --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不同。重启会中断所有当前的连接,而重新加载则不会。

出现三个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 --permanent

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

firewall-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.coloradmin.cn/o/1710904.html

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

相关文章

使用python绘制一个五颜六色的爱心

使用python绘制一个五颜六色的爱心 介绍效果代码 介绍 使用numpy与matplotlib绘制一个七彩爱心! 效果 代码 import numpy as np import matplotlib.pyplot as plt# Heart shape function def heart_shape(t):x 16 * np.sin(t)**3y 13 * np.cos(t) - 5 * np.cos…

HNU-人工智能-作业3

人工智能-作业3 计科210X 甘晴void 202108010XXX 1.贝叶斯网络 根据图所给出的贝叶斯网络,其中:P(A)0.5,P(B|A)1, P(B|A)0.5, P(C|A)1, P(C|A)0.5,P(D|BC)1,P(D|B, C)0.5&#xff…

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

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

闲鱼电商运营高级课程,一部手机学会闲鱼开店赚钱

课程下载:https://download.csdn.net/download/m0_66047725/89360471 更多资源下载:关注我。 课程内容: 10-9、怎么寻找优质的货源店铺.mp4 11-10、怎么去选择商品图片.mp4 12-11、商品图片的注意避免事项.mp4 13-12、怎么写标题.mp4 …

C++ 基于vs2019创建并使用动态链接库(dll)

库的基本认识 静态库(Static Library) 基本概念:静态库是在编译时链接到目标程序中的库文件。它包含了程序运行所需的所有函数和数据,这些函数和数据会被直接嵌入到最终生成的可执行文件中。静态库通常以.a(在Unix-l…

三步走,Halo DB 安装指引

前文介绍了国产数据库新星 Halo 数据库是什么, 哈喽,国产数据库!Halo DB! ★ HaloDB是基于原生PG打造的新一代高性能安全自主可控全场景通用型统一数据库。 业内首次创造性的提出插件式内核架构设计,通过配置的方式,适…

美光拟投巨资在日本广岛建DRAM厂,目标2027年底投产

美光科技(Micron Technology)据日本媒体报道,计划在日本广岛县新建一座DRAM芯片生产工厂,目标最快于2027年底投入运营。这一举措标志着美光在增强其内存芯片生产能力方面的又一重大步伐。 报道称,新工厂的总投资规模预…

【CALayer-CALayer的基本属性 Objective-C语言】

一、接下来,我们来说这个Layer啊, 1.首先,Layer能接触到的,就是我们之前说截图啊,就是我们self.view里面,有一个layer属性, [self.view.layer renderInContext:(CGContextRef t)]; 那个里面,有一个layer属性,然后呢,是CALayer类型的, 接下来,我们就来学习一…

union all 以及标量子查询执行计划

SELECT 1, (SELECT ID1 FROM TE WHERE IDA.ID2) FROM .TA A WHERE COLA X UNION ALL SELECT 1, (SELECT ID2 FROM TD WHERE IDA.ID1) FROM .TB A WHERE COLA X UNION ALL SELECT 1,COL2 AS PARENT_UUID FROM .TC a WHERE COLA X 三个union all 看着像是5个table joi…

做好开源快速开发平台研发创新 助力行业高效发展!

随着信息化时代的到来,科技的力量无处不在。为了提高办公效率,很多大中型企业倾向于使用更为先进的软件平台来助力企业降本增效。在众多助力神器之中,开源快速开发平台低代码技术平台深得广大新老客户朋友的喜爱,它与生俱来的优势…

Python中Web开发-Django框架

大家好,本文将带领大家进入 Django 的世界,探索其强大的功能和灵活的开发模式。我们将从基础概念开始,逐步深入,了解 Django 如何帮助开发人员快速构建现代化的 Web 应用,并探讨一些最佳实践和高级技术。无论是初学者还…

APM2.8内置罗盘校准

如果你有外置罗盘,可以不用校准内置罗盘,可以忽略此文。推荐使用外置罗盘,内置罗盘容易受干扰。 使用内置罗盘需要插入飞控GPS接口旁边的跳线帽。如图: 如果要使用内置罗盘,而又加了GPS的,记得一定要把GPS…

手机性能过剩?三年前的改名芯片卡顿明显,中端机太弱鸡了

业界人士都喜欢说手机的性能已经严重过剩,笔者近期从运营商购买了两款手机,搭载的芯片是联发科的改名芯片,以及高通的低端芯片,使用中明显卡顿,显示出这些改名芯片的性能早已落后于时代。 其中一款为OPPO A2&#xff0…

【Mybatis】映射文件中获取参数的符号#{}和${}的区别

在xml映射文件中获取参数的符号都是用的#{}的方式,其实Mybatis还支持另一种符号来接收传递过来的参数值,就是${},他们是区别就在与底层使用jdbc的statement不一样 #{}对应的是PreparedStatementd对象来执行sql语句 ${}对应的是Statement对象…

【TCP协议中104解析】wireshark抓取流量包工具,群殴协议解析基础

Tcp ,104 ,wireshark工具进行解析 IEC104 是用于监控和诊断工业控制网络的一种标准,而 Wireshark则是一款常用的网络协议分析工具,可以用干解析TEC104 报文。本文将介绍如何使用 Wireshark解析 IEC104报文,以及解析过 程中的注意事项。 一、安…

Revit——(2)模型的编辑、轴网和标高

目录 一、关闭缩小的隐藏窗口 二、标高(可创建平面,其他标高线复制即可) 三、轴网 周围的四个圈和三角表示四个里面,可以移动,不要删除 一、关闭缩小的隐藏窗口 二、标高(可创建平面,其他标…

JDK9-21新特性概览(持续更新)

JDK9-21新特性概览 一、JDK9新特性1.1 JEP 102: Process API Updates简介案例风险 1.2 JEP 193: Variable Handles简介案例风险 1.3 JEP 200: The Modular JDK简介案例风险 1.4 JEP 213: Milling Project Coin简介案例1.1 try-with-resources增强1.2 接口中私有方法 1.5 JEP 22…

Sentinel-2 哨兵二号数据介绍及下载

1 Sentinel-2简介 SENTINEL-2 is a European wide-swath, high-resolution, multi-spectral imaging mission. Sentinel-2 是高分辨率多光谱成像卫星,一颗卫星的重访周期为10天,两颗互补,重访周期为5天。分为2A和2B两颗卫星。2A于2015年6月…

【Mybatis】映射文件中获取参数的类型是集合或数组处理

基本数据类型的参数或者对象作为参数的情况,在Mybatis还有一些特殊处理的参数类型要特别注意:如果参数类型是集合Collection(List,Set)或者是数组,Mybatis也会把这些类型的参数封装在一个Map对象中传递到xm…

电脑记事软件哪款安全?好用且安全的桌面记事工具

在快节奏的现代生活中,我们每天都要用电脑处理大量的工作。电脑不仅提升了工作效率,还成为了我们记录重要事项和灵感的得力助手。比如,在策划项目时,我会直接在电脑上列出要点和步骤;在开会时,我也会用电脑…