当前位置: 首页 > article >正文

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

准备工作:

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.kler.cn/a/509342.html

相关文章:

  • 阿里云通义实验室自然语言处理方向负责人黄非:通义灵码2.0,迈入 Agentic AI
  • Html5 video标签学习
  • 【Rust自学】13.2. 闭包 Pt.2:闭包的类型推断和标注
  • Linux查看日志命令
  • 当父级元素设置了flex 布局 ,两个子元素都设置了flex :1, 但是当子元素放不下的时候会溢出父元素怎么解决 (css 样式问题)
  • 【数模学习笔记】插值算法和拟合算法
  • 【Linux】线程全解:概念、操作、互斥与同步机制、线程池实现
  • linux下springboot项目nohup日志或tomcat日志切割处理方案
  • Redis集群部署详解:主从复制、Sentinel哨兵模式与Cluster集群的工作原理与配置
  • leetcode707-设计链表
  • 电脑风扇声音大怎么办? 原因及解决方法
  • github 端口22 超时问题解决
  • AWS物联网连接的数据记录器在冰川环境中的性能比较:Campbell CR1000X与ESP32开源
  • 【react】使用antd Table渲染数据遇到的报错问题
  • 用Cursor生成一个企业官网前端页面(生成腾讯、阿里官网静态页面)
  • redis安装教程(windows)
  • 从零到一:Spring Boot 与 RocketMQ 的完美集成指南
  • 25/1/18 嵌入式笔记 STM32F103
  • Golang——常用库sync
  • QT 使用QSqlTableModel对数据库进行创建,插入,显示
  • github登录用的TOTP和恢复码都丢失了怎么办
  • linux m、mm、mmm函数和make的区别
  • 与“神”对话:Swift 语言在 2025 中的云霓之望
  • Qt的核心机制概述
  • Google Titans: 测试阶段的学习与记忆
  • OLED--软件I2C驱动__标准库和HAL库