Httpd 2.4.39源码编译操作手册
APR简介:
APR(Apache portable Run-time libraries,Apache可移植运行库) 主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。
随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR,开源项目比如用于服务器压力测试的Flood loader tester,该项目不仅仅适用于Apache。
下载源码文件地址:
在官网下载apr和apr-util包以及httpd-2.4包:
httpd下载网址:http://httpd.apache.org/
apr相关网址:http://apr.apache.org/download.cgi
下载两个APR:APR 1.7.0 和APR-util 1.6.1


开始源码编译httpd-2.4.39
1.1 rz源码包到Linux系统中
1.2 在/data/下创建src文件夹,存放三个源码文件
1.3下载相关开发环境包组以及相关依赖包
yum groupinstall "development tools" 安装开发包组 yum install pcre-devel openssl-devel expat-devel 相关依赖的包

1.4将解压下来的包复制到httpd-2.4.39/srclib/目录下并且命名为apr 和apr-util


1 1.5 进入httpd-2.4.39目录下执行 2 3 ./configure \ 4 5 --prefix=/app/httpd24 \ 6 7 --enable-so \ 8 9 --enable-ssl \ 10 11 --enable-cgi \ 12 13 --enable-rewrite \ 14 15 --with-zlib \ 16 17 --with-pcre \ 18 19 --with-included-apr \ 20 21 --enable-modules=most \ 22 23 --enable-mpms-shared=all \ 24 25 --with-mpm=prefork

执行过程截图

1.6执行make && make install 编译安装
[root@Centos7 httpd-2.4.39]# make && make install


可以看到安装在根目录下的app 文件下了
1.7定义环境变量并生效
[root@Centos7 httpd24]# echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd24.sh [root@Centos7 httpd24]# . /etc/profile.d/httpd24.sh

1.8 启动和关闭服务
[root@Centos7 httpd24]# apachectl start
[root@Centos7 httpd24]# apachectl stop

实验:
创建多虚拟主机并实现访问
A主机:192.168.6.129 B主机:192.168.6.130
创建文件的虚拟主机目录站点

[root@Centos7 data]# echo www.a.com > /data/aweb/index.html [root@Centos7 data]# echo www.b.com > /data/bweb/index.html

修改配置文件
vim /data/app/httpd24/conf/httpd.conf
启用虚拟机功能

修改配置文件 /app/httpd24/conf/extra/ httpd-vhosts.conf
[root@Centos7 extra]# vim httpd-vhosts.conf

<VirtualHost *:80> #ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/data/aweb/" ServerName "www.a.com" #ServerAlias www.dummy-host.example.com ErrorLog "/data/httpd24log/alog/a-error_log" CustomLog "/data/httpd24log/alog/a-access_log" common <directory /data/aweb/> require all granted </directory> </VirtualHost> <VirtualHost *:80> #ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/data/bweb/" ServerName "www.b.com" ErrorLog "/data/httpd24log/blog/b-error_log" CustomLog "/data/httpd24log/blog/b-access_log" common <directory /data/bweb/> require all granted </directory> </VirtualHost>
在192.168.6.130主机上验证192.168.6.129的虚拟主机
[root@Centos7 ~]# vim /etc/hosts

验证成功


在192.168.6.129主机上捕捉到192.168.6.130主机的访问
设置开机自启动
vim /etc/rc.local
/app/httpd24/bin/apachectl

添加执行权限
[root@Centos7 etc]# chmod +x rc.local

开机自动启动


浙公网安备 33010602011771号