Linux基础服务9——lamt架构

news2024/11/16 9:53:42

文章目录

  • 一、基本了解
  • 二、安装tomcat
  • 三、 常用文件
    • 3.1 bin目录文件
    • 3.2 conf目录文件
      • 3.2.1 server.xml文件
      • 3.2.2 tomcat-users.xml 文件
  • 四、分离部署lamt架构
    • 4.1 安装httpd
    • 4.2 安装mysql
    • 4.3 部署tomcat
    • 4.4 配置apache

一、基本了解

前提背景:

  1. Tomcat是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。
  2. 由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。
  3. Tomcat 技术先进、性能稳定、免费开源,所以深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

作用、优点:

  1. tomcat免费开源,属于轻量级应用服务器,是开发和调试JSP 程序的首选。
  2. tomcat作为中间件,是作用在apache和后端服务中间的,具有处理HTML页面的功能。
  3. tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。
  4. Tomcat处理静态HTML的能力不如Apache服务器。

java项目部署流程:

  1. 当使用tomcat来部署程序时,需要运维修改配置文件内容后,再启动tomcat,确保对应端口和进程都是正常的,此时才可以访问项目网页。
  2. 修改配置文件的哪些参数找对应的程序开发人员即可,程序存放位置在/usr/local/tomcat/webapps目录下。

二、安装tomcat

1.安装jdk环境。

 yum -y install java-1.8.0-openjdk*

2.安装tomcat,tomcat官网

wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.0.0-M10/bin/apache-tomcat-10.0.0-M10.tar.gz


//解压,做软连接。
tar xf apache-tomcat-10.0.0-M10.tar.gz -C /usr/local/
ln -s /usr/local/apache-tomcat-10.0.0-M10 /usr/local/tomcat


//自定义前端文件。
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
                out.println("Hellow World");
        %>
</body>
</html>

//关闭防火墙和selinux。
systemctl  stop firewalld
systemctl  disable firewalld
setenforce 0

//启动服务。
/usr/local/tomcat/bin/catalina.sh start

在这里插入图片描述
3.访问网页。
在这里插入图片描述

三、 常用文件

  • 常用文件目录分别为bin目录、confi目录、webapps目录。
  • webapps目录是存放程序代码的。

3.1 bin目录文件

  • bin目录下都是启动、停止脚本。

在这里插入图片描述

3.2 conf目录文件

在这里插入图片描述

3.2.1 server.xml文件

  • 一般只修改该文件里的端口配置。若要在一台主机上部署多个Tomcat,需要多个端口号,这个时候就需要修改端口号,比如8081,8082,8083等等。
[root@localhost conf]# vim server.xml 
......
<Server port="8005" shutdown="SHUTDOWN">       //8005端口是用来关闭的。

......
  <Connector port="8080" protocol="HTTP/1.1"    //8080端口是用来访问网页的。
               connectionTimeout="20000"
               redirectPort="8443" />                  //8443是https访问端口。
......

3.2.2 tomcat-users.xml 文件

  • 该文件是用来配置验证登陆的。
[root@localhost conf]# vim tomcat-users.xml 
......
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">                      //如果要添加东西,则在此行开始添加
<!--
......

1.访问Server Status网页。

//修改配置文件内容,在文件最后添加。
[root@localhost conf]# vim tomcat-users.xml 
......
-->
<role rolename="manager-gui"/>                 //粘贴这2行,自定义账号密码。
<user username="tomcat" password="123456" roles="manager-gui"/>
</tomcat-users>  //文件最后一行显示内容。


//修改配置文件内容,指定本机ip。
vim ../webapps/manager/META-INF/context.xml 

allow="192\.168\.130\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />     //在127前面加个管道符再添加主机IP才能访问,需要用分隔符
......

//重启服务。
/usr/local/tomcat/bin/catalina.sh  stop
/usr/local/tomcat/bin/catalina.sh  start

在这里插入图片描述
在这里插入图片描述

2.访问Host Manager网页

