源码安装apache

源码安装apache

相关依赖

gcc、 gcc-c++c语言编译环境
openssl-deve提供网站证书服务
pcre-devel是一个Perl库,包括 perl兼容的正则表达式库解决C语言中使用正则表达式的问题
expat-devel解析XML文档的开发库
libtool库文件
apr早期为了兼容各系统,提供一个统一操作的函数接口,包含了一些通用的开发组件
apr-utils包含了一些常用的开发组件。这些组件与apr目录下的相比,它们与apache的关系更加密切一些。比如存储段和存储段组,加密等等

实验思路

  1. 先安装gcc ,gcc++ 环境
  2. 安装openssl-devel pcre-devel expat-devel libtool
  3. 安装apr 和apr-utils
  4. 安装apache
  5. 编写环境变量
  6. 启动服务
  7. 关闭防火墙

实验流程

  • 第一步:安装gcc ,gcc-c++
[root@cloud1 ~]# yum install -y gcc gcc-c++
  • 第二步:安装openssl-devel pcre-devel expat-devel libtool
[root@cloud1 ~]# yum install -y openssl-devel pcre-devel expat-devel libtool
  • 第三步:安装apr和apr-utils
  • 下载地址:http://archive.apache.org/dist/apr/

image-20210424174138068

image-20210424174046306

#用xftp传到/opt
[root@cloud1 opt]# ls
apr-1.6.3.tar.gz  apr-util-1.6.1.tar.gz
[root@cloud1 opt]# tar -xf apr-1.6.3.tar.gz 
[root@cloud1 opt]# tar -xf apr-util-1.6.1.tar.gz
[root@cloud1 opt]# cd apr-1.6.3/
[root@cloud1 apr-1.6.3]# vim configure
30976    #$RM "$cfgfile"  #在30976行添加注释
[root@cloud1 apr-1.6.3]# ./configure --prefix=/usr/local/apr
[root@cloud1 apr-1.6.3]# make && make install
[root@cloud1 apr-1.6.3]# cd /opt/apr-util-1.6.1/
[root@cloud1 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@cloud1 apr-util-1.6.1]# make & make install

  • 第四步:安装apache
  • 下载地址:http://httpd.apache.org/download.cgi

image-20210424180249801

#xftp传到/opt
[root@cloud1 opt]# tar xf httpd-2.4.46.tar.gz 
[root@cloud1 opt]# cd httpd-2.4.46/
[root@cloud1 httpd-2.4.46]# ./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
[root@cloud1 httpd-2.4.46]# make && make install
  • 编写环境变量
[root@z1 yum.repos.d]# echo 'export PATH=/usr/local/apache/bin/:$PATH' > /etc/profile.d/apache.sh
[root@z1 yum.repos.d]# source /etc/profile.d/apache.sh

  • 启动服务
[root@z1 httpd-2.4.46]# apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fec4:1136. Set the 'ServerName' directive globally to suppress this message
  • 编辑.server文件实现systemctl控制

    .server文件分为三部分

    • [Unit]:部分主要是对这个服务的说明

    • Description用于描述服务
      After描述服务启动依赖
    • [Service]:是服务的一些具体运行参数的设置

    • Type=forking后台运行的形式
      PIDFile存放PID的文件路径
      ExecStart服务的运行命令路径(绝对路径)
      ExecReload服务的重启命令路径(绝对路径)
      ExecStop服务的停止命令路径(绝对路径)
    • [Install]:是服务安装的相关设置,可设置为多用户等

[root@cloud1 ~]vim /usr/lib/systemd/system/httpd.server
[Unit]     				#区块:启动顺序与依赖关系
Description=httpd	    #当前配置文件的描述信息
After=network.target    #表示当前服务是在那个服务后面启动,一般定义为网络服务启动后启动
[Service]				#区块:启动行为
Type=forking			#定义启动类型
ExecStart=/usr/local/apache/bin/apachectl start 	#定义启动进程时执行的命令。
ExecReload=/usr/local/apache/bin/apachectl restart  #重启服务时执行的命令
ExecStop=/usr/local/apache/bin/apachectl stop		#定义关闭进程时执行的命令。
PrivateTmp=true										#是否分配独立空间
[Install]
WantedBy=multi-user.target
[root@z1 ~]# systemctl start httpd.service 
[root@z1 ~]# ss -antl
State      Recv-Q     Send-Q         Local Address:Port         Peer Address:Port     Process     
LISTEN     0          128                  0.0.0.0:111               0.0.0.0:*                    
LISTEN     0          32             192.168.122.1:53                0.0.0.0:*                    
LISTEN     0          128                  0.0.0.0:22                0.0.0.0:*                    
LISTEN     0          5                  127.0.0.1:631               0.0.0.0:*                    
LISTEN     0          100                127.0.0.1:25                0.0.0.0:*                    
LISTEN     0          128                        *:9000                    *:*                    
LISTEN     0          80                         *:3306                    *:*                    
LISTEN     0          128                     [::]:111                  [::]:*                    
LISTEN     0          128                        *:80                      *:*                    
LISTEN     0          128                     [::]:22                   [::]:*                    
LISTEN     0          5                      [::1]:631                  [::]:*                    
LISTEN     0          100                    [::1]:25                   [::]:*                  
  • 第六步:关闭防火墙和selinux
[root@cloud1 ~]# setenforce 0
[root@cloud1 ~]# systemctl stop firewalld

image-20210424191408171

代理

  • 正向代理
  1. 有点类似于科学上网
  2. 工作流程:client 把请求数据发往proxy服务器 ,代理服务器则向服务器请求数据,然后发给client
  3. 特点:服务器不知道client的真实地址
  • 反向代理
  1. 和正向代理相反
  2. 工作流程:client 把请求数据发往proxy服务器 ,代理服务器则向服务器请求数据,但此时该服务器下有多台服务器提供服务,但对外表示为一台。心跳服务器根据相应算法,挑选一台服务器为client提供服务
  3. 特点:client不知道server的真实服务器
  • 透明代理
  1. 正向代理的一种
  2. 是客户端根本不需要知道有代理服务器的存在,它改变你的request fields(报文),并会传送真实IP

假设A为内部网络客户机,B为外部网络服务器,C为防火墙。当A对B有连接请求时,TCP连接请求被防火墙截取并加以监控。截取后当发现连接需要使用代理服务器时,A和C之间首先建立连接,然后防火墙建立相应的代理服务通道与目标B建立连接,由此通过代理服务器建立A 和目标地址B的数据传输途径。从用户的角度看,A和B的连接是直接的,而实际上A 是通过代理服务器C和B建立连接的。反之,当B对A有连接请求时原理相同。由于这些连接过程是自动的,不需要客户端手工配置代理服务器,甚至用户根本不知道代理服务器的存在,因而对用户来说是透明的

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值