1.从apache官网下载httpd-2.4.38源码包进行解压缩
2.下载httpd-2.4.38编译所需的基础依赖包,并进行编译安装(有的软件包,系统可能已经附带了,但是可能太低,编译的过程中可能会出现问题),包括:
- apr
- apr-util
- pcre
- openssl
其中apr和apr-util可以和httpd放在一起进行编译安装,而pcre和openssl需要单独编译安装
对apr和apr-util的处理,有两种方式:
1)将apr和apr-util分别解压到单独的目录中进行编译安装
#进入apr解压目录
./configure --prefix=/usr/local/apr
make && make install
#进入apr-util解压目录
./configure --prefix=/usr/local/apr-util
make && make install
#在配置httpd的编译操作时,使用参数
./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
2)将apr和apr-util与与httpd一起编译安装
#将apr和apr-util解压到httpd的解压目录下的srclib下,并去掉后缀
tar -xf apr-1.6.5.tar.gz -C /httpd-2.4.38/srclib/
cd /httpd-2.4.38/srclib/
mv apr-1.6.5 apr
#apr-util同理
#在配置httpd的编译参数时,使用参数
./configure --with-included-apr
安装pcre
tar -xf pcre-8.43.tar.gz -C /root/
cd /root/pcre-8.43
./configure --prefix=/usr/local/pcre
make && make install
安装openssl
tar -xf openssl-1.1.tar.gz -C /root/
cd /root/openss-1.1
./config --prefix=/usr/local/openssl
make && make install
3.开始httpd的编译和安装
# 进入httpd的解压目录
# apr和apr-util单独安装时的配置
./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --wtih-apr-util=/usr/local/apr-util --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre
# apr和httpd一起编译时的配置
./configure --prefix=/usr/local/httpd --with-included-apr --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre
# 开始编译
make
# 如果编译无错误,进行安装
make install
4.配置httpd服务
默认配置文件为安装目录下的conf/httpd.conf
通常需要修改的配置参数有 Listen:表示监听端口号,DocumentRoot:表示网站根目录
5.服务的启动和关闭
启动:bin/httpd -k start
关闭:bin/httpd -k stop
6.可能出现的问题
1)配置过程中提示某个软件未安装,解决方式:使用yum进行安装,或者下载源码编译安装
2)编译过程中提示,未定义的引用:原因可能是依赖的链接库版本太低,需要手动升级安装。如何查找需要的库的名称?将提示的函数名称复制出来使用百度或者google搜索。
注:在前几次编译过程中,一直提示undefined reference to: `EC_curve_nist2nid',在百度搜索无果,后来发现前面还有一部分提示:In function `ssl_proceed_handshake';将这个函数名称放到百度上搜索发现是ssl版本太低导致。