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

[经验分享] centos5.8 x64编译安装apache httpd 2.4.9

[复制链接]

尚未签到

发表于 2018-11-23 06:14:00 | 显示全部楼层 |阅读模式
  apache httpd 2.4.9编译安装:
  系统基础:centos x64
已有apache版本:2.2.4
已有apr1.2、apr-uitl1.2、pcre
  现需安装apache httpd 2.4.9
  1、备好安装包:
apr-1.5.0.tar.gz,apr-util-1.5.3.tar.gz,pcre-8.35.tar.gz,httpd-2.4.9.tar.bz2
httpd-2.4.9需要用到最新的apr和apr-util版本,可到www.apache.org下载
  2、安装apr-1.5.0:
tar -zxvf apr-1.5.0.tar.gz  #解压apr安装包
  ./configure --prefix=/usr/local/apr  #检查
  提示:config.status:creating include/arch/unix/apr_private.h
      config.status:excuting libtool commands
      rm:cannot remove 'libtoolT': NO such file or directory
      config.status:executing default commands
(这个提示可不理会,继续安装)
  make && make install  #编译 安装
  3、安装apr-util-1.5.3:
tar -zxvf apr-util-1.5.3.tar.gz  #解压
  ./configure --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr  #检查

make && make install  #编译 安装
  4、安装pcre-8.35.tar.gz:
tar -zxvf pcre-8.35.tar.gz  #解压
  ./configure --prefix=/usr/local/pcre  #检查
  make && make install  #编译 安装
  注意,如不安装pcre包 安装apache httpd的时候会提示如下错误:
util_pcre.c:128: error: 'PCRE_DUPNAMES' undeclared (first use in this function)
util_pcre.c:128: error: (Each undeclared identifier is reported only once
util_pcre.c:128: error: for each function it appears in.)
make[2]: *** [util_pcre.lo] 错误 1
make[2]: Leaving directory `/software/httpd-2.4.9/server'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/software/httpd-2.4.9/server'
make: *** [all-recursive] 错误 1
  5、安装apache httpd-2.4.9:
tar -zxvf httpd-2.4.9.tar.gz #解压
  #检查
./configure --prefix=/home/apache-249   #指定httpd安装路径
--with-pcre=/usr/local/pcre                                 #指定pcre的路径
--with-apr=/usr/local/apr                                   #指定apr的路径
--with-apr-util=/usr/local/apr-util                         #指定apr-util的路径
--enable-so                                                 #支持动态共享模块,如果没有这个模块PHP将无法与apache结合工作
--enable-rewrite                                            #启动rewrite模块
--enable-mods-shared=most                                   #安装大多数模块为动态模块
--enable-mpms-shared=all                                    #支持全部多道处理方式
--with-mpm=event                                            #设置httpd工作模式为event
  make && make install  #编译 安装
  5.1、启动httpd:
到/home/apache-249/bin/
./apachectl start
  提示apr_xxxx_xx没有安装 没有编译什么的,具体忘记截图,请见谅。
  [root@localhost bin]# ldd httpd    #使用ldd查看httpd依赖的库
        linux-vdso.so.1 =>  (0x00007fff583fd000)
        libpcre.so.1 => /usr/local/pcre/lib/libpcre.so.1 (0x00002b8d0b300000)
        libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0 (0x00002b8d0b51c000)
        libexpat.so.0 => /lib64/libexpat.so.0 (0x0000003804a00000)
        libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00002b8d0b76d000)  #问题就出在这里,系统是x64,而且原本的系统也安装了apr,导致现在连接了旧版本的apr
        libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003807600000)
        librt.so.1 => /lib64/librt.so.1 (0x0000003808200000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003816c00000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003802e00000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003802a00000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003802600000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003802200000)

[root@localhost bin]# ./apachectl -V   #查看httpd的版本 (如果在之前出现提示apr_xxxx_xx没有安装 没有编译什么的,这个命令会出现相同的错误提示)
Server version: Apache/2.4.9 (Unix)
Server built:   Apr 15 2014 19:11:19
Server's Module Magic Number: 20120211:31
Server loaded:  APR 1.2.0, APR-UTIL 1.5.3    #Server loaded:  APR 1.2.0为旧版本的apr
Compiled using: APR 1.5.0, APR-UTIL 1.5.3
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)

解决方法:1、查找libapr-1.so.0这个文件(一般在/usr/local/apr下),复制到/usr/lib64/目录下并覆盖(使用ln软连接也可以)
          2、重新安装apr和apr-util,在编译检查时加上--libdir=/usr/lib64
             ./configure --libdir=/usr/lib64 --prefix=/usr/local/apr
             ./configure --libdir=/usr/lib64 --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr
             添加后,在usr/lib64/目录下查看libapr-1.so.0这个文件会看到已经创建了软连接

             [root@localhost lib64]# ls -lal libapr-1.so*
lrwxrwxrwx 1 root root     17 04-15 19:04 libapr-1.so -> libapr-1.so.0.5.0
lrwxrwxrwx 1 root root     17 04-15 19:04 libapr-1.so.0 -> libapr-1.so.0.5.0
-rwxr-xr-x 1 root root 160944 2011-06-01 libapr-1.so.0.2.7
-rwxr-xr-x 1 root root 771023 04-15 19:04 libapr-1.so.0.5.0
  3、重新安装apache httpd,并把apr和apr-util解压到apache httpd安装文件的srclib目录下,改名为apr和apr-util,
             解压和改名后重新安装apache httpd-2.4.9,编译时把--with-apr=/usr/local/apr  --with-apr-util=/usr/local/apr-util这两句删除,
             修改为--with-included-apr(apr和apr-util解压并改名在httpd的srclib目录下时使用)

以上三种方法使用其中一种可解决apr错误链接并提示apr缺失或没有安装的问题。
  6、启动apache httpd
[root@localhost bin]#./apachectl -k start
  

  如启动httpd-2.4.9时出现如下错误:
   AH00548: NameVirtualHost has no effect and will be removed in the next release /home/apache-249/conf/extra/httpd-vhosts.conf:19
意思是 NameVirtualHost 已经无效,所以配置虚拟主机httpd-vhosts.conf时不要设置NameVirtualHost就行了。
  

  如启动httpd-2.4.9后登陆页面出现如下错误:
  You don't have permission to access /.net on this server.
  请修改:
  
  AllowOverride none
  #Require all denied    #把这句注析
  Require all granted  #增加这句
  
  

  Require all denied
  比较常用到的有以下几种
  Require all denied
  Require all granted
  Require host xxx.com
  Require ip 192.168.1 192.168.2
  Require local
  若有设定在 .htaccess 中的也要修改
  官方参考文档:http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html
  
安装时候参看了如下链接:
http://xiaomazi.blog.51cto.com/5891742/1393730
http://blog.sina.com.cn/s/blog_701300bc0101dbi2.html
  


  

  

  





运维网声明 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-638349-1-1.html 上篇帖子: 单节点apache+tomcat负载均衡+集群整合 下篇帖子: apache mina自定义消息传输
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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