设为首页 收藏本站
查看: 827|回复: 0

[经验分享] web-httpd2.4编译安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-28 10:07:43 | 显示全部楼层 |阅读模式
                      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:Apache  portable runtime     Apache可移植运行环境
apr需要1.4以上的版本,所以apr  apr-util两个软件需要编译安装
注意:如果已经安装老的httpd,要停掉此服务并开机不启动
httpd编译前的准备工作:
一般编译安装时需要这几个包组: “development tools” “server plantform development”
安装顺序:apr --> apr-util --> httpd2.4
安装apr,apr-util(需要  --with-apr=新版apr安装路径);编译之前需要安装pcre-devel解决依赖关系
安装apr、apr-util  钱可以查看下安装方法   #less  README
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的报错,所以需要提前安装下列软件
  yum  install pcre-devel  zlib-devel  openssl-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
    exprot  PATH=/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,找到loadmodule  mpm_prefork_module  modules/mod_mpm_prefork.so,修改自己想要的mpm即可
#killall httpd  关闭所有httpd进程
#apachectl start   启动服务
没有指明以哪个用户身份启用其进程,默认使用daemon。如果想使用apache用户身份运行,则:
创建没有宿主目录的用户:
#groupadd -r apache
#useradd -r -g apache apache
修改配置文件中的user  group即可
B、修改main server的DocumentRoot。跟以往不同,修改了DocmentRoot=NEW PATH后还额外需要增加<Directory /NEW/PATH> ......  </Directory>
C、基于IP的访问控制法则
    允许所有主机访问:require  all  granted
    拒绝所有主机访问:require  all deny

    控制特定IP访问:
        require  ip   IPADDR  授权指定来源地址的主机访问
        require  not  ip  IPADDR  拒绝指定来源地址的主机访问
    IPADDR:可以写成
        ip  192.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 host  HOSTNAME
    require no host HOSTNAME
        HOSTNAME:
            FQDN:特定主机
            DOMAIN:指定域内的所有主机
D、虚拟主机
    注释掉DocumentRoot
    启用Include  /etc/httpd24/extra/httpd-vhosts.conf
    基于IP  PORT和FQDN都支持
    基于FQDN的不在需要NameVirtualHost指令,如:
在配置文件中NameVirtualHst  *:80  或者别的(httpd2.2中有),现在到了httpd2.4版本后没有此指令
<VirtualHost  *:80>
    ServerAdmin   webadmin@a.com
    DocumentRoot "/vhost/a.com/htdocs"
    ServerName  www.a.com
    Alias  a.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
    需要启用LoadModule  ssl_module
    启用配置文件Include  /etc/httpd24/extra/httpd-ssl.conf
    启用LoadModule  socache_shmcb_module  modules/mod_socache_shmcb.so(不启用会有依赖的报错)
F、服务脚本
#cd  /etc/rc.d/init.d/
#cp httpd  httpd24
修改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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-209862-1-1.html 上篇帖子: 基于httpd的mod_deflate模块 下篇帖子: Apache Rewrite规则详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表