源码编译安装httpd-2.4.43

源码编译安装httpd-2.4.43

  • 摘要
  • 安装环境
  • 软件下载
  • 安装与测试
    • 1) 下载apr,apr-util,pcre,httpd源码
    • 2) 解压并安装apr
    • 3) 解压并安装apr-util
    • 4) 解压并安装pcre
    • 5) 解压并安装httpd
    • 6)配置文件及相应目录
    • 5)生成启动脚本并启动
    • 6)设置使用systemctl的方式启动(启动方法二)
    • 7)测试启动
  • 问题总结
  • 一键安装httpd脚本

引用文章地址

摘要

【摘要】 Apache HTTP Server(hpptd),简称Apache,是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其具有的跨平台性和安全性,被广泛使用,是最流行的Web服务器端软件之一。

安装环境

centos7.6

软件下载

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.43.tar.gz

安装与测试

hpptd安装依赖于apr,apr-util,pcre因此需要首先安装apr,apr-util,pcre。本文以apr-1.7.0,apr-util-1.6.1,pcre-8.44,httpd-2.4.43版本为例,下载源码,并编译安装:

1) 下载apr,apr-util,pcre,httpd源码

wget https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.43.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz

2) 解压并安装apr

tar -xvf apr-1.7.0.tar.gz
cd apr-1.7.0
./configure
make
make install

3) 解压并安装apr-util

tar -xvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

4) 解压并安装pcre

tar -zxvf pcre-8.44.tar.gz
cd pcre-8.44
./configure --enable-utf8
make
make install

5) 解压并安装httpd

tar -zxvf httpd-2.4.43.tar.gz
cd httpd-2.4.43
./configure --prefix=/usr/local/httpd --with-pcre=/usr/local/pcre
make
make install
验证测试
进入安装目录,输入./httpd -v 查看版本
cd /usr/local/httpd/bin
./httpd -v
在这里插入图片描述

执行以下命令启动httpd服务
./apachectl start
回显信息如下:

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

执行下列代码查看httpd进程,出现类似下面信息时,说明启动成功。
ps -ef|grep httpd
源码编译安装httpd-2.4.43_第1张图片

打开浏览器,在浏览器输入服务器IP测试,页面会显示It works!
源码编译安装httpd-2.4.43_第2张图片

6)配置文件及相应目录

配置文件路径: /usr/local/apache2/conf/httpd.conf
网站根目录: /usr/local/apache2/htdocs/

5)生成启动脚本并启动

 cp /usr/local/apache2/bin/apachectl /etc/init.d/
 chmod +x /etc/init.d/apachectl
 /etc/init.d/apachectl restart ## 启动方法一(简单快捷)

6)设置使用systemctl的方式启动(启动方法二)

vim /usr/lib/systemd/system/apache.service
[Unit]
Description=apache
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/apachectl start
ExecReload=/etc/init.d/apachectl restart
ExecStop=/etc/init.d/apachectl stop
PrivateTmp=true
[Install]
WantedBy=multi-user.targe

systemctl start apache.service

7)测试启动

systemctl start apache.service

问题总结

1)在安装apr时,使用./configure命令时,报如下错误:rm: cannot remove ‘libtoolT’: No such file or directory
源码编译安装httpd-2.4.43_第3张图片
解决方案:
将configure 文件中RM=‘ R M ′ 修 改 为 R M = ′ RM' 修改为RM=' RMRM=RM -f’ 然后重新执行
./configure
make
make install
如下图:
源码编译安装httpd-2.4.43_第4张图片

2)在编译apr-util的时候,报如下错误,缺少expat库。
源码编译安装httpd-2.4.43_第5张图片
解决方案:
安装expat-deval库后,重新编译:
yum install expat-devel -y

一键安装httpd脚本

#!/bin/bash
#auto install httpd
#by MR.xu 2020-07
#Httpd define path variable
H_FILES=httpd-2.4.43.tar.bz2
H_FILES_DIR=httpd-2.4.43
H_URL=https://mirrors.bfsu.edu.cn/apache//httpd/
H_PREFIX=/usr/local/apache2/


#auto install httpd
if [ -z "$1" ];then
echo -e "\033[36mplease select Install Menu follow:\033[0m"
echo -e "\033[32m1)编译安装Apache服务器\033[1m"
echo -e "\033[31mUsage: { /bin/sh $0 1|2|3|4|help}\033[0m"
exit
fi

if [[ "$1" -eq "1" ]];then
##安装工具
	yum -y install wget tar bzip2;
##下载和安装apr以及apr-util
##先安装依赖包
	yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++
	
#安装apr基础可移植库
##本处下载的最新版本apr-1.7.0.tar.gz包
wget -c https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz;
##编译安装apr
	tar -xvf apr-1.7.0.tar.gz&& cd apr-1.7.0;sed -i "/    RM='\$RM'/d" configure && sed -i "/\    ofile='\$ofile'/a\RM='\$RM \-f\'" configure;./configure --prefix=/usr/local/apr
	if [ $? -eq 0 ];then
	make&& make install
	echo -e "\033[32mThe apr-1.7.0 install successfully!\033[0m"
	else
	echo -e "\033[32mThe apr-1.7.0 install failed,please check...!\033[0m"
	exit
	fi	
#安装apr-util
wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz;
##编译安装apr-util
tar -xvf apr-util-1.6.1.tar.gz&& cd apr-util-1.6.1;./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
	if [ $? -eq 0 ];then
	make&& make install
	echo -e "\033[32mThe apr-util-1.6.1 install successfully!\033[0m"
	else
	echo -e "\033[32mThe apr-util-1.6.1 install failed,please check...!\033[0m"
	exit
	fi	
#安装pcre
wget -c https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz;
##编译安装pcre
tar -xvf pcre-8.44.tar.gz&& cd pcre-8.44;./configure --enable-utf8
	if [ $? -eq 0 ];then
	make&& make install
	echo -e "\033[32mThe pcre-8.44 install successfully!\033[0m"
	else
	echo -e "\033[32mThe pcre-8.44 install failed,please check...!\033[0m"
	exit
	fi	
#安装httpd
wget -c $H_URL/$H_FILES;
##编译安装httpd
tar -jxvf $H_FILES &&cd $H_FILES_DIR ;./configure --prefix=$H_PREFIX  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
    if [ $? -eq 0 ];then
        make &&make install
        echo -e "\033[32mThe $H_FILES_DIR sever install successfully!\033[0m"
	echo -e "\033[32m查看版本,并启动httpd server !\033[0m"
	cd $H_PREFIX/bin/;./httpd -v;./apachectl start;
	echo -e "\033[32m查看httpd server!进程\033[0m"
	ps -ef|grep httpd;
    else
        echo -e "\033[32mThe $H_FILES_DIR sever install failed,please check...!\033[0m"
        exit
    fi
fi

你可能感兴趣的:(linux,shell,linux)