源码编译安装httpd 2.4,提供系统服务管理脚本并测试(两种方法实现)

方法一:使用 systemd 服务文件

sudo yum install gcc make autoconf apr-devel apr-util-devel pcre-devel
 

1.下载源码

   wget https://archive.apache.org/dist/httpd/httpd-2.4.46.tar.gz

2.解压源码

tar -xzf httpd-2.4.46.tar.gz

如果没有安装tar 记得先安装

sudo yum install tar


cd httpd-2.4.46

3.编译安装

./configure --prefix=/usr/local/apache --enable-so --enable-ssl


make


make install

4.创建 systemd 服务文件

创建 /etc/systemd/system/httpd.service 文件,并添加以下内容:

[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/apache/logs/httpd.pid
ExecStart=/usr/local/apache/bin/httpd -k start
ExecReload=/usr/local/apache/bin/httpd -k restart
ExecStop=/usr/local/apache/bin/httpd -k stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

5.启动服务

systemctl daemon-reload
systemctl start httpd
systemctl enable httpd

测试:

  1. 测试 httpd 服务是否正常运行(网页访问测试)
    • 前提条件:确保 httpd 服务已经启动,并且防火墙规则允许访问 httpd 服务的端口(通常是 80 端口)。如果是在本地测试,可以暂时关闭防火墙或者添加允许访问 80 端口的规则。
    • 步骤:
      • 打开网页浏览器,在地址栏中输入服务器的 IP 地址或者域名(如果有配置域名解析)。
      • 如果 httpd 服务正常运行并且配置正确,应该可以看到 Apache 的默认欢迎页面或者你自己配置的网站首页。这表明 httpd 服务能够正确地接收和处理 HTTP 请求,并返回相应的网页内容。
  2. 测试 httpd 服务是否正常运行(命令行工具测试)
    • 使用 curl 命令测试(本地或远程测试):
      • 前提条件:curl是一个命令行工具,用于传输数据,在大多数 Linux 系统中默认安装。如果没有安装,可以通过包管理器安装(如在 Debian/Ubuntu 系统中使用sudo apt - install curl,在 CentOS/RHEL 系统中使用sudo yum - install curl)。
      • 步骤:
        • 在命令行中输入curl http://<服务器IP地址或域名>
        • 如果 httpd 服务正常运行,curl命令会返回服务器返回的网页内容,例如 HTML 代码等。如果服务没有正常运行,可能会出现无法连接、超时等错误信息。

可以通过上述方式进行测试是否可以正常运行。

方法二:使用 init.d 脚本

 1.下载源码

   wget https://archive.apache.org/dist/httpd/httpd-2.4.46.tar.gz

2.解压源码

tar -xzf httpd-2.4.46.tar.gz

如果没有安装tar 记得先安装

sudo yum install tar


cd httpd-2.4.46

3.编译安装

./configure --prefix=/usr/local/apache --enable-so --enable-ssl


make


make install

5.创建 init.d 脚本

sudo nano /etc/init.d/httpd

内容如下:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          httpd
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Apache HTTP Server
# Description:       Apache HTTP Server
### END INIT INFOcase "$1" instart)/usr/local/apache2/bin/apachectl start;;stop)/usr/local/apache2/bin/apachectl stop;;restart)/usr/local/apache2/bin/apachectl restart;;status)/usr/local/apache2/bin/apachectl status;;*)echo "Usage: $0 {start|stop|restart|status}"exit 1;;
esac
exit 0

6.赋予执行权限

sudo chmod +x /etc/init.d/httpd

7.启用和测试服务

sudo systemctl enable httpd

sudo service httpd start

sudo service httpd status

sudo tail -f /usr/local/apache2/logs/error_log

  1. 测试 httpd 服务是否正常运行(网页访问测试)
    • 前提条件:确保 httpd 服务已经启动,并且防火墙规则允许访问 httpd 服务的端口(通常是 80 端口)。如果是在本地测试,可以暂时关闭防火墙或者添加允许访问 80 端口的规则。
    • 步骤:
      • 打开网页浏览器,在地址栏中输入服务器的 IP 地址或者域名(如果有配置域名解析)。
      • 如果 httpd 服务正常运行并且配置正确,应该可以看到 Apache 的默认欢迎页面或者你自己配置的网站首页。这表明 httpd 服务能够正确地接收和处理 HTTP 请求,并返回相应的网页内容。
  2. 测试 httpd 服务是否正常运行(命令行工具测试)
    • 使用 curl 命令测试(本地或远程测试):
      • 前提条件:curl是一个命令行工具,用于传输数据,在大多数 Linux 系统中默认安装。如果没有安装,可以通过包管理器安装(如在 Debian/Ubuntu 系统中使用sudo apt - install curl,在 CentOS/RHEL 系统中使用sudo yum - install curl)。
      • 步骤:
        • 在命令行中输入curl http://<服务器IP地址或域名>
        • 如果 httpd 服务正常运行,curl命令会返回服务器返回的网页内容,例如 HTML 代码等。如果服务没有正常运行,可能会出现无法连接、超时等错误信息。

可以通过上述方式进行测试是否可以正常运行。

等等这些方法测试,但是具体情况还要具体分析,选择最合适的方法是最好的。

两种方法的注意事项:

使用 systemd 管理 Apache 服务的注意事项:

  1. 正确的服务文件:确保你已经创建了正确的 systemd 服务文件,并且它位于 /etc/systemd/system/ 目录下。

  2. 重新加载守护进程:在修改了服务文件后,需要重新加载 systemd 守护进程以识别变化:sudo systemctl daemon-reload

  3. 服务状态和日志:使用 systemctl status <service> 来检查服务状态,使用 journalctl -u <service> 查看服务日志。

  4. 启用和禁用服务:使用 systemctl enable <service> 来设置服务开机自启,使用 systemctl disable <service> 来禁用。

  5. 启动和停止服务:使用 systemctl start <service> 来启动服务,使用 systemctl stop <service> 来停止服务。

  6. 重启服务:使用 systemctl restart <service> 来重启服务,这在配置更改后是必要的。

  7. 依赖关系:确保服务的依赖关系在 [Unit] 部分正确设置,例如 After=network.target 确保网络服务已经启动。

使用 init.d 脚本管理 Apache 服务的注意事项:

  1. 脚本位置:确保你的 init.d 脚本位于 /etc/init.d/ 目录下。

  2. 脚本权限:确保脚本具有执行权限:sudo chmod +x /etc/init.d/httpd

  3. 服务状态:使用 service <service> status 来检查服务状态。

  4. 启动和停止服务:使用 service <service> start 来启动服务,使用 service <service> stop 来停止服务。

  5. 重启服务:使用 service <service> restart 来重启服务。

  6. 设置开机自启:使用 update-rc.d <service> defaults 来设置服务开机自启。

  7. 检查依赖:确保脚本中正确处理了依赖关系,例如在启动前检查网络是否就绪。

  8. 兼容性:注意 init.d 脚本可能不适用于所有系统,特别是那些默认使用 systemd 的系统。

总结

1.无论使用 Systemd 还是 init.d 管理 httpd 服务,都要确保服务文件或脚本的内容准确,包括命令路径、服务依赖关系、权限设置等。

2.对于服务的启动和运行,要考虑不同系统环境和服务的特性,根据实际情况调整服务的启动顺序和运行级别。

3.在操作服务时,要注意使用正确的权限(通常使用 sudo),并通过日志查看及时发现和解决服务运行中的问题。

4.在对服务进行修改或更新后,要进行充分的测试,确保服务的稳定性和可靠性。

!!!!!!!重点提示:在管理 Apache 服务时,无论使用哪种方法,都应该确保你了解如何检查服务状态、如何启动和停止服务、以及如何在配置更改后重启服务。此外,始终确保在进行任何更改后测试服务以验证其正常运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1495.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉算法实战——步态识别(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​​​​​​​​​​​​ 1. 步态识别简介✨✨ 步态识别&#xff08;Gait Recognition&#xff09;是计算机视觉领域中的一个…

2025 年 UI 大屏设计新风向

在科技日新月异的 2025 年&#xff0c;UI 大屏设计领域正经历着深刻的变革。随着技术的不断进步和用户需求的日益多样化&#xff0c;新的设计风向逐渐显现。了解并掌握这些趋势&#xff0c;对于设计师打造出更具吸引力和实用性的 UI 大屏作品至关重要。 一、沉浸式体验设计 如…

Leetcode - 周赛431

目录 一&#xff0c;3411. 最长乘积等价子数组 二&#xff0c;3412. 计算字符串的镜像分数 三&#xff0c;3413. 收集连续 K 个袋子可以获得的最多硬币数量 四&#xff0c;3414. 不重叠区间的最大得分 一&#xff0c;3411. 最长乘积等价子数组 本题数据范围小&#xff0c;直…

深入Android架构(从线程到AIDL)_30 JNI架构原理_Java与C的对接03

目录 2.4 以C结构表达类(class)&#xff0c;并创建对象(object) 认识C函数指针 范例 2.5 在C函数里存取对象的属性(attribute) 范例 2.4 以C结构表达类(class)&#xff0c;并创建对象(object) 认识C函数指针 struct里不能定义函数本身&#xff0c;但能定义函数指针(func…

论文笔记(四十七)Diffusion policy: Visuomotor policy learning via action diffusion(下)

Diffusion policy: Visuomotor policy learning via action diffusion&#xff08;下&#xff09; 文章概括5. 评估5.1 模拟环境和数据集5.2 评估方法论5.3 关键发现5.4 消融研究 6 真实世界评估6.1 真实世界Push-T任务6.2 杯子翻转任务6.3 酱汁倒入和涂抹任务 7. 实际双臂任务…

EasyExcel - 行合并策略(二级列表)

&#x1f63c;前言&#xff1a;博主在工作中又遇到了新的excel导出挑战&#xff1a;需要导出多条文章及其下联合作者的信息&#xff0c;简单的来说是一个二级列表的数据结构。 &#x1f575;️‍♂️思路&#xff1a;excel导出实际上是一行一行的记录&#xff0c;再根据条件对其…

软件测试面试题整理

一、人格相关问题 1、自我介绍结构 姓名工作年限简单介绍上家公司的行业主要负责内容个人优势短期内的职业规划应聘该岗位的原因 2、对未来的发展方向怎么看&#xff1f; 没有标准答案&#xff0c;职业规划来讲&#xff0c;可以分为技术层面和管理层面去说&#xff0c;技术…

.NET framework、Core和Standard都是什么?

对于这些概念一直没有深入去理解&#xff0c;以至于经过.net这几年的发展进化&#xff0c;概念越来越多&#xff0c;越来越梳理不容易理解了。内心深处存在思想上的懒惰&#xff0c;以为自己专注于Unity开发就好&#xff0c;这些并不属于核心范畴&#xff0c;所以对这些概念总是…

CNN张量输入形状和特征图

CNN张量输入形状和特征图 这个是比较容易理解的张量的解释&#xff0c;比较直观 卷积神经网络 在这个神经网络编程系列中&#xff0c;我们正在逐步构建一个卷积神经网络&#xff08;CNN&#xff09;&#xff0c;所以让我们看看CNN的张量输入。 ​ ​ 在最后两篇文章中&…

【数据可视化-12】数据分析岗位招聘分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

(12)springMVC文件的上传

SpringMVC文件上传 首先是快速搭建一个springMVC项目 新建项目mvn依赖导入添加webMoudle添加Tomcat运行环境.在配置tomcat时ApplicationContext置为"/"配置Artfact的lib配置WEB-INF配置文件&#xff08;记得添加乱码过滤&#xff09;配置springmvc-servlet文件&…

Ubuntu中双击自动运行shell脚本

方法1: 修改文件双击反应 参考: https://blog.csdn.net/miffywm/article/details/103382405 chmod x test.sh鼠标选中待执行文件&#xff0c;在窗口左上角edit菜单中选择preference设计双击执行快捷键&#xff0c;如下图&#xff1a; 方法2: 设置一个应用 参考: https://blo…

Linux(Centos7)安装Mysql/Redis/MinIO

安装Mysql 安装Redis 搜索Redis最先版本所在的在线安装yum库 查看以上两个组件是否是开机自启 安装MinIO 开源的对象存储服务&#xff0c;存储非结构化数据&#xff0c;兼容亚马逊S3协议。 minio --help #查询命令帮助minio --server --help #查询--server帮助minio serve…

金融项目实战 01|功能测试分析与设计

前置内容&#xff1a;金融项目准备的内容笔记可直接看如下笔记 只看&#xff1a;一、投资专业术语 和 二、项目简介 两部分文章浏览阅读2.3k次&#xff0c;点赞70次&#xff0c;收藏67次。安享智慧理财金融系统测试项目&#xff0c;测试用例&#xff0c;接口测试&#xff0c;金…

【Rust】控制流

目录 思维导图 一、选择结构 1. if表达式 2. 处理多个条件的else if 3. 使用if在let语句中 二、循环结构 1. loop 2. while循环 3. for循环 4. 使用范围Range进行循环 思维导图 一、选择结构 控制流是编程语言的基本构建块&#xff0c;Rust使用if表达式和循环来控制代…

FastDDS安装测试记录

1、安装依赖的软件 sudo apt install cmake g python3-pip wget git sudo apt install libasio-dev libtinyxml2-dev sudo apt install libssl-dev sudo apt install libp11-dev libengine-pkcs11-openssl sudo apt install softhsm22、安装foonathan_memory_vendor cd ~/Fas…

浅谈云计算01 | 云计算服务的特点

在当今数字化时代&#xff0c;云计算作为一种强大的技术解决方案&#xff0c;正逐渐改变着企业和个人对信息技术的使用方式。本文将详细探讨云计算的五个主要特点&#xff0c;包括按需自助服务、广泛的网络接入、资源池化、快速弹性伸缩以及可计量服务。 一、按需自助服务 云…

《使用 YOLOV8 和 KerasCV 进行高效目标检测》

《使用 YOLOV8 和 KerasCV 进行高效目标检测》 作者&#xff1a;Gitesh Chawda创建日期&#xff1a;2023/06/26最后修改时间&#xff1a;2023/06/26描述&#xff1a;使用 KerasCV 训练自定义 YOLOV8 对象检测模型。 &#xff08;i&#xff09; 此示例使用 Keras 2 在 Colab 中…

vue3+ts+element-plus 对话框el-dialog设置圆角

对话框el-dialog设置圆角&#xff0c;实现的需求效果&#xff1a; 目前只能通过行内样式&#xff08;style"border-radius: 20px"&#xff09;来实现圆角效果&#xff1a;

pycharm-pyspark 环境安装

1、环境准备&#xff1a;java、scala、pyspark、python-anaconda、pycharm vi ~/.bash_profile export SCALA_HOME/Users/xunyongsun/Documents/scala-2.13.0 export PATH P A T H : PATH: PATH:SCALA_HOME/bin export SPARK_HOME/Users/xunyongsun/Documents/spark-3.5.4-bin…