ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

源码安装apache

2022-07-13 13:00:20  阅读:186  来源: 互联网

标签:... YL httpd apr root 源码 usr apache 安装


目录


基础环境准备

[root@YL ~]# dnf -y install gcc gcc-c++ make wget
Last metadata expiration check: 5:03:03 ago on Tue 12 Jul 2022 02:56:21 PM CST.
Package make-1:4.2.1-10.el8.x86_64 is already installed.
Package wget-1.19.5-10.el8.x86_64 is already installed.
Dependencies resolved.
==================================================================
 Package           Arch     Version             Repository   Size
==================================================================
Installing:
 gcc               x86_64   8.4.1-1.el8         AppStream    23 M
 gcc-c++           x86_64   8.4.1-1.el8         AppStream    12 M
 .........
   kernel-headers-4.18.0-257.el8.x86_64                            
  libmpc-1.1.0-9.1.el8.x86_64                                     
  libstdc++-devel-8.4.1-1.el8.x86_64                              
  libxcrypt-devel-4.1.1-4.el8.x86_64                              

Complete!

下载源码包

[root@YL src]# wget https://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
--2022-07-13 11:52:10--  https://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 45.253.17.226, 45.253.17.214, 45.253.17.216, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|45.253.17.226|:443... connected.

解压源码包,并进入相应目录

[root@YL src]# tar xf apr-1.7.0.tar.gz
[root@YL src]# 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:

编译一部曲 ./configure

指定编译参数

[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
Configuring APR library
Platform: x86_64-pc-linux-gnu
........
config.status: executing default commands
config.status: include/apr.h is unchanged
config.status: include/arch/unix/apr_private.h is unchanged
[root@YL apr-1.7.0]# 

验证这一步命令是否成功, 非0的都不算成功

[root@YL apr-1.7.0]# echo $?
0

编译二三步曲 make|makeinstal

编译并安装

[root@YL apr-1.7.0]# make |make install
sed 's,^\(location=\).*$,\1installed,' < apr-1-config > apr-config.out
sed -e 's,^\(apr_build.*=\).*$,\1/usr/local/apr/build-1,' -e 's,^\(top_build.*=\).*$,\1/usr/local/apr/build-1,' < build/apr_rules.mk > build/apr_rules.out
.........
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config
[root@YL apr-1.7.0]# 

库文件的配置

[root@YL apr-1.7.0]# cat /etc/ld.so.conf.d/apr.conf 
/usr/local/apr/lib

头部文件的配置

[root@YL apr]# cd /usr/local/apr /usr/local/apr

下载apr-util的源码包

[root@YL apr]# cd /usr/src/
[root@YL src]# wget apr-util-1.6.1.tar.gz

进入相对应的目录

[root@YL src]# cd 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:

指定编译参数

[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
checking for a BSD-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
..........
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

验证这一步命令是否成功, 非0的都不算成功

[root@YL apr-util-1.6.1]# echo $?
0

编译并安装

[root@YL apr-util-1.6.1]# make |make install
sed 's,^\(location=\).*$,\1installed,' < apu-1-config > apu-config.out
make[1]: Entering directory '/usr/src/apr-util-1.6.1'
........
/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@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]# ln -s /usr/local/apr-util/include/ /usr/
include/apr-util/

下载源码包

[root@YL src]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz |head
--2022-07-13 12:20:47--  https://mirrors.aliyun.com/apache/httpd/httpd-2.4.54.tar.gz
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 45.253.17.214, 45.253.17.212, 45.253.17.216, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|45.253.17.214|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9743277 (9.3M) [application/octet-stream]
Saving to: ‘httpd-2.4.54.tar.gz.1’

解压源码包,进入其目录中

[root@YL src]# tar xf httpd-2.4.54.tar.gz
[root@YL src]# cd httpd-2.4.54

配置相关的选项,并生成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:

指定编译参数

[root@YL httpd-2.4.54]# ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
checking for chosen layout... Apache
checking for working mkdir -p... yes

验证这一步命令是否成功, 非0的都不算成功

[root@YL httpd-2.4.54]# echo $?
0

编译并安装

[root@YL httpd-2.4.54]# make |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'
.......
Installing header files
Installing build system files
Installing man pages and online manual
make[1]: Leaving directory '/usr/src/httpd-2.4.54'

头部文件的配置

[root@YL httpd-2.4.54]# ln -s /usr/local/httpd/include/ /usr/include/httpd

httpd启动

[root@YL httpd-2.4.54]# /usr/local/httpd/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::9fb7:6eb1:f172:7121%ens160. Set the 'ServerName' directive globally to suppress this message
httpd (pid 52245) already running

访问apache

[root@YL httpd-2.4.54]# curl YL
<html><body><h1>It works!</h1></body></html>

网页访问apache
enter link description here

三种风格init的程序特点以及区别

1.SysV 在系统开机时进程会一个一个的启动,开机后所有进程都已经完全启动了
2.UpStart 在系统开机时第一个进程开启时会告诉第二个进程我"我"已经开启了你可以开始启动了,开机后所有进程都已经启动且速度快于SysV
3.systemd 在系统开机时只启动systemd这一个进程,告诉主机我已经全部启动了,但是进程并没有启动,只是做了准备工作,在主机要使用时来再去开启这个进程。开机速度极快
区别:第一种虽然开机慢,但是他全部的进程都已经开启了,第二种进行了一个伪并行,速度快于第一种,开机时也会全部进程启动,第三种是告诉自己已经启动了,事实上除了systemd没有启动任何进程,但是开机速度快,当主机调用某一个进程时再去开启那一个进程

标签:...,YL,httpd,apr,root,源码,usr,apache,安装
来源: https://www.cnblogs.com/TQingS/p/16473466.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有