//添加配置文件内容
[root@localhost conf]# vim tomcat-users.xml 
......
<role rolename="admin-gui"/>            添加这2行内容。
<user username="tomcat" password="s3cret" roles="admin-gui"/>


//修改配置文件,指定本机ip。
vim ../webapps/host-manager/META-INF/context.xml
......
 allow="192\.168\.50\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />    添加本机IP

//重启服务
/usr/local/tomcat/bin/catalina.sh stop
/usr/local/tomcat/bin/catalina.sh start

在这里插入图片描述
3.访问Manager App网页,关闭Host Manager网页访问。
在这里插入图片描述

在这里插入图片描述

四、分离部署lamt架构

环境说明:

操作系统主机名IP需要安装的服务
CentOS7Tomcat192.168.130.162tomcat
CentOS7httpd192.168.130.160httpd
CentOS7mysql192.168.130.161mysql

4.1 安装httpd

1.配置yum源。

//配置CentOS源。
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

//配置epel源。
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

2.安装开发工具包和依赖包。

yum groups mark -y install 'Development Tools'
yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make

3.创建用户。

useradd -r -M -s /sbin/nologin apache

4.下载和安装apr以及apr-util。

cd /usr/src/
wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz

5.解压安装包,修改配置文件,开始编译安装。

//解压安装包。
tar zxf apr-1.7.4.tar.gz 
tar zxf apr-util-1.6.3.tar.gz 
tar zxf httpd-2.4.57.tar.gz 

//修改配置文件,编译安装apr。
cd apr-1.7.4
sed -i '/$RM "$cfgfile"/d' configure
./configure --prefix=/usr/local/apr
make
make install

//编译安装apr-util。
cd ../apr-util-1.6.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

//编译安装httpd。
cd ../httpd-2.4.57
./configure --prefix=/usr/local/apache \
 --sysconfdir=/etc/httpd24 \
 --enable-so \
 --enable-ssl \
 --enable-cgi \
 --enable-rewrite \
 --with-zlib \
 --with-pcre \
 --with-apr=/usr/local/apr \
 --with-apr-util=/usr/local/apr-util/ \
 --enable-modules=most \
 --enable-mpms-shared=all \
 --with-mpm=prefork
make
make install

6.设置环境变量

echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
source /etc//profile.d/httpd.sh 

7.做软连接。


ln -s /usr/local/apache/include /usr/include/apache

8.取消配置文件注释,避免出现提示信息。

sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf

9.关闭防火墙和selinux,启动服务,访问网页。

apachectl start

systemctl  stop firewalld
systemctl  disable firewalld
setenforce 0

10.访问网页。
在这里插入图片描述

4.2 安装mysql

1.安装依赖包。

yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel libncurses.so.5*

2.创建系统用户。

useradd -r -M -s /sbin/nologin mysql

3.官网下载安装包,上传服务器解压,官网。

wget  https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz --no-check-certificate
tar xf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

4.做软连接,修改属主属组,设置环境变量。

cd /usr/local/
ln -s mysql-5.7.41-linux-glibc2.12-x86_64 mysql

echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh 

5.建立数据存放目录。

mkdir /opt/data
chown -R mysql.mysql /opt/data

6.初始化数据库,编辑生成的配置文件内容。

mysqld --initialize-insecure --datadir=/opt/data --user=mysql 

//先备份配置文件。
mv /etc/my.cnf{,-bak}

//配置文件内容。
vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve

7.做软连接。

//include做软连接。
ln -s /usr/local/mysql/include /usr/include/mysql

//lib做软连接。
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig 

8.配置服务启动脚本。

cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld

cat >> /etc/init.d/mysqld << EOF
basedir=/usr/local/mysql  
datadir=/opt/data 
EOF

9.启动服务,设置密码。

service mysqld start
mysql -e 'set password=password("qingjun");'

10.关闭防火墙。

systemctl  stop firewalld
systemctl  disable firewalld
setenforce 0

