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

高级运维:源码编译安装httpd 2.4,提供系统服务管理脚本并测试

1.下载httpd 2.4 源码

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

2.解压下载压缩包

tar -zxvf httpd-2.4.54.tar.gz
cd httpd-2.4.54 

 3.安装httpd需要的依赖包

sudo yum groupinstall "Development Tools" -y

sudo yum install gcc glibc apr-devel apr-util-devel pcre-devel openssl-devel expat-devel make -y

4.配置http

./configure --prefix=/usr/local/httpd \
            --enable-so \
            --enable-rewrite \
            --enable-charset-lite \
            --enable-cgi \
            --with-zlib \
            --with-pcre \
            --enable-modules=most \
            --enable-mpms-shared=all \
            --with-mpm=prefork 

 5.编译并安装httpd

make -j 4
sudo make install

 6.创建Apache用户和组

sudo groupadd -r apache
sudo useradd -r -g apache -s /sbin/nologin apache

7.将 User daemon 改为 User apache

sed -r -i "s/^User [a-zA-Z]*/User apache/" /usr/local/httpd/conf/httpd.conf 

8.将 Group daemon 改为 Group apache

sed -r -i "s/^Group [a-zA-Z]*/Group apache/" /usr/local/httpd/conf/httpd.conf 

9.将 DocumentRoot "/usr/local/httpd/htdocs" 改为 DocumentRoot "/var/www"

sed -r -i "s%^DocumentRoot \".*\"%DocumentRoot \"/var/www\"%" /usr/local/httpd/conf/httpd.conf 

10.将 <Directory "/usr/local/httpd/htdocs"> 改为 <Directory "/var/www">

sed -r -i "s%^<Directory \".*htdocs\">%<Directory \"/var/www\">%" /usr/local/httpd/conf/httpd.conf 

 11.确保 /var/www 目录存在

sudo mkdir -p /var/www

6-11的图 

12.创建一个系统服务管理脚本 /etc/init.d/httpd

sudo vi /etc/init.d/httpd 

#!/bin/bash
. /etc/rc.d/init.d/functions

apachectl=/usr/local/httpd/bin/apachectl
httpd=/usr/local/httpd/bin/httpd
prog=httpd
start() {
    echo -n $"Starting $prog: "
    daemon $httpd $OPTIONS
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
    return $RETVAL
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $httpd
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd
    return $RETVAL
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status $httpd
    ;;
  restart)
    stop
    start
    ;;
  condrestart)
    if [ -f /var/lock/subsys/httpd ]; then
        stop
        start
    fi
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|condrestart|status}"
    exit 1
esac

exit $?

13.赋予执行权限

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

14.将 httpd 服务添加到系统服务管理中,并设置开机启动

sudo chkconfig --add httpd
sudo chkconfig httpd on 

15.启动httpd服务

sudo service httpd start 

16.检查服务状态

sudo service httpd status 


http://www.kler.cn/a/503516.html

相关文章:

  • NVIDIA CUDA Linux 官方安装指南
  • java项目启动时,执行某方法
  • # CentOS7 系统 /dev/mapper/centos-root满了,十步清理
  • 【Linux】从零开始:编写你的第一个Linux进度条小程序
  • 论文笔记(四十七)Diffusion policy: Visuomotor policy learning via action diffusion(下)
  • 龙蜥Linux系统部署docker21.1.3版本
  • 【华为OD-E卷 - 猜数字 100分(python、java、c++、js、c)】
  • 代码随想录算法训练营第十二天|第18题. 四数之和
  • golang之数据库操作
  • ctf竞赛
  • VirtualBox环境中vscode报错:提取扩展时出错。Failed to fetch
  • Steam个人开发者注册备记
  • 解锁未来情感科技:AI 机器人 Ropet 搭载的前沿智能黑科技
  • K8s数据存储之详解(Detailed Explanation of K8s Data Storage)
  • 【JVM-2.2】使用JConsole监控和管理Java应用程序:从入门到精通
  • latex 中不要求显示页码
  • (一)QSQLite3库简介
  • 平台介绍-快速开发上手指南
  • 快速、可靠且高性价比的定制IP模式提升芯片设计公司竞争力
  • MCANet: 基于多模态字幕感知的大语言模型训练无关视频异常检测
  • 【向量数据库 Milvus】centos8源码安装和部署 Milvus 2.5.3
  • 惯性动作捕捉设备制作动画:打破传统动画制作模式,提高动画制作效率
  • Python 标准库:time——时间的访问和转换
  • MySQL社区版下载及其环境配置(msi)
  • 嵌入式Linux之基于TCP协议的程序
  • 配置Allure环境变量【macOS版】