安装前准备:
安装最新本的apache需要安装最新版的APR (最新版的apache基于最新版的APR开发出来的 有依赖性)
什么是APR
Apache可移植运行库
一.从网上下载最新版的APR 编译
源码建议放在usr/local/src里(习惯)
[root@centos7 ~]#cd /usr/local/src
把三个文件拉过来
二.两种编译方法
第一种分开编译
第二种所有的包打在一起 统一编译 (这种方法方便 下面用的是第二种方法编译)
1.安装依赖包
[root@centos7 src]# yum -y install gcc make prce-devel openssl-devel expat-devel
2.把那三个文件解包
[root@centos7 src]# tar xvf apr-1.7.0.tar.bz2
root@centos7 src]# tar xvf apr-util-1.6.1.tar.bz2
[root@centos7 src]# tar xvf httpd-2.4.41.tar.gz
3.将apr源码和apr-util源码与httpd源码合并
把apr-1.7.0和 apr-util-1.6.1两个文件分别放在httpd-2.4.41/srclib下 并改名为apr 和apr-until
[root@centos7 src]# mv apr-1.7.0 httpd-2.4.41/srclib/apr
[root@centos7 src]# mv apr-util-1.6.1 httpd-2.4.41/srclib/apr-util
[root@centos7 src]# ls httpd-2.4.41/srclib/
apr apr-util Makefile.in
4.执行统一编译
先进到httpd-2.4.41文件夹里
[root@centos7 src]# cd httpd-2.4.41/
执行脚本
[root@centos7 httpd-2.4.41]#./configure \
--prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
make && make install
[root@centos7 httpd-2.4.41]#== make && make install
三.编译安装后的配置
用apachectl start启动服务 (因为是编译安装centos7 systemd程序带有的需要用的service文件是没有的 如果想用systemd 服务还需要写sevice文件)
1.创建用户
useradd -s /sbin/nologin -r apache
2.配置环境变量
[root@centos7 ~]# vim /etc/profile.d/httpd24.sh
PATH=/app/httpd24/bin:$PATH
[root@centos7 ~]# . /etc/profile.d/httpd24.sh 生效PATH变量
3.设置开机自动启动(作为一个服务一般都要设置开机启动)
[root@centos7 ~]# vim /etc/rc.d/rc.local
/app/httpd24/bin/apachectl start
[root@centos7 ~]# chmod +x /etc/rc.d/rc.local 加执行权限
[root@centos7 ~]# reboot
4.创建service unit文件(CentOS 7 以上版本)
[root@centos7 ~]# vim /usr/lib/systemd/system/httpd24.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/app/httpd24/bin/httpd $OPTIONS -k start
ExecReload=/app/httpd24/bin/httpd $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH {MAINPID}
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@centos7 ~]# systemctl daemon-reload 重新加载
[root@centos7 ~]# systemctl start httpd
[root@centos7 ~]# vim /app/httpd24/htdocs/index.html