目录
[步骤1: 下载软件](#步骤1: 下载软件)
[步骤2: 安装apr](#步骤2: 安装apr)
[步骤3: 安装apr-util](#步骤3: 安装apr-util)
[步骤4: 安装Apache HTTP Server](#步骤4: 安装Apache HTTP Server)
源码安装
-
准备环境:首先,确保你的系统中安装了必要的编译工具和依赖库。对于C/C++程序,这通常包括编译器(如GCC或Clang)、链接器以及相关的开发库。对于其他语言,可能还需要特定的编译器或构建工具(如Python的pip,Java的JDK)。
-
下载源代码 :从项目官网、GitHub或其他代码托管平台下载源代码包,通常为压缩文件(如
.tar.gz
,.zip
)。 -
解压源代码 :使用命令行工具(如
tar -xvf
或解压软件)解压下载的源代码包到指定目录。 -
配置 :许多开源项目在编译前需要配置步骤,通过执行
./configure
脚本(常见于GNU Autotools项目)或其他配置工具(如CMakefile、CMake、Maven、Gradle等)。配置过程会检测系统环境、设置编译选项、指定安装路径等。 -
编译 :执行编译命令,将源代码转换为机器代码。对于C/C++,这通常使用
make
命令(基于Makefile);对于其他语言,可能是mvn compile
、gradle build
等。编译过程可能包括预处理、编译、汇编、链接等多个阶段。 -
安装 :编译完成后,通过
make install
(需要管理员权限)将编译得到的可执行文件、库文件、配置文件等安装到系统路径(如/usr/local/bin
,/usr/local/lib
)。 -
测试 :安装后,运行软件或执行测试脚本(如
make test
),确保软件能正确工作。
准备工作
确保系统中已安装必要的构建工具和库(由于源码安装是c/c++写的,所以需要安装相关文件)
yum install gcc gcc-c++ make -y
步骤1: 下载软件
首先,下载Apache及其依赖的源代码包。请注意,您提供的版本号(如httpd-2.4.50)可能需要校正为实际有效的版本号。可以通过访问Apache官方网站获取最新的稳定版本号。以下为示例命令,您应根据实际下载的版本调整文件名:
bash
wget https://archive.apache.org/dist/httpd/httpd-2.4.50.tar.gz
tar -xvf httpd-2.4.50.tar.gz -C /usr/local/src/ --解压文件
解压文件成功之后
bash
cd /usr/local/src/httpd-2.4.50/
[root@localhost httpd-2.4.50] ls
- ABOUT_APACHE: 可能包含有关Apache项目的简短介绍或版权信息。
- CHANGES: 记录了版本间的变更日志,包括新特性、修复的漏洞等。
- httpd.mak , httpd.dep , httpd.dsp: 这些是编译相关的文件,用于构建httpd服务本身。
- Makefile.in : 配置生成Makefile的模板文件,通常在执行
./configure
时被处理。- ROADMAP: 可能包含了项目的发展路线图或未来规划。
- acinclude.m4, configure, configure.in: 自动配置脚本和宏定义文件,用于检测系统环境并准备编译环境。
- changes-entries: 可能用于记录文档中的更改条目。
- CMakeLists.txt: 如果使用CMake构建系统,这是CMake的主配置文件。
- docs: 存放文档的目录。
- include: 包含头文件,供Apache及其模块使用。
- INSTALL: 通用的安装指南。
- LAYOUT: 可能描述了源代码布局的文件。
- LICENSE: 许可证文件,包含Apache HTTP Server的授权信息。
- modules: 包含Apache的核心模块源代码。
- NOTICE: 可能包含版权和许可声明。
- NWGNUmakefile: 可能是为特定构建系统提供的Makefile。
- README , README.CHANGES , README.cmake , README.platforms: 提供各种说明和帮助文档。
- server: 可能包含服务器核心的源代码。
- srclib: 存放共享库或源代码库的源文件。
- support: 支持脚本或工具。
- test: 测试用例和相关脚本。
- VERSIONING: 可能涉及版本控制或版本管理的信息。
显示没找到ARP,有一个软件依赖
打开apache官网查看源码编译手册
下载apr与apr-util
bash
wget https://dlcdn.apache.org//apr/apr-1.7.4.tar.gz
wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
步骤2: 安装apr
bash
tar xf apr-1.7.4.tar.gz -C /usr/local/src
cd /usr/local/src/apr-1.7.4
./configure --prefix=/usr/local/apr
make
make install
步骤3: 安装apr-util
这里的 --with-apr
选项告诉 httpd
的 configure
脚本去使用指定路径下的 apr
库。如果没有提供路径,configure
脚本会尝试找到系统中默认位置的 apr
库。
对于 apr-util:
bash
tar xf apr-util-1.6.3.tar.gz -C /usr/local/src
cd /usr/local/src/apr-util-1.6.3
同样,如果需要指定一个特定版本的 apr-util
,可能因为它包含了某些特定的功能或者与 apr
版本相匹配,可以使用类似的选项:
--prefix=/usr/local/apr-util
:此选项指定了apr-util
库安装的目录。意味着编译完成后,apr-util
的库文件、头文件等将被安装到/usr/local/apr-util
目录下,便于系统其他软件找到和使用。
--with-apr=/usr/local/apr/
:这个选项指明了apr
库的安装位置。apr-util
是apr
库的扩展,因此在编译apr-util
时需要知道apr
的安装路径,确保编译过程中能够找到并正确链接到apr
库。这里的路径以斜杠结尾是一种习惯做法,虽然大多数configure
脚本对此并不严格要求,但建议保持一致以避免潜在的路径解析问题。
注意,由于 apr-util
依赖于 apr
,所以通常需要同时指定两者的位置,尤其是当你使用自定义安装路径时。如果不指定 --with-apr
,configure
可能无法找到正确的 apr
版本来与 apr-util
配合。
显示有错误这里没有找到apr,由于apr-util 是apr的扩展,所以需将他们两个连接起来
这里得使用选项--with
bash
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
bash
make
这个时候发现了一个错误缺少一个库头文件
bash
yum install -y expat-devel # 确保expat库已安装
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
扩展包安装成功!
步骤4: 安装Apache HTTP Server
流程:
bash
tar xf httpd-2.4.x.tar.gz -C /usr/local/src # 替换x为实际的小版本号
cd /usr/local/src/httpd-2.4.50
yum install -y pcre-devel # 安装PCRE库,用于正则表达式支持
./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-ssl --with-pcre=/usr/local # 启用SSL支持,并指定PCRE路径
make
make install
遇到这个错误信息意味着在编译某个软件(是Apache HTTP Server、Nginx或其他依赖PCRE库的软件)时,系统找不到**
pcre-config
**工具,这是PCRE库(Perl Compatible Regular Expressions,Perl兼容正则表达式库)的一部分。PCRE库用于提供强大的正则表达式支持,是很多网络服务和应用程序的基础依赖。
验证是否安装成功
bash
[root@localhost httpd-2.4.50] pcre-config --version
8.44
--prefix=/usr/local/httpd
:此选项指定了 httpd 服务器安装的基准目录。编译安装完成后,httpd 的可执行文件、配置文件、库文件等将被放置在/usr/local/httpd
及其子目录下,例如,二进制文件通常位于/usr/local/httpd/bin
,配置文件可能在/usr/local/httpd/conf
。
--with-apr=/usr/local/apr
:此选项告诉配置脚本使用位于/usr/local/apr
目录下的 APR(Apache Portable Runtime)库。APR 是一组跨平台的库,提供了操作系统层面上的抽象,使得Apache HTTP Server和其他软件能够更方便地实现平台无关性。指定这个路径确保了httpd将使用自定义位置的APR库而非系统自带的版本。
--with-apr-util=/usr/local/apr-util
:类似地,这个选项指定了 APR-Util 库的安装位置为/usr/local/apr-util
。APR-Util 是 APR 的扩展,提供了更多的实用功能,如数据库连接、XML处理等。确保httpd使用特定版本或自定义安装的APR-Util库对于依赖管理和功能兼容性很重要。
重新编译
bash
[root@localhost httpd-2.4.50] ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
bash
make
make install
安装成功
总结步骤
bash
源码编译安装apache 2.4
yum install gcc gcc-c++ make -y
1、下载软件
apr-1.7.4.tar.gz
apr-util-1.6.3.tar.gz
httpd-2.4.50.tar.gz
2、安装apr APACHE的可移植运行库
tar xf apr-1.7.4.tar.gz -C /usr/local/src
cd /usr/local/src/apr-1.7.4/
./configure --prefix=/usr/local/apr
make
make install
3、安装apr-util 与APACHE更加紧密 包含一些常用的开发组件
tar xf apr-util-1.6.3.tar.gz -C /usr/local/src
cd /usr/local/src/apr-util-1.6.3
yum install -y expat-devel # 安装依赖
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make
make install
4、安装apache
tar xf httpd-2.4.50.tar.gz -C /usr/local/src
cd /usr/local/src/httpd-2.4.50/
yum install pcre-devel # 安装依赖
./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make
make install
后续步骤
- 配置Apache :编辑Apache的配置文件(通常是
/usr/local/httpd/conf/httpd.conf
),根据需要调整服务器根目录、监听端口等。 - 创建系统服务:为Apache创建Systemd或Init服务脚本,以便于管理和自动启动。
- 启动Apache :通过
/usr/local/httpd/bin/apachectl start
手动启动Apache,或使用刚创建的服务启动。