APR
APR(Apache portable Run-time libraries,Apache可移植运行库) 主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。
随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR,开源项目比如用于服务器压力测试的Flood loader tester,该项目不仅仅适用于Apache
http://httpd.apache.org/test/flood
httpd-2.4源码编译
安装httpd-2.4
准备工作:
在官网下载apr和apr-util包以及httpd-2.4包:
httpd下载网址:http://httpd.apache.org/
apr相关网址:http://apr.apache.org/download.cgi
开始源码编译httpd-2.4
(1)将下载的包rz到linux中
(2)新建文件,将下载的apr、apr-util以及httpd包全部放在此文件,方便查找
[root@centos777~]#mkdir src [root@centos777~]#mv apr* httpd-2.4.39.tar.bz2 src/ [root@centos777~]#cd src [root@centos777src]#ls apr-1.7.0.tar.bz2 apr-util-1.6.1.tar.bz2 httpd-2.4.39.tar.bz2
(3)开始安装开发环境包组及相关依赖的包:
[root@centos777src]#yum groupinstall "development tools" 安装开发包组 [root@centos777src]#yum install pcre-devel openssl-devel expat-devel 相关依赖的包
(4)解压三个下载下来的包,并将解压后的到复制到httpd指定的目录下
[root@centos777src]#tar xvf apr-util-1.6.1.tar.bz2 [root@centos777src]#tar xvf httpd-2.4.39.tar.bz2 [root@centos777src]#tar xvf apr-1.7.0.tar.bz2 [root@centos777src]#cp -r apr-1.7.0 httpd-2.4.39/srclib/apr 将apr包复制到指定的httpd/srclib目录下,起名叫apr [root@centos777src]#cp -r apr-util-1.6.1 httpd-2.4.39/srclib/apr-util 将apr-util复制到httpd/srclib目录下,起名叫apr-util
(5)切换到httpd目录下,开始./configure编译
[root@centos777httpd-2.4.39]#cd httpd-2.4.39/ 切换到httpd目录下,然后开始编译 以下是编译命令,指定相关文件、配置、程序等内容: ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
(6)make && make install 编译
[root@centos777httpd-2.4.39]#make && make install
(7)定义环境变量并生效
[root@centos777httpd-2.4.39]#echo 'PATH=/app/httpd24/bin:$PATH' > /etc/profile.d/httpd24.sh [root@centos777httpd-2.4.39]#. /etc/profile.d/httpd24.sh
(8)启动和关闭apache服务
[root@centos777~]#apachectl start [root@centos777~]#apachectl stop
查看网页,以显示结果,源码编译完成!
创建虚拟主机
A主机:IP地址为192.168.34.102
B主机:IP地址为192.168.34.100
在A主机上配置
(1)创建文件及临时网址
[root@centos777~]#mkdir /data/{a,b}site -pv mkdir: created directory ‘/data/asite’ mkdir: created directory ‘/data/bsite’ [root@centos777~]#echo www.a.com > /data/asite/index.html [root@centos777~]#echo www.b.net > /data/bsite/index.html
(2)修改配置文件
[root@centos777~]#cd /app/httpd24 [root@centos777httpd24]#ls bin build cgi-bin conf error htdocs icons include lib logs man manual modules [root@centos777httpd24]#cd conf [root@centos777conf]#vim httpd.conf 在此配置文件中可以修改,启用虚拟机功能
(3)切换到extra目录下,并修改httpd-vhosts.coonf配置文件
[root@centos777conf]#cd extra/ [root@centos777extra]#ls httpd-autoindex.conf httpd-default.conf httpd-languages.conf httpd-mpm.conf httpd-ssl.conf httpd-vhosts.conf httpd-dav.conf httpd-info.conf httpd-manual.conf httpd-multilang-errordoc.conf httpd-userdir.conf proxy-html.conf [root@centos777extra]#vim httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/asite/" ServerName "www.a.com" ErrorLog "logs/a.com-error_log" CustomLog "logs/a.com-access_log" common <directory /data/asite> require all granted </directory> </VirtualHost> <VirtualHost *:80> DocumentRoot "/data/bsite/" ServerName "www.b.net" ErrorLog "logs/b.net-error_log" CustomLog "logs/b.net-access_log" common <directory /data/bsite> require all granted </directory> </VirtualHost>
在B主机上配置并验证
修改hosts配置文件,作为解析A主机的IP网址
vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 centos7.localdomain ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.34.102 www.a.com www.b.net
验证效果:
[root@centos7~]#curl www.a.com www.a.com [root@centos7~]#curl www.b.net www.b.net
实现开机启动apache服务:
(1)修改/etc/rc.local配置文件,在最底部写上apache的路径
vim /etc/rc.local /app/httpd24/bin/apachectl
(2)加上执行权限并重启
[root@centos777asite]#chmod +x /etc/rc.local [root@centos777asite]#reboot
(3)验证效果,在B主机上继续查看网址,由于apache开机自启,就可以直接访问了
如果想自定义启动脚本,可以将已经装好的centos6的httpd配置文件复制到另一个centos6,稍加修改即可
centos6配置文件复制到另一个centos6目录下:
[root@centos6~]#scp /etc/rc.d/init.d/httpd 192.168.34.102:/etc/rc.d/init.d/httpd24 httpd 100% 3488 3.4KB/s 00:00
修改httpd24配置文件
vim /etc/rc.d/init.d/httpd24 apachectl=/app/httpd24/bin/apachectl httpd=${HTTPD-/app/httpd24/bin/httpd} prog=httpd pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
启动httpd服务,查看80端口已经打开。