Linux 源码编译安装httpd 2.4,提供系统服务管理脚本并测试

news/2025/2/7 7:46:29/

第一种方式

1. 下载 Apache HTTP Server 源代码
首先,从 Apache 官网 下载最新版本的 httpd 2.4 源码,或者直接使用 wget 下载:

[root@localhost ~]# wget https://downloads.apache.org/httpd/httpd-2.4.36.tar.gz # 解压
[root@localhost ~]# tar xf httpd-2.4.63.tar.gz -C /usr/local/src/
[root@localhost ~]# yum install gcc gcc-c++ make#切换
[root@localhost ~]# cd /usr/local/src/httpd-2.4.63/

2.添加组与用户

[root@localhost httpd-2.4.63]# groupadd -r -g 48 apache
[root@localhost httpd-2.4.63]# useradd -r -u 48 -g 48 -c "Apache server" -s /sbin/nologin apache

3. 安装编译依赖

[root@localhost httpd-2.4.63]# yum install apr-devel
[root@localhost httpd-2.4.63]# yum install apr-util-devel
[root@localhost httpd-2.4.63]# yum install pcre-devel

4. 配置编译选项编译并安装

[root@localhost httpd-2.4.63]# ./configure --prefix=/usr/local/apache

5.编译并安装

[root@localhost httpd-2.4.63]# make
[root@localhost httpd-2.4.63]# make install

6.配置文件

[root@localhost ~]# cd /usr/local/apache
[root@localhost apache]# cd bin/
[root@localhost bin]# ll
total 1300
-rwxr-xr-x 1 root root  55576 Feb  6 16:15 ab
-rwxr-xr-x 1 root root   3434 Feb  6 16:13 apachectl
-rwxr-xr-x 1 root root  23877 Feb  6 16:13 apxs
-rwxr-xr-x 1 root root  16480 Feb  6 16:15 checkgid
-rwxr-xr-x 1 root root   8874 Feb  6 16:13 dbmmanage
-rw-r--r-- 1 root root   1071 Feb  6 16:13 envvars
-rw-r--r-- 1 root root   1071 Feb  6 16:13 envvars-std
-rwxr-xr-x 1 root root  17480 Feb  6 16:15 fcgistarter
-rwxr-xr-x 1 root root  44608 Feb  6 16:15 htcacheclean
-rwxr-xr-x 1 root root  31728 Feb  6 16:15 htdbm
-rwxr-xr-x 1 root root  17760 Feb  6 16:15 htdigest
-rwxr-xr-x 1 root root  31176 Feb  6 16:15 htpasswd
-rwxr-xr-x 1 root root 975544 Feb  6 16:15 httpd
-rwxr-xr-x 1 root root  17440 Feb  6 16:15 httxt2dbm
-rwxr-xr-x 1 root root  18072 Feb  6 16:15 logresolve
-rwxr-xr-x 1 root root  31072 Feb  6 16:15 rotatelogs[root@localhost bin]# cp apachectl /etc/init.d/httpd
[root@localhost bin]# ll /etc/init.d/httpd
-rwxr-xr-x 1 root root 3434 Feb  6 16:32 /etc/init.d/httpd
[root@localhost bin]# vim /etc/init.d/httpd
##添加如下脚本#chkconfig:  35 80 10
#description:  Apache is an HTTP(S) server

7.添加成系统服务

[root@localhost bin]# chkconfig --level 35 --add httpd
[root@localhost bin]# chkconfig --level 35 httpd on
[root@localhost bin]# chkconfig --list httpdNote: This output shows SysV services only and does not include nativesystemd services. SysV configuration data might be overridden by nativesystemd configuration.If you want to list systemd services use 'systemctl list-unit-files'.To see services enabled on particular target use'systemctl list-dependencies [target]'.httpd           0:off   1:off   2:off   3:on    4:off   5:on    6:off

8.启动服务

[root@localhost bin]# systemctl start httpd

9.查看端口

