【RHEL8】

!!!测试环境我们首关闭防火墙和selinux

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost ~]# setenforce 0  

一、首先安装Apache安装环境

[root@localhost ~]# yum install -y make gcc gcc-c++ expat-devel

二、下载Apache扩展包

//安装Apache需要下载apr、apr-util、pcre这三个扩展包
wget https://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz wget https://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz //下载Apache安装包
wget https://mirror.bit.edu.cn/apache/httpd/httpd-2.4.46.tar.gz 

三、解压,预编译,安装APR扩展包

[root@localhost ~]# tar -zxvf apr-1.6.5.tar.gz
[root@localhost ~]# cd apr-1.6.5/
[root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr
...........
configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING: 'Makefile.in' seems to ignore the --datarootdir setting
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
//预编译没有报错,说明预编译成功
[root@localhost apr-1.6.5]# make && make install
............
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/install -c -m 644 apr.exp /usr/local/apr/lib/apr.exp
/usr/bin/install -c -m 644 apr.pc /usr/local/apr/lib/pkgconfig/apr-1.pc
for f in libtool shlibtool; do \
if test -f ${f}; then /usr/bin/install -c -m 755 ${f} /usr/local/apr/build-1; fi; \
done
/usr/bin/install -c -m 755 /root/apr-1.6.5/build/mkdir.sh /usr/local/apr/build-1
for f in make_exports.awk make_var_export.awk; do \
/usr/bin/install -c -m 644 /root/apr-1.6.5/build/${f} /usr/local/apr/build-1; \
done
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 644 /root/apr-1.6.5/build/apr_common.m4 /usr/local/apr/build-1
/usr/bin/install -c -m 644 /root/apr-1.6.5/build/find_apr.m4 /usr/local/apr/build-1
/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config
//安装过程没有报错,说明安装成功,然后去/usr/local下面看有没有apr目录
[root@localhost apr-1.6.5]# ls /usr/local/
apr bin etc games include lib lib64 libexec sbin share src
[root@localhost apr-1.6.5]# ls /usr/local/apr/
bin build-1 include lib
//出现以上文件说明安装成功  

四、解压、预编译、安装apr-util扩展包

[root@localhost ~]# tar -zxvf apr-util-1.6.1.tar.gz
[root@localhost ~]# cd apr-util-1.6.1/
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr
//在这说明一下,这里预编译必须指明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
//预编译过程没有报错,说明安装成功
[root@localhost apr-util-1.6.1]# make && make install
............
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util/lib
/usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util/bin/apu-1-config
//安装过程没有报错,说明安装成功
[root@localhost apr-util-1.6.1]# ls /usr/local/
apr apr-util bin etc games include lib lib64 libexec sbin share src
[root@localhost apr-util-1.6.1]# ls /usr/local/apr-util/
bin include lib
//出现上面所示的目录,说明安装成功  

五、解压、预编译、安装PCRE扩展包

[root@localhost ~]# tar -zxvf pcre-8.40.tar.gz
[root@localhost ~]# cd pcre-8.40/
[root@localhost pcre-8.40]# ./configure --prefix=/usr/local/pcre
...........
Internal link size .............. : 2
Nested parentheses limit ........ : 250
Match limit ..................... : 10000000
Match limit recursion ........... : MATCH_LIMIT
Build shared libs ............... : yes
Build static libs ............... : yes
Use JIT in pcregrep ............. : no
Buffer size for pcregrep ........ : 20480
Link pcregrep with libz ......... : no
Link pcregrep with libbz2 ....... : no
Link pcretest with libedit ...... : no
Link pcretest with libreadline .. : no
Valgrind support ................ : no
Code coverage ................... : no
//预编译过程没有报错,说明安装成功
[root@localhost pcre-8.40]# make && make install
...........
ln -sf pcre_pattern_to_host_byte_order.3 /usr/local/pcre/share/man/man3/pcre32_pattern_to_host_byte_order.3
ln -sf pcre_refcount.3 /usr/local/pcre/share/man/man3/pcre32_refcount.3
ln -sf pcre_study.3 /usr/local/pcre/share/man/man3/pcre32_study.3
ln -sf pcre_utf32_to_host_byte_order.3 /usr/local/pcre/share/man/man3/pcre32_utf32_to_host_byte_order.3
ln -sf pcre_version.3 /usr/local/pcre/share/man/man3/pcre32_version.3
make[3]: 离开目录“/root/pcre-8.40”
make[2]: 离开目录“/root/pcre-8.40”
make[1]: 离开目录“/root/pcre-8.40”
//安装成功没有报错,说明安装成功
[root@localhost pcre-8.40]# ls /usr/local/
apr apr-util bin etc games include lib lib64 libexec pcre sbin share src
[root@localhost pcre-8.40]# ls /usr/local/pcre/
bin include lib share
//出现上面所示的目录,说明安装成功  

六、解压、预编译、安装Apache服务

[root@localhost ~]# tar -zxvf httpd-2.4.46.tar.gz
[root@localhost ~]# cd httpd-2.4.46/
[root@localhost httpd-2.4.46]# ./configure --prefix=/usr/local/httpd \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util \
> --with-pcre=/usr/local/pcre \
> --enable-so \ //动态模块加载方式
> --enable-rewrite //支持rewrite(地址重定向)
.............
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
configure: summary of build options: Server Version: 2.4.46
Install prefix: /usr/local/httpd
C compiler: gcc
CFLAGS: -g -O2 -pthread
CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE
LDFLAGS:
LIBS:
C preprocessor: gcc -E
//预编译过程没有报错,说明预编译成功
[root@localhost httpd-2.4.46]# make && make install
...........
Installing CGIs
mkdir /usr/local/httpd/cgi-bin
Installing header files
mkdir /usr/local/httpd/include
Installing build system files
mkdir /usr/local/httpd/build
Installing man pages and online manual
mkdir /usr/local/httpd/man
mkdir /usr/local/httpd/man/man1
mkdir /usr/local/httpd/man/man8
mkdir /usr/local/httpd/manual
make[1]: 离开目录“/root/httpd-2.4.46”
//安装过程没有报错,说明安装成功
[root@localhost httpd-2.4.46]# ls /usr/local/
apr apr-util bin etc games httpd include lib lib64 libexec pcre sbin share src
[root@localhost httpd-2.4.46]# ls /usr/local/httpd/
bin build cgi-bin conf error htdocs icons include logs man manual modules
//出现什么所示目录,说明安装成功

七、给httpd启动脚本建立软链接,加入/usr/local/bin/里面(用户环境变量)

[root@localhost ~]# ln -s /usr/local/httpd/bin/apachectl /usr/local/bin/apachectl

八、修改httpd.conf的配置文件

[root@localhost ~]# cd /usr/local/httpd/conf/
[root@localhost conf]# ls
extra httpd.conf magic mime.types original
[root@localhost conf]# vim httpd.conf
...........
User apache //所列出的是需要修改的内容
Group apache
...........
ServerName 192.168.174.128:80 //将servername修改自己的IP加端口号

九、创建apache用户

[root@localhost ~]# groupadd -r apache
[root@localhost ~]# useradd -r -g apache apache
[root@localhost ~]# id apache
uid=991(apache) gid=987(apache) 组=987(apache) 

十、启动httpd服务

[root@localhost ~]# apachectl start
[root@localhost ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1083/sshd
tcp6 0 0 :::80 :::* LISTEN 59291/httpd
tcp6 0 0 :::22 :::* LISTEN 1083/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 1588/dhclient

十一、测试Apache首页

安装成功!!!

最新文章

  1. 获取页面内iframe里面的元素
  2. [推荐]Zookeeper大型分布式系统的可靠协调系统知识介绍
  3. MyEclipse------带进度条的输入流
  4. 网站性能优化之CSS无图片技术:三角形
  5. Codeforces Beta Round #18 (Div. 2 Only) C. Stripe 前缀和
  6. tRNAscan-SE
  7. QBoxLayout::setSizeConstraint可以固定窗口的大小,且根据内部控件所占用的位置自动调节大小
  8. ThinkPHP运算符 与 SQL运算符 对比表
  9. 调试设置移动端Web开发环境搭建实践
  10. AngularJS Front-End App with Cloud Storage Tutorial Part 1: Building a Minimal App in Seven Steps
  11. 软件开发项目云端All-In-One体验
  12. Dapper.Contrib拓展及数据库生成实体
  13. C# asp.net mvc 通过 HttpClient 访问 Web_API
  14. shell实现带颜色输出的进度条
  15. 老牌阅读器nook2刷机整理
  16. [luogu1829][bzoj2154][国家集训队]Crash的数字表格 / JZPTAB【莫比乌斯反演】
  17. CF-721C DAG图拓扑排序+费用DP
  18. 02基于python玩转人工智能最火框架之TensorFlow人工智能&深度学习介绍
  19. python迭代器、生成器、装饰器
  20. 利用KEGG的API获取基因对应的pathway 信息

热门文章

  1. BUAAOO第二单元代码分析
  2. 记一次metasploitable2内网渗透之samba服务的攻击
  3. PAT B1039/A1092 到底买不买项链
  4. Where is the Marble UVA - 10474
  5. Day09_42_Set集合_HashSet
  6. Qt开发技术:Qt拽拖开发(一)拽托框架详解及Demo
  7. 【Java集合】JDK1.7和1.8 HashMap有什么区别
  8. 从苏宁电器到卡巴斯基第12篇:我在苏宁电器当营业员 IV
  9. 路由器逆向分析------在Linux上安装IDA Pro
  10. Metasploit Framework(MSF)的使用