1.httpd简介
httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。
通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows中作为服务运行。
apache和httpd是一个,到apache2后就叫httpd了
2.源码编译安装三部曲:
安装步骤:
./configure
make
make install
环境说明:
系统平台 | IP | 服务 |
---|---|---|
Redhat8.2 | 192.168.8.132 | httpd2.4 |
3.获取httpd软件包
apache官方网站:https://www.apache.org/
- 去官网获取软件包:
- 右键复制httpd安装包的链接
- 用wget命令加上复制的链接下载,后面的两个依赖包依然如此
[root@localhost ~]# cd /usr/src/
[root@localhost src]# wget https://downloads.apache.org/httpd/httpd-2.4.48.tar.gz
--2021-08-07 22:48:27-- https://downloads.apache.org/httpd/httpd-2.4.48.tar.gz
正在解析主机 downloads.apache.org (downloads.apache.org)... 135.181.209.10, 88.99.95.219, 135.181.214.104, ...
正在连接 downloads.apache.org (downloads.apache.org)|135.181.209.10|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9418226 (9.0M) [application/x-gzip]
正在保存至: “httpd-2.4.48.tar.gz”
httpd-2.4.48.tar.gz 100%[===========================================>] 8.98M 293KB/s 用时 40s
2021-08-07 22:49:08 (229 KB/s) - 已保存 “httpd-2.4.48.tar.gz” [9418226/9418226])
[root@localhost src]#
[root@localhost src]# wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz
--2021-08-07 22:55:34-- https://downloads.apache.org/apr/apr-1.7.0.tar.gz
正在解析主机 downloads.apache.org (downloads.apache.org)... 88.99.95.219, 135.181.214.104, 135.181.209.10, ...
正在连接 downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1093896 (1.0M) [application/x-gzip]
正在保存至: “apr-1.7.0.tar.gz”
apr-1.7.0.tar.gz 100%[===========================================>] 1.04M 209KB/s 用时 5.3s
2021-08-07 22:55:40 (202 KB/s) - 已保存 “apr-1.7.0.tar.gz” [1093896/1093896])
[root@localhost src]#
[root@localhost src]# wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz
--2021-08-07 22:58:17-- https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz
正在解析主机 downloads.apache.org (downloads.apache.org)... 135.181.209.10, 88.99.95.219, 135.181.214.104, ...
正在连接 downloads.apache.org (downloads.apache.org)|135.181.209.10|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:554301 (541K) [application/x-gzip]
正在保存至: “apr-util-1.6.1.tar.gz”
apr-util-1.6.1.tar.gz 100%[===========================================>] 541.31K 263KB/s 用时 2.1s
2021-08-07 22:58:20 (263 KB/s) - 已保存 “apr-util-1.6.1.tar.gz” [554301/554301])
[root@localhost src]#
4.安装开发环境
[root@localhost src]# dnf -y install groups mark install "Development Tools"
[root@localhost src]# dnf -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make
5.编译安装
注意:
编译安装的顺序必须遵守:
apr-1.7.0>apr-util-1.6.1>httpd-2.4.48
- 解压刚刚下载的三个包
[root@localhost src]# ls
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz debug httpd-2.4.48.tar.gz kernels
[root@localhost src]# tar xf apr-1.7.0.tar.gz
[root@localhost src]# tar xf apr-util-1.6.1.tar.gz
[root@localhost src]# tar xf httpd-2.4.48.tar.gz
[root@localhost src]# ls
apr-1.7.0 apr-util-1.6.1 debug httpd-2.4.48.tar.gz
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.48 kernels
[root@localhost src]#
- 修改配置文件
[root@localhost src]# cd apr-1.7.0/
[root@localhost apr-1.7.0]# vim configure
31875 setopt NO_GLOB_SUBST
31876 fi
31877
31878 cfgfile=${ofile}T
31879 trap "$RM \"$cfgfile\"; exit 1" 1 2 15
31880 # $RM "$cfgfile" //删除或者注释这一行
31881
31882 cat <<_LT_EOF >> "$cfgfile"
31883 #! $SHELL
31884 # Generated automatically by $as_me ($PACKAGE) $VERSION
31885 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
31886 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
31887
31888 # Provide generalized library-building support services.
31889 # Written by Gordon Matzigkeit, 1996
31890
:set nu 31880,10 98%
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.7.0]# make && make install
[root@localhost apr-1.7.0]# cd ..
[root@localhost src]# cd apr-util-1.6.1/
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make && make install
[root@localhost apr-util-1.6.1]# cd ..
[root@localhost src]# cd httpd-2.4.48/
[root@localhost httpd-2.4.48]# ./configure --prefix=/usr/local/apache \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
[root@localhost httpd-2.4.48]# make && make install
- 没有启动apache前先查看一下有没有80端口
[root@localhost ~]#
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 127.0.0.1:6010 0.0.0.0:*
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 [::1]:631 [::]:*
LISTEN 0 128 [::1]:6010 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:22 [::]:*
- 启动apache服务
[root@localhost ~]# /usr/local/httpd/bin/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
[root@localhost ~]# ss -antl 再次查看80端口
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 127.0.0.1:6010 0.0.0.0:*
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 [::1]:631 [::]:*
LISTEN 0 128 [::1]:6010 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
[root@localhost ~]#
6.验证效果
如果网页访问不了,请检查你的防火墙是否关闭,是否遵守了编译安装的顺序以及配置文件。
- 利用命令行去访问网页
[root@localhost ~]# curl http://192.168.8.132
<html><body><h1>It works!</h1></body></html>
[root@localhost ~]#
- 浏览器访问