#cd /usr/local/src/ ???
#wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz ?????//下载httpd包
#wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.3.tar.gz ??????//下载apr包
#wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz ????//下载apr-util包
#tar zxvf httpd-2.4.33.tar.gz ????//解压
#tar zxvf apr-1.6.3.tar.gz ?????//解压,注意:不能yum安装apr,需要编译安装
#tar zxvf apr-util-1.6.1.tar.gz ????//解压
安装apr
#cd apr-1.6.3/ ??????????//首先安装apr
#./configure --prefix=/usr/local/apr
#echo $? ??????//检查上一条命令是否执行成功,输出结果为0则OK
#make && make install ??????//安装
#echo $?
#ls /usr/local/apr/ ??????//查看到/apr/目录下有4个文件夹
bin ?build-1 ?include ?lib
安装apr-util
#cd /usr/local/src/apr-util-1.6.1/ ????????//进入apr-util-1.6.1目录
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#echo $?
#make && make install ????//编译安装出现如下错误:
解决办法:可能是少了expat库, #yum install expat-devel安装该库,安装完再次编译安装,执行
#make && make install ?果然可以了
#ls /usr/local/apr-util/ ??????//查看/apr-util目录下有三个文件夹
bin ?include ?lib
安装httpd
#cd /usr/local/src/httpd-2.4.33/
#./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都支持以一个模块的形式存在,这个模块其实就是一个.so后缀名的文件,它以Apache一个模块的形式存在,Apache本身是一个进程,一个服务,在这个服务里面,指定了一个模块的路径,那么它就可以调用这个模块,enable-so \这个参数就是让它支持动态扩展;--enable-mods-shared=most指定模块)
执行命令报错:error: pcre-config for libpcre not found.
#yum list |grep pcre ?????//使用yum列出pcre包
#yum install -y pcre-devel ????//安装pcre-devel包
#./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most ?//再执行这条命令
echo $? ??????????//输出0,表示OK
make ?????????????//执行make报如下错误:
百度查找说由于系统缺少链接库,执行命令 # yum install freeglut-devel ????# yum install mesa-libGL-devel mesa-libGLU-devel
解决办法:yum install libtools-ltdl-devel 并重新编译安装apr-util,解决如上报错,解决问题的感觉不是第一次查找的原因:由于系统缺少链接库,而是#yum install libtools-ltdl-devel 并重新编译安装apr-util,缺少libtools-ltdl-devel这个包才是真正的原因。
#make install
#echo $?
#cd /usr/local/apache2.4/ ????????//进入到/apache2.4目录下
#ls ??????//查看它下面的目录
bin ?build ?cgi-bin ?conf ?error ?htdocs ?icons ?include ?logs ?man ?manual ?modules
#ls bin/httpd
bin/httpd ???????????//这个就是核心的httpd启动文件
#du -sh !$ ???????????//查看bin/httpd文件大小
du -sh bin/httpd
3M ???bin/httpd
#ls conf/ ?????//conf下面是配置文件
#ls htdocs/ ???//存放访问页路径,默认网站存放路径
#ls logs/ ?????//日志文件存放路径
#ls man ????//帮助文档
#ls modules/ ????//存放模块的路径,里面都是.so模块
#/usr/local/apache2.4/bin/httpd -M ?????//-M查看调用了哪些模块
或者使用# /usr/local/apache2.4/bin/apachectl -M ?也是查看调用了哪些模块
Apache启动不需要放到/etc/init.d/目录下面去,直接使用命令行启动
/usr/local/apache2.4/bin/apachectl start
提示这个并不是错误,是没有定义servername,如果不想让它提示,编辑配置即可
#ps aux |grep httpd ??????????//查看httpd进程是否存在
#netstat -lntp ??????????//查看端口号80是否被监听
参考安装Apache2.4.6几个报错的文章:https://www.jianshu.com/p/ba5d5622e9d8
Apache安装
原文地址:http://blog.51cto.com/13669226/2120522