[root@localhost bin]# netstat -lnupt | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      33622/httpd

 如果没有安装net-tools,需安装后才能查看端口:

#yum install net-tools

10.测试成功 

11.反向操作删除

[root@localhost bin]# systemctl stop httpd
[root@localhost bin]# chkconfig --level 35 httpd off
[root@localhost bin]# chkconfig --level 35 --del httpd
[root@localhost bin]# rm -f /etc/local/init.d/httpd

第二种方式

1.编辑文件

[root@localhost bin]# vim /usr/lib/systemd/system/httpd.service[Unit]
Description=The Apache HTTP Server
Documentation=man:httpd.service(8)
After=network.target remote-fs.target nss-lookup.target httpd-init.service
Wants=httpd-init.service[Service]
Type=forking
ExecStart=/usr/local/apache/bin/httpd  -k start
ExecReload=/usr/local/apache/bin/httpd  -k graceful
ExecStop=/usr/local/apache2/bin/httpd -k stop
PrivateTmp=true
PIDFile=/usr/local/apache/logs/httpd.pid[Install]
WantedBy=multi-user.target
[root@localhost bin]# vim /usr/local/apache/conf/httpd/conf##修改如下脚本
User apache
Group apache

2.检测编写脚本是否有误

[root@localhost bin]# /usr/local/apache/bin/httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Syntax OK

3.加载系统守护进程

[root@localhost bin]# systemctl daemon-reload

4.启动服务

[root@localhost bin]# systemctl start httpd

5.测试


http://www.ppmy.cn/news/1570018.html

相关文章

javaEE-8.JVM(八股文系列)

目录 一.简介 二.JVM中的内存划分 JVM的内存划分图: 堆区:​编辑 栈区:​编辑 程序计数器:​编辑 元数据区:​编辑 经典笔试题: 三,JVM的类加载机制 1.加载: 2.验证: 3.准备: 4.解析: 5.初始化: 双亲委派模型 概念: JVM的类加…

算法设计与分析三级项目--管道铺设系统

摘 要 该项目使用c算法逻辑,开发环境为VS2022,旨在通过Prim算法优化建筑物间的连接路径,以支持管线铺设规划。可以读取文本文件中的建筑物名称和距离的信息,并计算出建筑物之间的最短连接路径和总路径长度,同时以利用…

Java语法糖详解

前言 在现代编程语言的发展历程中,语法糖(Syntactic Sugar)作为一种提升代码可读性和开发效率的重要特性,已经成为语言设计的重要组成部分。Java作为一门成熟且广泛应用的编程语言,在其长期演进过程中,语法…

Python——Unicode 编码 或 解码 工具(GUI打包版)

目录 专栏导读1、代码背景2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…

java 8 在 idea 无法创建 java spring boot 项目的 变通解决办法

java 8 在 idea 无法创建 java spring boot 项目的 变通解决办法 spring boot 3 官方强制 要用 java 17 ,但是 不想安装java 17的 ,但是又想 使用 spring boot ,可以这样 : 在这个网站 https://start.aliyun.com/ 选择 你相对…

E卷-螺旋数字矩阵-(100分)

专栏订阅🔗 螺旋数字矩阵 问题描述 LYA 小姐最近在家无聊时发明了一种填数游戏。给定一个矩阵的行数 m m m 和需要填入的数字个数 n

SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪

SpringBoot教程(三十二) | SpringBoot集成Skywalking链路跟踪 一、Skywalking是什么?二、Skywalking与JDK版本的对应关系三、Skywalking下载四、Skywalking 数据存储五、Skywalking 的启动六、部署探针 前提: Agents 8.9.0 放入 …

【OpenCV插值算法比较】

OpenCV插值算法 OpenCV插值算法比较1. 最近邻插值(INTER_NEAREST)2. 双线性插值(INTER_LINEAR)3. 双三次插值(INTER_CUBIC)4. 区域插值(INTER_AREA)5. 兰索斯插值(INTER_…