4.3 部署tomcat

1.参考上文。
在这里插入图片描述

4.4 配置apache

1.启用代理模块。

sed -i '/proxy_module/s/#//g' /etc/httpd24/httpd.conf
sed -i '/proxy_http_module/s/#//g' /etc/httpd24/httpd.conf

2.配置虚拟机

//取消注释,指定读取虚拟主机的配置文件。
vim /etc/httpd24/httpd.conf 
......
Include /etc/httpd24/extra/httpd-vhosts.conf


//配置虚拟主机。
vim /etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs"
    ServerName www.example.com
    ErrorLog "logs/www.example.com-error_log"
    CustomLog "logs/www.example.com-access_log" common
     ProxyRequests Off
     ProxyPass / http://192.168.130.162:8080/            //指定tomcat主机地址。
     ProxyPassReverse / http://192.168.130.162:8080/    //指定tomcat主机地址。
    <Directory "/usr/local/apache/htdocs">
        Require all granted
    </Directory>
</VirtualHost>

3.重启服务,访问httpd的IP,得到tomcat的网页画面。

apachectl restart

在这里插入图片描述

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

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

相关文章

Git开发项目完整流程使用(图文超详解)

前世今生 自2002年开始&#xff0c;林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。因为BitKeeper为专有软件&#xff0c;这个决定在社群中长期遭受质疑。在Linux社群中&#xff0c;特别是理查德斯托曼与…

springboot电子招投标系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

MySQL基础篇第5章(排序与分页)

文章目录 1、排序1.1 排序规则1.2 单列排序1.3 多列排序 2、分页2.1 背景2.2 实现规则2.3 拓展 1、排序 1.1 排序规则 使用 ORDER BY 子句排序 ASC&#xff08;ascend&#xff09;: 升序DESC&#xff08;descend&#xff09;:降序 ORDER BY 子句在SELECT语句的结尾。 1.2 …

lumpy_sv的安装

目前利用lumpy-SV进行鉴定SV是比较常用的软件&#xff0c;但是其依赖python2.7版本的环境 ## 创建python 2.7版本conda环境 conda create -n python27 python2.7 ## 进入py27环境 conda activate python27 ## 下载lumpy软件并安装 git clone --recursive https://github.com/a…

深度学习——搭建神经网络的两种方式

方法一&#xff1a;定义神经网络类&#xff0c;然后实例化 代码&#xff1a; import torch import torch.nn.functional as F"""方法一&#xff1a;定义神经网络类&#xff0c;然后再实例化 """ # 神经网络类 class Net(torch.nn.Module):def …

CRYPTO-36D-justShow

0x00 前言 CTF 加解密合集&#xff1a;CTF 加解密合集 0x01 题目 hlcgoyfsjqknyifnpd:bcdefghijklmnopqrstuvwxyza0x02 Write Up 这道题也是完全击中了我的软肋&#xff0c;用到了新的加密方式&#xff0c;并且感觉到自己对这种类型的题目并不是很敏感。 首先看到hlcgoyfs…

基于matlab自动检测图像中的圆形目标并可视化检测到的圆(附源码)

一、前言 此示例说明如何自动检测图像中的圆或圆形目标并可视化检测到的圆。 二、实现步骤 步骤 1&#xff1a;加载图像 读取并显示包含各种颜色的圆形塑料片的图像。除了有大量要检测的圆之外&#xff0c;从圆检测的角度来看&#xff0c;此图像还有一些有趣的特点&#xf…

Sping Security前后端分离两种方案

前言 本篇文章是基于Spring Security实现前后端分离登录认证及权限控制的实战&#xff0c;主要包括以下四方面内容: Spring Seciruty简单介绍&#xff1b; 通过Spring Seciruty实现的基于表单和Token认证的两种认证方式; 自定义实现RBAC的权限控制&#xff1b; 跨域问题处理…

Django_模板继承

