如何在openEuler中编译安装Apache HTTP Server并设置服务管理(含Systemd和Init脚本)

embedded/2025/1/17 3:22:49/

准备工作:

1、更新系统

        dnf update -y

2、安装必要的依赖(安装编译Apache所需的工具和库)

        dnf groupinstall "Development Tools"

        dnf install pcre-devel openssl-devel expat-devel apr apr-util-devel

方法一:使用Systemd服务单元文件

1、下载并解压httpd源码

        访问Apache官网下载最新版本的httpd源代码包

        wget https://downloads.apache.org/httpd/httpd-2.4.62.tar.gz


        tar xzvf httpd-2.4.62.tar.gz
        cd httpd-2.4.62

2、编译与安装

        配置、编译并安装httpd:

        ./configure --prefix=/usr/local/apache2
        make
        make install


3、创建Systemd服务单元文件

        创建一个名为httpd.service的文件于/etc/systemd/system/目录下:

        vim /etc/systemd/system/httpd.service
        内容如下:

        [Unit]
        Description=The Apache HTTP Server
        After=network.target
        [Service]
        Type=forking
        ExecStart=/usr/local/apache2/bin/apachectl start
        ExecStop=/usr/local/apache2/bin/apachectl stop
        ExecReload=/usr/local/apache2/bin/apachectl graceful
        PrivateTmp=true
        [Install]
        WantedBy=multi-user.target

4、启用并启动服务

        重新加载systemd配置并启动httpd服务:

        systemctl daemon-reload
        systemctl enable httpd
        systemctl start httpd

5、验证服务

 

方法二:使用传统的Init脚本

1、前提条件

        同方法一,先完成httpd的安装

2、创建Init脚本

        创建一个位于/etc/init.d/下的脚本文件,例如命名为httpd:

        vim /etc/init.d/httpd

        脚本:

        #!/bin/sh

        APACHE_HOME=/usr/local/apache2

        case "$1" in
        start)
            echo "Starting Apache..."
            $APACHE_HOME/bin/apachectl start
            ;;
        stop)
            echo "Stopping Apache..."
            $APACHE_HOME/bin/apachectl stop
            ;;
        restart)
            echo "Restarting Apache..."
            $APACHE_HOME/bin/apachectl restart
            ;;
        status)
            echo "Checking Apache status..."
            $APACHE_HOME/bin/apachectl status
            ;;
        *)
            echo "Usage: $0 {start|stop|restart|status}"
            exit 1
            ;;
        esac

        exit 0

        给脚本添加执行权限:

        chmod +x /etc/init.d/httpd 


3、管理服务

        启动服务:service httpd start

        停止服务:service httpd stop

        重启服务:service httpd restart

4、验证服务


http://www.ppmy.cn/embedded/154547.html

相关文章

【数据结构学习笔记】19:跳表(Skip List)

介绍 跳表是一个能在 O ( n l o g n ) O(nlogn) O(nlogn)时间完成查找、插入、删除的数据结构,相比于树形结构优点就是很好写(所以也用于实现Redis ZSet)。其核心思想就是维护一个元素有序的,能随机提升索引层数的链表。最下面一…

24. 【.NET 8 实战--孢子记账--从单体到微服务】--记账模块--预算扣除、退回、补充

这篇文章我们一起来编写目前为止最为复杂的功能:预算扣除、退回、补充。预算回退有三种情况:修改后的支出金额小于修改前的支出金额、支出记录删除后、记录类型从支出改为收入。预算补充的情况有两种:记录类型从收入改为支出、修改后的支出金…

【Linux】【内存】Linux内核内存分配

【Linux】【内存】Linux内核内存分配 Linux内存管理几大分配方式 内存分配器分配函数使用场景引导内存分配器(Boot allocator)bootmem内核启动时进行内存初始化Buddy伙伴分配器(Buddy allocator)alloc_pages以4K(一页)为分配单元…

C++STL中常用的排序算法:sort、random_shuffle、merge和reverse(附C++代码)

💪 图像算法工程师,专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 &a…

docker安装rabbit后访问报错最佳的几种解决方案

错误通常是由于RabbitMQ的安全配置导致的,RabbitMQ默认配置允许的用户仅能通过localhost访问。这通常出现在RabbitMQ的guest用户上,guest用户默认只能从localhost登录,而无法从其他IP地址进行远程访问。 解决方法: 1. **创建一个…

【网络云SRE运维开发】2025第3周-每日【2025/01/15】小测-【第14章ospf高级配置】理论和实操解析

文章目录 14.1 选择题解题思路和参考答案14.2 理论题解题思路和参考答案14.3 实操题解题思路和参考答案思科(Cisco)设备华为(Huawei)设备小米/锐捷(或其他支持标准CLI命令的设备)通过网络管理工具注意事项 …

Public Key Retrieval is not allowed 解决方法

如图:我的报错是Public Key Retrieval is not allowed,我的前后端都能正常加载,但是在请求数据库时就会报错如下: 解决办法: 在 application.yaml 中的数据库设置地方加上allowPublicKeyRetrievaltrue,然后…

C# OpenCV机器视觉:主色提取

在一个忙碌的工作日,小李正对着电脑屏幕上密密麻麻的数据愁眉苦脸,突然,手机铃声大作,打破了办公室的宁静。原来是工厂的张厂长打来的电话:“小李啊,咱们新生产的那批产品,客户要求必须提取出主…