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

embedded/2025/2/7 5:33:55/

第一种方式

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/embedded/160212.html

相关文章

【深度学习】基于MXNet的多层感知机的实现

多层感知机 结构组成 大致由三层组成:输入层-隐藏层-输出层,其中隐藏层大于等于一层 其中,隐藏层和输出层都是全连接 隐藏层的层数和神经元个数也是超参数 多层隐藏层,在本质上仍等价于单层神经网络(可从输出方程…

面向对象程序设计-实验1

6-1 求两个或三个整数中的最大数&#xff0c;用带默认参数的函数实现 本题要求实现一个带默认参数的函数&#xff0c;求两个或三个整数中的最大数 代码清单&#xff1a; #include <iostream> using namespace std; int main() { int max( int a,int b,int c0); int …

ASP.NET Core 中使用依赖注入 (DI) 容器获取并执行自定义服务

目录 一、ASP.NET Core 中使用依赖注入 (DI) 容器获取并执行自定义服务 1. app.Services 2. GetRequiredService() 3. Init() 二、应用场景 三、依赖注入使用拓展 1、使用场景 2、使用步骤 1. 定义服务接口和实现类 2. 注册服务到依赖注入容器 3. 使用依赖注入获取并…

springboot/ssm互联网智慧医院体检平台web健康体检管理系统Java代码编写

springboot/ssm互联网智慧医院体检平台web健康体检管理系统Java代码编写 基于springboot(可改ssm)vue项目 开发语言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&am…

深度剖析八大排序算法

欢迎并且感谢大家指出我的问题&#xff0c;由于本人水平有限&#xff0c;有些内容写的不是很全面&#xff0c;只是把比较实用的东西给写下来&#xff0c;如果有写的不对的地方&#xff0c;还希望各路大牛多多指教&#xff01;谢谢大家&#xff01;&#x1f970; 在计算机科学领…

【LLM-agent】(task4)搜索引擎Agent

note 新增工具&#xff1a;搜索引擎Agent 文章目录 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加载环境变量 load_dotenv() # 初始化变量 base_url None chat_model None api_key None# 使用with语句打开文件&#xf…

C 语言雏启:擘画代码乾坤,谛观编程奥宇之初瞰

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。* 这一课主要是让大家初步了解C语言&#xff0c;了解我们的开发环境&#xff0c;main函数&#xff0c;库…

【开源免费】基于SpringBoot+Vue.JS医院后台管理系统(JAVA毕业设计)

本文项目编号 T 170 &#xff0c;文末自助获取源码 \color{red}{T170&#xff0c;文末自助获取源码} T170&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…