源码安装apache的详细步骤与解决方法
作者:互联网
目录
httpd源码安装
先安装httpd需要的包
[root@YL apr-1.7.0]# yum -y install gcc gcc-c++
wget https://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz
解压进入此目录
tar xf apr-1.7.0.tar.gz
cd apr-1.7.0/
配置相关的选项,并生成Makefile
[root@YL apr-1.7.0]# ./configure --help|head
`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
指定编译参数 指定apr的安装路径
[root@YL apr-1.7.0]# ./configure --prefix=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
验证这一步命令是否成功, 非0的都不算成功
[root@YL apr-1.7.0]# echo $?
0
编译安装
[root@YL apr-1.7.0]# make
make[1]: Entering directory '/usr/src/apr-1.7.0'
/bin/sh /usr/src/apr-1.7.0/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I./include -I/usr/src/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/usr/src/apr-1.7.0/include/arch/unix -I/usr/src/apr-1.7.0/include -I/usr/src/apr-1.7.0/include/private -I/usr/src/apr-1.7.0/include/private -o encoding/apr_encode.lo -c encoding/apr_encode.c && touch encoding/apr_encode.lo
[root@YL apr-1.7.0]# make install
make[1]: Entering directory '/usr/src/apr-1.7.0'
make[1]: Nothing to be done for 'local-all'.
make[1]: Leaving directory '/usr/src/apr-1.7.0'
/usr/src/apr-1.7.0/build/mkdir.sh /usr/local/apr/lib /usr/local/apr/bin /usr/local/apr/build-1 \
/usr/local/apr/lib/pkgconfig /usr/local/apr/include/apr-1
进入到apr的目录下查看是否有lib库文件和include头部文件,如果有对其进行设置
[root@YL apr-1.7.0]# cd /usr/local/apr/
[root@YL apr]# ls
bin build-1 include lib
库文件的设置方法
[root@YL apr-1.7.0]# cat /etc/ld.so.conf.d/apr.conf
/usr/local/apr/lib
头部文件的设置方法
ln -s /usr/local/apr/include/ /usr/include/apr //(将安装目录下的include软连接到/usr/include下)
apr文件已经暂时编译完成
解压apr-util的包并进入其目录
[root@YL src]# tar xf apr-util-1.6.1.tar.gz
[root@YL src]# cd apr-util-1.6.1/
[root@YL apr-util-1.6.1]#
配置相关的选项,并生成Makefile
[root@YL apr-util-1.6.1]# ./configure --help|head
`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
指定编译参数 --with必须加,因为apr-utilyi'lai
[root@YL apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
验证这一步命令是否成功, 非0的都不算成功
[root@YL apr-util-1.6.1]# echo $?
0
安装这个包
[root@YL apr-util-1.6.1]# yum -y install expat-devel
make编译
安装完这个包之后编译,编译完成
[root@YL apr-util-1.6.1]# make
make[1]: Entering directory '/usr/src/apr-util-1.6.1'
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/usr/src/apr-util-1.6.1/include -I/usr/src/apr-util-1.6.1/include/private -I/usr/local/apr/include/apr-1 -o xml/apr_xml.lo -c xml/apr_xml.c && touch xml/apr_xml.lo
编译安装
[root@YL apr-util-1.6.1]# make install
make[1]: Entering directory '/usr/src/apr-util-1.6.1'
make[1]: Nothing to be done for 'local-all'.
make[1]: Leaving directory '/usr/src/apr-util-1.6.1'
/usr/local/apr/build-1/mkdir.sh /usr/local/apr-util/include/apr-1 /usr/local/apr-util/lib/pkgconfig \
/usr/local/apr-util/lib /usr/local/apr-util/bin
for f in /usr/src/apr-util-1.6.1/include/*.h /usr/src/apr-util-1.6.1/include/*.h; do \
/usr/bin/install -c -m 644 ${f} /usr/local/apr-util/include/apr-1; \
进入到此目录查找apr-util是否有库文件与头部文件
[root@YL apr-util-1.6.1]# cd /usr/local/apr-util/
库文件的解决方法
[root@YL apr-util-1.6.1]# vi /etc/ld.so.conf.d/apr-util.conf
[root@YL apr-util-1.6.1]# cat /etc/ld.so.conf.d/apr-util.conf
/usr/local/apr-util/lib
[root@YL apr-util-1.6.1]# ldconfig //ldconfig让其生效
头部文件的解决方法
[root@YL apr-util-1.6.1]# ln -s /usr/local/apr-util/include/ /usr/include/apr-util
解压httpd压缩包并进入其目录
[root@YL src]# tar xf httpd-2.4.54.tar.gz
[root@YL src]# cd httpd-2.4.54/
[root@YL httpd-2.4.54]#
安装这个包
[root@YL httpd-2.4.54]# yum -y install pcre-devel
配置相关的选项,并生成Makefile
[root@YL httpd-2.4.54]# ./configure --help|head
`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
进入apr-util的安装目录删除他,重新编译
[root@YL src]# rm -rf apr-util-1.6.1
编译完成后清理缓存
[root@YL httpd-2.4.54]# make clean
然后进行编译安装
[root@YL httpd-2.4.54]# make
Making all in srclib
make[1]: Entering directory '/usr/src/httpd-2.4.54/srclib'
make[1]: Leaving directory '/usr/src/httpd-2.4.54/srclib'
Making all in os
make[1]: Entering directory '/usr/src/httpd-2.4.54/os'
Making all in unix
[root@YL httpd-2.4.54]# make install
Making install in srclib
make[1]: Entering directory '/usr/src/httpd-2.4.54/srclib'
make[2]: Entering directory '/usr/src/httpd-2.4.54/srclib'
make[2]: Leaving directory '/usr/src/httpd-2.4.54/srclib'
make[1]: Leaving directory '/usr/src/httpd-2.4.54/srclib'
Making install in os
make[1]: Entering directory '/usr/src/httpd-2.4.54/os'
Making install in unix
进入到httpd的安装目录只有一个include头部文件,对其进行软链接
[root@YL httpd-2.4.54]# ln -s /usr/local/httpd/include/ /usr/include/httpd
网页访问apache
https://images.cnblogs.com/cnblogs_com/blogs/757984/galleries/2181430/o_220713043404_QQ%E5%9B%BE%E7%89%8720220713112547.png
访问apache
[root@YL httpd-2.4.54]# curl YL
<html><body><h1>It works!</h1></body></html>
错误解决方法
第一次编译apr-util是的错误
xml/apr_xml.c:35:10: fatal error: expat.h: No such file or directory
#include <expat.h>
^~~~~~~~~
compilation terminated.
make[1]: *** [/usr/src/apr-util-1.6.1/build/rules.mk:206: xml/apr_xml.lo] Error 1
make[1]: Leaving directory '/usr/src/apr-util-1.6.1'
make: *** [/usr/src/apr-util-1.6.1/build/rules.mk:118: all-recursive] Error 1
apr-util解决方法
[root@YL apr-util-1.6.1]# yum -y install expat-devel
第一次编译httpd是的错误
[root@YL httpd-2.4.54]# ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
.......
configure: error: pcre(2)-config for libpcre not found. PCRE is required and available from http://pcre.org/
解决方法
[root@YL httpd-2.4.54]# yum -y install pcre-devel
安装软件包后编译 此时编译还是会报错
[root@YL httpd-2.4.54]# make
Making all in srclib
make[1]: Entering directory '/usr/src/httpd-2.4.54/srclib'
make[1]: Leaving directory '/usr/src/httpd-2.4.54/srclib'
Making all in os
make[1]: Entering directory '/usr/src/httpd-2.4.54/os'
此时需要进入到apr-util的安装包删除掉他,重新进行编译,编译完成后清理缓存make clean 再次make make|install 安装,进行头部文件解决
然后进行编译安装
[root@YL httpd-2.4.54]# make
Making all in srclib
make[1]: Entering directory '/usr/src/httpd-2.4.54/srclib'
make[1]: Leaving directory '/usr/src/httpd-2.4.54/srclib'
Making all in os
make[1]: Entering directory '/usr/src/httpd-2.4.54/os'
Making all in unix
[root@YL httpd-2.4.54]# make install
Making install in srclib
make[1]: Entering directory '/usr/src/httpd-2.4.54/srclib'
make[2]: Entering directory '/usr/src/httpd-2.4.54/srclib'
make[2]: Leaving directory '/usr/src/httpd-2.4.54/srclib'
make[1]: Leaving directory '/usr/src/httpd-2.4.54/srclib'
Making install in os
make[1]: Entering directory '/usr/src/httpd-2.4.54/os'
Making install in unix
[root@YL httpd-2.4.54]# ln -s /usr/local/httpd/include/ /usr/include/httpd
编译完成:curl 主机名访问 ip进行网页访问
标签:httpd,src,apr,步骤,make,util,源码,usr,apache 来源: https://www.cnblogs.com/TQingS/p/16477309.html