目标:源码编译安装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中。