apache编译安装

镜像下载、域名解析、时间同步请点击阿里云开源镜像站

源码包编译实例

下面通过编译安装httpd来深入理解源码包安装(httpd-2.4.54)

下载编译工具,httpd以及其两个依赖包的源码包

//源码包建议到官方网站下载

[root@lnh ~]# mkdir xbz
[root@lnh ~]# cd xbz/
[root@lnh xbz]# dnf -y install gcc gcc-c++ make wget
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
[root@lnh xbz]# wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
[root@lnh xbz]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz

安装apr

[root@lnh xbz]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz
[root@lnh xbz]# tar -xf apr-1.7.0.tar.gz
[root@lnh xbz]# ls
apr-1.7.0  apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.54.tar.gz
//将apr解压到当前目录
[root@lnh xbz]# cd apr-1.7.0/
[root@lnh apr-1.7.0]# ls
apr-config.in  build-outputs.mk  helpers       misc           strings
apr.dep        CHANGES           include       mmap           support
apr.dsp        CMakeLists.txt    libapr.dep    network_io     tables
apr.dsw        config.layout     libapr.dsp    NOTICE         test
apr.mak        configure         libapr.mak    NWGNUmakefile  threadproc
apr.pc.in      configure.in      libapr.rc     passwd         time
apr.spec       docs              LICENSE       poll           tools
atomic         dso               locks         random         user
build          emacs-mode        Makefile.in   README
build.conf     encoding          Makefile.win  README.cmake
buildconf      file_io           memory        shmem
//进入这个源码包可以看见里面被解压出来的东西
[root@lnh apr-1.7.0]# ./configure --prefix=/usr/local/src/apr
...

configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/apr.h
config.status: creating build/apr_rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
rm: cannot remove 'libtoolT': No such file or directory
config.status: executing default commands
//生成Makefile
一般常用的有 --prefix=PREFIX 这个选项的意思是定义软件包安装到哪里
建议,源码包都是安装在/opt/目录下或者/usr/local/src目录下面
[root@lnh apr-1.7.0]# make
...

gcc -E -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I./include -I/root/xbz/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/root/xbz/apr-1.7.0/include/arch/unix -I/root/xbz/apr-1.7.0/include -I/root/xbz/apr-1.7.0/include/private -I/root/xbz/apr-1.7.0/include/private  export_vars.c | sed -e 's/^\#[^!]*//' | sed -e '/^$/d' >> apr.exp
sed 's,^\(location=\).*$,\1installed,' < apr-1-config > apr-config.out
sed -e 's,^\(apr_build.*=\).*$,\1/usr/local/src/apr/build-1,' -e 's,^\(top_build.*=\).*$,\1/usr/local/src/apr/build-1,' < build/apr_rules.mk > build/apr_rules.out
make[1]: Leaving directory '/root/xbz/apr-1.7.0'
//&#x7F16;&#x8BD1;&#x751F;&#x6210;Makefile&#xFF0C;&#x6B64;&#x5904;&#x867D;&#x7136;&#x51FA;&#x73B0;&#x4E86;make[1]: Leaving directory '/root/xbz/apr-1.7.0'&#xFF0C;&#x4F46;&#x662F;&#x6CA1;&#x5173;&#x7CFB;&#x53EF;&#x4EE5;&#x7EE7;&#x7EED;&#x8FDB;&#x884C;&#x4E0B;&#x4E00;&#x6B65;&#x5B89;&#x88C5;
[root@lnh apr-1.7.0]# make install
...

/usr/bin/install -c -m 755 /root/xbz/apr-1.7.0/build/mkdir.sh /usr/local/src/apr/build-1
for f in make_exports.awk make_var_export.awk; do \
    /usr/bin/install -c -m 644 /root/xbz/apr-1.7.0/build/${f} /usr/local/src/apr/build-1; \
