Linux手动编译方式安装httpd及配置系统服务(含不同安装方式简介)



不同的软件安装方式优缺点

手动编译安装

优点

  • 灵活性高:可以自定义安装选项,如安装路径、编译参数等,满足特定需求。
  • 版本控制:能够安装特定版本的软件,尤其是当需要旧版本或未正式发布的版本时。
  • 依赖管理:虽然依赖关系可能复杂,但用户可以完全控制哪些依赖项被安装,避免不必要的包。

缺点

  • 安装复杂:需要用户具备一定的编译知识和经验,以及解决依赖问题的能力。
  • 耗时长:编译过程可能需要较长时间,尤其是大型软件。
  • 安全性问题:如果源代码来自不可信的来源,可能存在安全风险。

包管理器安装(如apt、yum等)

优点

  • 方便快捷:一键安装,自动处理依赖关系,大大简化了安装过程。
  • 易于管理:可以方便地更新、卸载软件包,保持系统整洁。
  • 安全性高:包管理器通常只提供经过验证的软件包,降低了安全风险。

缺点

  • 版本限制:用户可能无法安装最新版本的软件,尤其是当新版本尚未被包管理器收录时。
  • 灵活性低:安装选项受限,用户无法像编译安装那样自定义安装路径和编译参数。

二进制安装

优点

  • 安装简单:通常只需要解压并运行安装脚本或命令即可完成安装。
  • 快速:无需编译,安装速度通常比编译安装快。

缺点

  • 依赖问题:可能需要用户手动解决依赖关系,尽管比编译安装简单,但仍需一定经验。
  • 版本兼容性:二进制安装包可能只适用于特定平台或架构,限制了其适用范围。

手动编译安装httpd

编译安装httpd的步骤

1、解压源码包

tar -xf httpd-2.4.29.tar.bz2

2、安装依赖环境:创建本地yum源后,安装依赖环境

yum install apr* gcc* pcre* -y

3、进入httpd-2.4.29目录下,带安装路径执行./configure (也可安装到/usr/local/httpd下)

./configure --prefix=/opt/apps/httpd  #配置安装路径

4、编译

make

5、安装(时间较长,可以使用&&两条一起执行)

make install

6、关闭防火墙和安全机制,真实场景应配置防火墙规则

systemctl stop firewalld    #关闭防火墙服务
systemctl disable firewalld #禁止开机自启
setenforce 0                #核心防护关闭

7、开启服务

/opt/apps/httpd/bin/apachectl start   #开启服务
/opt/apps/httpd/bin/apachectl stop    #停止服务

开启服务后会报警告

AH00558: httpd: Could not reliably determine the server's fully qualified do main name,
using localhost.localdomain.Set the 'ServerName' directive globally to suppress this message

调试状态下暂时可以忽视

8、使用curl命令模拟一个HTTP的形式来访问目标,再使用浏览器访问目标IP

curl 192.168.233.21

浏览器访问也是正常的

9、使用netstat查看端口占用情况,此时80端口是开启的

netstat -natp | grep 80

配置系统服务使systemd

配置系统服务使systemctl可以管理httpd。

systemctl 是 Linux 系统上用于控制 systemd 系统和服务管理器的命令行工具。

创建软连接的方式(不采取)

假设安装到/usr/local/httpd/目录下,创建软连接

ln -s /usr/local/httpd/bin/* /usr/local/bin

此时在/usr/local/bin/目录下已经有了apachectl文件,此时系统已经可以识别这个命令,可以使用这个文件进行启动等操作

但是并没有配置系统服务,也就是systemctl 管理工具并不能识别httpd

systemctl status httpd

优化管理

1、需要在/lib/systemd/system/创建httpd.service文件并添加配置信息

vim /lib/systemd/system/httpd.service

2、定义文件配置,将服务路径添加到systemd,才可以识别

[Unit]
Description=The Apache HTTP Server		#描述
After=network.target									#描述服务类别
[Service]
Type=forking										     	#后台运行方式
PIDFile=/opt/apps/httpd/logs/httpd.pid			  #PID文件位置
ExecStart=/usr/local/bin/apachectl $OPTIONS		#启动服务
ExecReload=/bin/kill -HUP $MAINPID						#根据PID重载配置
[Install]
WantedBy=multi-user.target

注:使用d+$可以向后删除

3、此时,systemctl已经可以控制httpd服务

systemctl start httpd
systemctl status httpd

4、在使用systemctl关闭前,最好先使用apachectl关闭

apachectl stop

5、使用netstat 可以查看到80端口启动


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值