编译安装HTTP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译安装HTTP相关的知识,希望对你有一定的参考价值。

目标:源码编译安装HTTP

?

安装前准备:

?CentOS7.6操作系统
?提前在官网下载的最新版安装包:
???httpd-2.4.39.tar.bz2
???apr-util-1.6.1.tar.gz
???apr-1.7.0.tar.gz
?注意:
???我们在利用yum安装HTTP时,由于HTTP依赖与APR,yum会自动将他们都装上。但是,在CentOS7上自带的是较新的APR,不支持最新版的HTTP。因此,如果直接在官网下载最新的HTTP会因为APR不支持而无法正常使用。所以我们同时需要去官网下载最新的APR,把最新的APR也编译安装上。
???如果是最小化安装的CentOS7,会缺少很多编译安装所需的工具。因此,建议先执行以下命令进行安装:

yum autoconf bc bzip2 expat-devel gcc gcc-c++ glibc glibc-devel install iotop libtool lrzsz lsof net-tools nfs-utils ntpdate openssl openssl-devel pcre pcre-devel systemd-devel tcpdump treescreen unzip vimlrzsz wget zip zlib-devel -y

?

第一步:处理官网下载的包

首先我们将提前准备的所有的包都解压缩到当前目录下:

tar xvf httpd-2.4.39.tar.bz2 
tar xvf apr-1.7.0.tar.gz 
tar xvf apr-util-1.6.1.tar.gz

然后将所有解压缩完成后的文件都放到一起:

cp -r apr-1.7.0 httpd-2.4.39/srclib/apr
cp -r apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
cd httpd-2.4.39

注:此处选择将所有解压缩后的文件放到一起是因为:这样可以一次性将三个包一起编译安装,无需一个一个来安装,可以减轻操作负担。而且这里选择的是cp命令,源文件仍然保留,若安装失败可直接重新安装,不需要再次解压缩。
?

第二步:源码编译

接下来就可以编译安装了:
首先进入httpd-2.4.39中

cd httpd-2.4.39

注:源码编译时,自身必须在当前目录下才能顺利编译安装,若自身不在当前目录下将无法安装。
先指定目录以及开启哪些权限:

./configure --prefix=/app/httpd24 \     安装路径
--enable-so \               启用模块
--enable-ssl \              启用加密功能
--enable-cgi \              支持cgi
--enable-rewrite \          支持重写
--with-zlib \               支持zlib库
--with-pcre \               支持正则表达式
--with-included-apr \       加上apr
--enable-modules=most \ 支持大部分模块
--enable-mpms-shared=all \  是否支持mpm
--with-mpm=prefork          当前使用的mpm模块是prefork

注:上面中文是解释该行指定的是什么,各位看官大佬千万别把中文粘贴上去。。。
完成后就可以执行命令开始编译了:

make && make install

?

第三步:设置HTTP为开机自启

修改配置文件:

vim /etc/rc.d/rc.local

在最后面添加一行:

/app/httpd24/bin/apachectl start

加上这一行就可以实现开机自动启动,但是还需为文件加上执行权限,这样开机系统就可以自动执行该文件。
?

第四步:创建使用HTTP的用户

编译好之后,因为我们没有创建apache账号,所以它默认使用daemon账号使用服务。
我们可以手动创建一个apache账号来使用apache:

useradd -r -s /sbin/nologin apache

但是创建完用户,HTTP并不能自动识别。
这时就需要我们编辑配置文件来指定让它使用该用户:

vim /app/httpd24/conf/httpd.conf

稍加修改配置文件:

User apache
Group apache

将User和Group后面的daemon改成apache,下次启动就会使用apache来管理HTTP。

?

第五步:添加PATH变量

这个时候就已经编译完成了,但是我们还需要将其添加至PATH变量中才可以正常使用。
在/etc/profile.d/下自定义一个.sh结尾的文件,将PATH变量添加进去:

vim /etc/profile.d/httpd24.sh
        PATH=/app/httpd24/bin:$PATH

至此,最新版HTTP服务就安装完成了,祝所有读者都可以一次成功!
?
补充:
??根据我们刚刚指定的目录,所有文件都在/app/httpd24里面。其中,配置文件都在conf中。启动服务都在bin里面。主页面在/app/httpd24/htdocs/下的index.html中,配置文件在/app/httpd24/htdocs/conf/httpd.cong中。

以上是关于编译安装HTTP的主要内容,如果未能解决你的问题,请参考以下文章

是否可以动态编译和执行 C# 代码片段?

代码片段 - Golang 实现简单的 Web 服务器

Notepad++编辑器——Verilog代码片段直接编译

导致资产预编译在heroku部署上失败的代码片段

如何有条件地将 C 代码片段编译到我的 Perl 模块?

HTTP客户端代码片段