模板继承先创建一个父模版&#xff0c;它包含大部页面共有元素&#xff0c;并且需要定义能够被子模板覆盖的blocks标签。 extends 模板继承 通过下面的例子&#xff0c;理解模板继承的概念。 创建base.html文件&#xff0c;写入下面代码&#xff1a; <!DOCTYPE html>…

Stable Diffusion - 墨幽人造人 模型与 Tag 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131565068 墨幽人造人模型的版本介绍&#xff1a; v1010修剪&#xff1a;更小体积的4G修剪版&#xff0c;但是整体色彩及细节表现力、好手好脸概…

结构体和数据结构--动态数据结构体-单向链表

目录 一、问题的提出 二、链表的定义 三、单向链表的建立 四、单向链表的删除操作 五、单向链表的插入操作 一、问题的提出 数组实质是一种顺序存储&#xff0c;随机访问的线性表&#xff0c;它的优点是使用直观&#xff0c;便于快速、随机地存取线性表中地任意元素。但缺…

线性表综合应用题1

线性表综合应用题1 从顺序表中删除具有最小值的元素&#xff08;假设唯一&#xff09;并由函数返回被删除元素的值。空出的位置由最后一个元素填补&#xff0c;若顺序表为空&#xff0c;则显示出错信息并退出运行。 算法思想&#xff1a;搜索整个顺序表&#xff0c;查找最小值元…

多元回归预测 | Matlab基于鲸鱼算法(WOA)优化高斯过程回归(WOA-GPR)的数据回归预测,matlab代码,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于鲸鱼算法(WOA)优化高斯过程回归(WOA-GPR)的数据回归预测,matlab代码,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源…

ct.js笔记-整合SweetAlert2,弹出输入框(添加Cat模组)

如下&#xff1a; 效果如下&#xff1a; 点击Name后&#xff1a; 实现如下&#xff1a; 在ct.libs中添加个新文件夹sweetalert2文件夹。 内部要包含这几个关键文件&#xff1a; ①index.js&#xff1a;调用模组的入库文件&#xff1b; ②includes文件夹&#xff1a;把需要引…

keepalived 实现 IP 地址漂移

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

基于redis实现延时队列(二)

背景 上篇文章中使用了redis的zset定时器实现延时任务&#xff0c;虽然定时器设置为30秒执行一次&#xff0c;但是还是有时间上的差异化&#xff1b;现更换一种方式实现&#xff0c;可以避免时间上的差异。 redis的key过期回调事件&#xff0c;也能达到延迟队列效果 配置修改…

抖音短视频seo矩阵源码开源SaaS部署(四)

目录 一、 抖音短视频SEO矩阵包括以下内容&#xff1a; ​编辑 二、 源码开源部署流程 三、 SaaS的理解 四、 抖音短视频seo&#xff0c;SaaS矩阵部署用到的技术 抖音短视频SEO主要是通过以下几个方面实现的&#xff1a; SaaS矩阵部署主要用到的技术包括以下几个方面&…

深蓝学院C++基础与深度解析笔记 第 11 章 类

深蓝学院C基础与深度解析笔记 第 11 章 类 1. 结构体与对象聚合 **● 结构体&#xff1a;**对基本数据结构进行扩展&#xff0c;将多个对象放置在一起视为一个整体 – 结构体的声明与定义&#xff08;注意定义后面要跟分号来表示结束&#xff09; – 仅有声明的结构体是不完全…

【Linux后端服务器开发】共享内存

目录 一、共享内存概述 二、共享内存&#xff08;IPC资源&#xff09;的查看——ipcm 三、共享内存的创建——shmget 四、共享内存的控制&#xff08;删除&#xff09;——shmctl 五、共享内存的关联——shmat 六、共享内存去关联——shmdt 七、进程间通信 一、共享内存…

力扣 -- 309. 最佳买卖股票时机含冷冻期

题目链接&#xff1a;309. 最佳买卖股票时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 下面是用动态规划的思想解决这道题的过程&#xff0c;相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 参考代码&#xff1a; class Solution { public:int maxProfit(vec…