Linux系统源码编译安装http2.4

一、httpd 简介

    目前CENTOS7默认安装是HTTPD2.4,但是CENTOS6上默认是安装HTTPD2.2,CENTOS6如果要安装HTTPD2.4,需要通过编译安装实现,一般情况下,centOS7默认是安装httpd2.4,若自己编译特殊的模块,需要源码编译安装。httpd2.4源码在 http://httpd.apache.org 下载。

    源码编译的优势
    1)自定义软件功能;
    2)优化编译参数,提高性能;
    3)解决不必要的软件间依赖;
    4)方便清理与卸载。

二、httpd的版本
    httpd-1.3
    httpd-2.0
    httpd-2.2
    httpd-2.4

三、编译安装

    httpd-2.4 依赖于1.4+及以上版本的apr(apache portable runtime,能实现httpd跨平台运行), apr-util

1、编译安装需要先安装开发包组”Development Tools”

yum -y groupinstall "Development Tools"

image.png

    查看组安装

image.png

2、安装前准备,安装所需要的rpm包

yum -y install pcre-devel apr-devel apr-util-devel openssl-devel

image.png

3、将下载好的压缩包加压

image.png

tar xvf httpd-2.4.35.tar.bz2 -C /usr/local/src/    -C 指定解压后的路径

image.png

cd /usr/local/src/httpd-2.4.35/srclib/     进入解压后文件存放地目录放入已下载完毕的依赖包

image.png

    由于apr-util依赖于apr,所以先编译安装apr。

tar xvf apr-1.6.5.tar.gz

image.png

tar xvf apr-util-1.6.1.tar.gz

image.png

image.png

mv apr-util-1.6.1 apr-util       改变文件名称
mv apr-1.6.5 apr

image.png

4、 进行编译

cd /usr/local/src/httpd-2.4.35/   或  cd ..   进入上一级目录

image.png

 ./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24  --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-included-apr    具体解释如下:

image.png

        --sysconfdir=/etc/httpd24  指定配置文件路径,如不指定,配置文件就在程序安装的目录;
        --enable-so  启动模块动态装卸载功能

        --enable-ssl 编译ssl模块,要先安装完毕

        --enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议)
        --enable-rewrite  支持url重写(重定向功能)   

        --with-zlib  支持数据包压缩      

        --with-pcre  支持正则表达式

        --with-apr=/usr/local/apr  指明依赖的apr所在目录(注意必须指明路径)

        --with-apr-util=/usr/local/apr-util/  指明依赖的apr-util所在的目录

        --enable-modules=[all | most | ……]   启用的模块。all表示启用所有模块,most表示启用大多数常用模块

        --enable-mpms-shared=all   以共享方式编译的模块。    其他选项为[prefork | worker | event | all]
        --with-mpm=prefork         指明httpd的工作方式为prefork 。  3种MPM模块为 [prefork | worker | event]

   enable类的一般用于指定启用哪些功能,with类的一般表示依赖于哪些。

image.png

5、加载安装内核

make -j 2 && make install

image.png

6、创建指定用户

useradd -r -u 48 -c "Apache" -d /usr/share/httpd -s /sbin/nologin apache

image.png

    useradd:
     -u UID 指定 UID
     -o 与-u 配合,不检查uid的唯一性
     -g GID/组名 指定用户的主要组
     -G GID/组名 指定用户的附加组
     -c "注释" 用户名
     -d 路径  用户名    (路径中的目录名要先存在,而基名不要存在)
     -s /sbin/nologin  指定用户的默认shell
     -N 使用users组做为主要组
     -r 创建系统用户
     -m 与-r 配合使用,在创建系统用户时,同时创建家目录
     -M 创建非系统用户时,不创建家目录
     -D 设置默认值,影响以下文件
    useradd的默认设置: /etc/default/useradd

7、配置文件设置

 vim /etc/httpd24/httpd.conf

image.png

image.png

8、重启服务

/app/httpd24/bin/apachectl restart    若没有开启,需要start

image.png

9、查看进程

ps -ef |grep httpd

image.png

    ps命令:将某个进程显示出来

     -e   显示所有进程

     -f    全格式

     -h   不显示标题

     -l    长格式

     -w   宽输出

     -a    显示终端上的所有进程,包括其他用户的进程

     -r    只显示正在运行的进程

    -u  以用户为主的格式来显示程序状况

    -x     显示所有程序,不以终端机来区分

四、小总结

   关于HTTP已启动无法访问的解决方法:

    清除浏览器缓存后再次访问。

    没有关闭selinux会出现访问不到的情况

    没有关闭防火墙,则需要添加80端口,或者可以选择关闭防火墙


猜你喜欢

转载自blog.51cto.com/13869720/2309736