web-httpd2.4编译安装
httpd-2.4特性(1) MPM支持运行DOS机制
(2) 支持event MPM
(3) 支持异步读写
(4) 支持每模块及每个目录分别使用各自的日志级别
(5)每请求配置;<if>
(6) 增强版的表达式分析器(正则表达式)
(7) 支持毫秒级的keepalive timeout
(8) 基于FQDN的虚拟主机不在需要Name Virtual Host指令
(9) 支持用户自定义变量
增加了新模块
(1)mod_proxy_fcgi fast cgi
(2)mod_ratelimit 速率限制
(3)mod_remoteip 限定远程客户端IP
修改了一些配置机制
不再支持使用order,deny,allow 来做基于IP的访问控制
httpd 依赖于apr apr-util apr-icon(不是必须的)
apr:Apacheportable runtime Apache可移植运行环境
apr需要1.4以上的版本,所以aprapr-util两个软件需要编译安装
注意:如果已经安装老的httpd,要停掉此服务并开机不启动
httpd编译前的准备工作:
一般编译安装时需要这几个包组: “development tools” “server plantform development”
安装顺序:apr --> apr-util --> httpd2.4
安装apr,apr-util(需要--with-apr=新版apr安装路径);编译之前需要安装pcre-devel解决依赖关系
安装apr、apr-util钱可以查看下安装方法 #lessREADME
apr可以安装在/usr/local/apr
./configure--prefix=/usr/local/apr
make && make install
apr-util可以安装在/usr/local/apr-util
./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr
make && make install
编译安装httpd2.4
安装时可能会有关于pcre的报错,所以需要提前安装下列软件
yuminstall pcre-develzlib-developenssl-devel(可不安装)
1、httpd编译安装的常用选项:
./configure--prefix=/usr/local/apache--sysconfdir=/etc/httpd24--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-module=most--enable-mpms-shared=all--with-mpm=prefork
prefix 程序包的安装路径
sysconfdir 配置文件的路径
enable-so 启用DSO机制,模块动态加载
enable-ssl 启用SSL功能
enable-cgi 支持cgi模式
enable-rewrite 支持URL重写
with-zlib 支持网络中压缩传输(所有with的功能,都需要安装对应包的devel包)
with-pcre 支持pcre功能
with-apr rpm包在with的时候就不需要=/path,编译安装的则需要指明其路径
with-apr-util
enable-module 启用哪些模块
enable-mpms-shared 把所有支持的mpm功能做成共享模式
with-mpm 默认的MPM
2、make && make install
启动、关闭服务:
apachectl start|stop
注意:直接使用apachectl启动服务可能会启动老版本的,需要将新的路径放置在PATH变量的最前面
vim/etc/profile.d/httpd.sh
exprotPATH=/usr/local/apache/bin:$PATH
#source/etc/profile.d/httpd.sh
#hash -r
验证一下:which apachectl看下新的apachectl是否在新的路径中
#hash -r清除下所有的hash记录
目录解释:
/usr/local/apache/build/config.nice中可以看到自己编译时用的那些选项
/usr/local/apache/cgi-bin/以后再做介绍
/usr/local/apache/error/ 错误页
/usr/local/apache/htdocs/ 新版的默认主页位置
/usr/local/apache/icons/ 图标文件
/usr/local/apache/include/ 头文件,要导出被系统使用的话需要:ln-sv/usr/local/apache/include/usr/include/httpd
/usr/local/apache/logs/ 日志文件,可以修改配置文件修改路径
/usr/local/apache/man/ 帮助文档、说明页;如果要找到这些man,要输出给MANPATH:
vim /etc/man.config 增加一条MANPATH /usr/local/apache/man
/usr/local/apache/manual 手册页(html格式文档)如果想启用起来,则修改/etc/httpd24/httpd.conf启用include /etc/httpd24/extra/httpd-manual.conf
/usr/local/apache/modules 共享模块
A、如何修改MPM:
修改配置文件:/etc/httpd24/httpd.conf,找到loadmodulempm_prefork_modulemodules/mod_mpm_prefork.so,修改自己想要的mpm即可
#killall httpd关闭所有httpd进程
#apachectl start 启动服务
没有指明以哪个用户身份启用其进程,默认使用daemon。如果想使用apache用户身份运行,则:
创建没有宿主目录的用户:
#groupadd -r apache
#useradd -r -g apache apache
修改配置文件中的usergroup即可
B、修改main server的DocumentRoot。跟以往不同,修改了DocmentRoot=NEW PATH后还额外需要增加<Directory /NEW/PATH> ......</Directory>
C、基于IP的访问控制法则
允许所有主机访问:requireallgranted
拒绝所有主机访问:requireall deny
控制特定IP访问:
requireip IPADDR授权指定来源地址的主机访问
requirenotipIPADDR拒绝指定来源地址的主机访问
IPADDR:可以写成
ip192.168.1.1
network/mask 192.168.1.0/255.255.255.0
network/length 192.168.1.0/24
net 192.168.1
控制特定主机(HOSTNAME)
require hostHOSTNAME
require no host HOSTNAME
HOSTNAME:
FQDN:特定主机
DOMAIN:指定域内的所有主机
D、虚拟主机
注释掉DocumentRoot
启用Include/etc/httpd24/extra/httpd-vhosts.conf
基于IPPORT和FQDN都支持
基于FQDN的不在需要NameVirtualHost指令,如:
在配置文件中NameVirtualHst*:80或者别的(httpd2.2中有),现在到了httpd2.4版本后没有此指令
<VirtualHost*:80>
ServerAdmin webadmin@a.com
DocumentRoot "/vhost/a.com/htdocs"
ServerNamewww.a.com
Aliasa.com
Errorlog "logs/www.a.com-error.log"
CustomLog "logs/www.a.com-access.log"combined
<Directory "/vhost/a.com/htdocs"> (没有对目录做授权,网页打开时会出现报错forbidden)
options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
#killall -SIGHUP httpd可以重读配置文件
E、SSL
需要启用LoadModulessl_module
启用配置文件Include/etc/httpd24/extra/httpd-ssl.conf
启用LoadModulesocache_shmcb_modulemodules/mod_socache_shmcb.so(不启用会有依赖的报错)
F、服务脚本
#cd/etc/rc.d/init.d/
#cp httpdhttpd24
修改httpd24中:
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
chkconfig --add httpd24
chkconfig httpd24 on
页:
[1]