源码安装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 <<end export PATH=$PATH:/usr/local/httpd/bin/ end [root@www1 ~]#source /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"<Directory "/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
<IfModule mpm_worker_module> StartServers 3 MinSpareThreads 75 MaxSpareThreads 250 ThreadsPerChild 25 MaxRequestWorkers 400 MaxConnectionsPerChild 0 </IfModule>
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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。