源码安装apache步骤

1.下载源码

wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.5.tar.gz
wget http://mirrors.shu.edu.cn/apache//httpd/httpd-2.4.35.tar.gz

注:Apr是Apache的项目,称为Apache Protable runtime,创建或维护软件库,为底层平台特定的实现提供可预测且一致的接口。目标是提供一个API。项目地址:https://apr.apache.org/

    其中,apr.tar.gz是库,apr-util.tar.gz是工具组件

2.解压缩到/usr/local/src下

tar -zxvf apr-1.6.5.tar.gz -C /usr/local/apr       ./configure --prefix=/usr/local/apr然后make&&make install
tar -zxvf apr-util-1.6.1.tar.gz -C /usr/local/apr-util/   ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util 然后make&&make install
tar -zxvf httpd-2.4.35.tar.gz -C /usr/local/src

3.用configure产生makefile文件

./configure --prefix=/usr/local/httpd/ --sysconfdir=/etc/httpd/ --with-include-apr --disable-userdir --enable-headers --with-mpm=worker --enable-modules=most --enable-so --enable-deflate --enable-defate=shared --enable-expires-shared --enable-rewrite=shared --enable-static-support --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/bin --with-ssl

由于我安装的linux是最小化安装在编译时多次报错,因为很多依赖库未安装根据报错内容操作即可;

yum install pcre-devel-7.8-6.el6.x86_64.rpm -y
yum install zlib-devel-1.2.3-29.el6.x86_64.rpm -y

4.编译、编译安装

 make && make install

5.制作启动脚本和自启动

[root@www1 ~]#cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd   #拷贝apache的启动脚本到/etc/init.d下
[root@www1 ~]#vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 345 61 61    #启动等级、启动时启动的顺序、关机时关闭的顺序
[root@www1 ~]#chkconfig --add httpd
[root@www1 ~]#chkconfig --level 2345 httpd on

6.修改环境变量

[root@www1 ~]#cat >>/etc/profile < 
  

7.启动apache,当然启动前需要指定启动程序的用户

[root@www1 ~]# groupadd www
[root@www1 ~]# useradd -g www -s /bin/false
[root@www1 ~]# vim /etc/httpd/httpd.conf     #需要更改httpd.conf的设置
User apache
Group apache
DocumentRoot "/data"
[root@www1 ~]# /etc/init.d/httpd start
[root@www1 ~]# netstat -antup | grep 80  #查看端口是否启动

8.在.configure中--with-mpm=worker是指定apache的工作模式,有3种工作模式:1.prefork默认 2.worker  3.event(httpd2.4默认使用)

需要在httpd.conf中打开Include /etc/httpd/extra/httpd-mpm.conf进行调优。

# Server-pool management (MPM specific)
Include /etc/httpd/extra/httpd-mpm.conf

vim /etc/httpd/extra/httpd-mpm.conf


    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0

http2.4新特性:

1.运行时可加载MPM,现在可以在编译时可以将多个MPM构建成可加载模块,可以在运行时通过LoadModule指令配置所选的MPM

    enable-mpms-shared=all   可设置支持所有mpm,在配置文件中动态修改。--with-mpm=MPM  可设置默认使用的MPM类型

2.异步读写

3.可在模块和目录上指定日志级别

4.对每请求进行配置

5.增强性的表达式分析器

6.毫秒级的keepalive timeout

7.基于域名的虚拟主机不需要namevirtualhost指令

8.比http2.2更少的内存

9.支持在配置文件中使用自定义变量


http2.4新增模块:https://httpd.apache.org/docs/trunk/new_features_2_4.html