done
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/src/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 755 apr-config.out /usr/local/src/apr/bin/apr-1-config
//&#x8FDB;&#x884C;&#x5B89;&#x88C5;
[root@lnh apr-1.7.0]# cd /usr/local/src/apr/
[root@lnh apr]# ls
bin  build-1  include  lib
//&#x8FDB;&#x5165;apr&#x7684;&#x8DEF;&#x5F84;&#x8FDB;&#x884C;&#x67E5;&#x770B;&#xFF0C;&#x9ED8;&#x8BA4;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x7CFB;&#x7EDF;&#x641C;&#x7D22;&#x5E93;&#x6587;&#x4EF6;&#x7684;&#x8DEF;&#x5F84;&#x53EA;&#x6709;/lib&#xFF0C;/usr/lib&#xFF0C;&#x6211;&#x4EEC;&#x9700;&#x8981;&#x8FDB;&#x884C;&#x4FEE;&#x6539;&#x5728;/etc/ld.so.conf.d/&#x4E2D;&#x521B;&#x5EFA;&#x4EE5;.conf&#x4E3A;&#x540E;&#x7F00;&#x540D;&#x7684;&#x6587;&#x4EF6;&#xFF0C;&#x800C;&#x540E;&#x628A;&#x8981;&#x589E;&#x6DFB;&#x7684;&#x8DEF;&#x5F84;&#x76F4;&#x63A5;&#x5199;&#x81F3;&#x6B64;&#x6587;&#x4EF6;&#x4E2D;&#x3002;&#x6B64;&#x65F6;&#x5E93;&#x6587;&#x4EF6;&#x589E;&#x6DFB;&#x7684;&#x641C;&#x7D22;&#x8DEF;&#x5F84;&#x91CD;&#x542F;&#x540E;&#x6709;&#x6548;&#xFF0C;&#x82E5;&#x8981;&#x4F7F;&#x7528;&#x589E;&#x6DFB;&#x7684;&#x8DEF;&#x5F84;&#x7ACB;&#x5373;&#x751F;&#x6548;&#x5219;&#x8981;&#x4F7F;&#x7528;ldconfig&#x547D;&#x4EE4;
[root@lnh apr]# cd /etc/ld.so.conf.d/
[root@lnh ld.so.conf.d]# echo /usr/local/src/apr/lib/ >apr.conf
[root@lnh ld.so.conf.d]# cd -
/usr/local/src/apr
//&#x5207;&#x6362;&#x5230;&#x524D;&#x4E00;&#x4E2A;&#x5DE5;&#x4F5C;&#x76EE;&#x5F55;
[root@lnh apr]# ldconfig
//&#x4F7F;&#x547D;&#x4EE4;&#x751F;&#x6548;
[root@lnh apr]# ln -s /usr/local/src/apr/include/ /usr/include/apr
[root@lnh apr]# ll /usr/include/apr
lrwxrwxrwx. 1 root root 27 Jul 12 20:31 /usr/include/apr -> /usr/local/src/apr/include/
//&#x5C06;&#x5934;&#x6587;&#x4EF6;&#x8F6F;&#x94FE;&#x63A5;&#x5230;/usr/include&#x76EE;&#x5F55;&#x4E0B;

安装apr-util

`
[root@lnh xbz]# dnf -y install expat-devel libxml2-devel pcre-devel
//需要先安装这个依赖
[root@lnh xbz]# ls
apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz
[root@lnh xbz]# tar -xf apr-util-1.6.1.tar.gz
[root@lnh xbz]# ls
apr-1.7.0 apr-util-1.6.1 httpd-2.4.54.tar.gz
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz
//解压到当前目录
[root@lnh xbz]# cd apr-util-1.6.1/
[root@lnh apr-util-1.6.1]# ls
aprutil.dep CHANGES include NWGNUmakefile
aprutil.dsp CMakeLists.txt ldap README
aprutil.dsw config.layout libaprutil.dep README.cmake
aprutil.mak configure libaprutil.dsp README.FREETDS
apr-util.pc.in configure.in libaprutil.mak redis
apr-util.spec crypto libaprutil.rc renames_pending
apu-config.in dbd LICENSE strmatch
buckets dbm Makefile.in test
build docs Makefile.win uri
build.conf encoding memcache xlate
buildconf export_vars.sh.in misc xml
build-outputs.mk hooks NOTICE
//进入源码包查看被解压出来的东西
[root@lnh apr-util-1.6.1]# ./configure –prefix=/usr/local/src/apr-util –with-apr=/usr/local/src/apr

configure: creating ./config.status
config.status: creating Makefile
config.status: creating export_vars.sh
config.status: creating build/pkg/pkginfo
config.status: creating apr-util.pc
config.status: creating apu-1-config
config.status: creating include/private/apu_select_dbm.h
config.status: creating include/apr_ldap.h
config.status: creating include/apu.h
config.status: creating include/apu_want.h
config.status: creating test/Makefile
config.status: creating include/private/apu_config.h
config.status: executing default commands
//生成Makefile文件,需要伴随着上一个指定的依赖
[root@lnh apr-util-1.6.1]# make

gcc -E -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/root/xbz/apr-util-1.6.1/include -I/root/xbz/apr-util-1.6.1/include/private -I/usr/local/src/apr/include/apr-1 exports.c | grep “ap_hack_” | sed -e ‘s/^.[)](.);$/\1/’ >> aprutil.exp
gcc -E -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/root/xbz/apr-util-1.6.1/include -I/root/xbz/apr-util-1.6.1/include/private -I/usr/local/src/apr/include/apr-1 export_vars.c | sed -e ‘s/^#[^!]//’ | sed -e ‘/^$/d’ >> aprutil.exp
sed ‘s,^(location=).
$,\1installed,’ < apu-1-config > apu-config.out
make[1]: Leaving directory ‘/root/xbz/apr-util-1.6.1’
//编译生成的Makefile文件,出现make[1]: Leaving directory ‘/root/xbz/apr-util-1.6.1’这个没有关系可以继续进行下一步安装
[root@lnh apr-util-1.6.1]# make install

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.

Original: https://www.cnblogs.com/helong-123/p/16489585.html
Author: 萌褚
Title: apache编译安装

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523080/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球