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

[经验分享] Apache二进制免编译安装

[复制链接]

尚未签到

发表于 2018-4-10 14:45:27 | 显示全部楼层 |阅读模式

Apache介绍

Apache是一个基金会的名字,最早就是httpd起家,因为httpd使用的人很多,很流行,所以当时就以基金会的名字来命名的web服务软件 ,在早期的时候,名字就叫做Apache,而不是叫httpd,后来在http的2.0版本开始,就改名叫httpd,但是很多人还是习惯叫做Apache
Apache的主流版本:在之前是 1.3版本比较流行,后来出了2.0版本,2.2版本,2.4版本,现在主流版本是 2.4版本
Apache官网www.apache.org

2.2版本和2.4版本的区别

2.2版本和2.4版本所依赖的apr版本是不同的
centos系统,yum安装的apr和2.4版本的apache是不匹配的,所以无法使用yum安装的apr
Apache2.4版本需要手动编译 apr 和 apr-util 这两个包
apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地进行移植(从linux移植到windows)

下载与解压软件包

cd /usr/local/src
wget https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
wget https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
tar zxvf httpd-2.4.29.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
tar zxvf apr-1.6.3.tar.gz

安装apr

cd apr-1.6.3/
./configure --prefix=/usr/local/apr
//检查下命令是否正常运行echo $?
make && make install

安装apr-util

cd /usr/local/src/apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

安装httpd

cd /usr/local/src/httpd-2.4.29/
./configure \
--prefix=/usr/local/apache2.4 \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--enable-so \
--enable-mods-shared=most
//这里的反斜杠是脱义字符,加上它我们可以把一行命令写成多行
//--enable-so \ 表示支持动态扩展模块,Apache和PHP它们都会支持以一个模块的形式存在
//PHP是Apache的一个模块,这个模块实际上就是一个文件,就是.so 后缀名的文件,那他以Apache的一个模块形式存在,所以Apache本身是一个进程,是一个服务,在这个进程里面,通过一些配置文件指定一个模块的路径,那就可以去调用模块。
//PHP模块是用来解析PHP的,执行PHP脚本的,所以就可以通过PHP脚本将PHP模块加载到进程里面去,加载到主进程里面去,
//当它遇到PHP解析的需求时,它就会去调用这个模块,去执行一些操作
//这些模块是一些独立的文件
//而且还可以指定有哪些动态扩展的模块,需要加载哪些,这里指定是most
//--enable-mods-shared=most
//most,就是绝大多数,大多数会用到的模块,都会加载进来

安装报错:

**错误1:**
xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录
#include <expat.h>                ^
编译中断。
make[1]: *** [xml/apr_xml.lo] 错误 1
make[1]: 离开目录“/usr/local/src/apr-util-1.6.1”
make: *** [all-recursive] 错误 1
解决办法:
yum install expat-devel

**错误2:**
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
解决办法:
yum install -y pcre-devel

**错误3:**
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] 错误 1
make[2]: 离开目录“/usr/local/src/httpd-2.4.29/support”
make[1]: *** [all-recursive] 错误 1
make[1]: 离开目录“/usr/local/src/httpd-2.4.29/support” make: *** [all-recursive]
解决办法:
网上有好多办法,但是试了不行,我后来是把apr-unit删除再重新安装后就正常了

**错误4:**
configure: error: in `/usr/local/src/apr-1.6.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
解决办法:
yum install -y gcc

httpd目录详解:

/usr/local/apache2.4/目录下
bin/          是可执行文件的目录   
conf/        是配置文件所在目录
error/   
htdocs/     是默认网站的目录
logs/         错误日志的目录
modules/   扩展模块的目录 ,最在的一个目录 ,每一个模块代表了一个功能

查看加载的模块

/usr/local/apache2.4/bin/apachectl -M
//在模块的右侧有小括号,static是静态模块shared是动态模块
//静态静态和动态的区别 : 静态是直接把模块编译进了主脚本或主二进制文件里面
//http是一个核心文件,这个文件加载了哪些模块
//如果是static,那也就意味这个模块在httpd里面,和它绑定在了一起,它们是一个整体
//如果是shared,说明它是一个扩展的模块,这个模块是一个文件,我们可以看到的 .so 文件,文件的目录是在/usr/local/apache2.4/module目录下

启动apache

/usr/local/apache2.4/bin/apachectl start



运维网声明 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-448563-1-1.html 上篇帖子: CentOS7.4—构建Apache+Nginx动静分离 下篇帖子: apache配置ssl
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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