1.下载apache
#网址
http://httpd.apache.org/download.cgi#apache24
2.解压
tar -zxvf httpd-2.4.28.tar.gz
3.查看帮助
#进入httpd-2.4.28
./configure
4.编译安装
源码的编译安装一般由3个步骤组成:
配置(configure),通常依赖gcc编译器,binutils,glibc。
配置软件特性,检查编译环境,生成 Makefile文件
编译(make)
安装(make install)
优势
自定义软件功能
优化编译参数,提高性能
解决不必要的软件间依赖
方便清理与卸载
5.配置
configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –-help输出详细的选项列表。
常用的选项
该选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,
库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share
如果配置
则可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。
用了—prefix选项的另一个好处是卸载软件或移植软件。
当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;
移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。
6.依赖
#依赖apr,apr-util下载
http://apr.apache.org/download.cgi
./configure --prefix /usr/apache/apr
make
./configure --prefix /usr/apache/apr-util --with-apr=/usr/apache/apr
make
#依赖pcre
pcre-devel
https://ubuntu.pkgs.org/
#ubuntu系统没有pcre-devel 可以用以下方案替代
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
#还需要安装openSSL
sudo apt-get install openssl libssl-dev
7.编译apache httpd
# cd httpd-2.4.28
# ./configure \
--with-apr=/usr/apache/apr \
--with-apr-util=/usr/apache/apr-util \
--prefix=/usr/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-mpm=prefork \
--enable-modules=most \
--enable-mpms-shared=all
# make
# make install
-------------------------
几个主要的配置项
--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=most 启用的模块
--enable-mpms-shared=all 以共享方式编译的模块
--with-mpm=prefork 指明httpd的工作方式为prefork
8.服务器启/停
在安装目录中进入bin
./apachectl start
##---启动出错
修改配置文件/etc/httpd24/httpd.conf
将ServerName examle:80 改为 localhost:80 正常启动
./apachectl restart 重启
#可以通过lsof -i:80 或者netstat -nltp|grep 80查看端口是否正常启动
9.配置自启动文件
可以通过复制2.2版本的启动文件,修改相关路径后将2.4版作为单独服务运行,如下
注启动文件pid文件位置要配置成与/usr/local/apache/bin/apachectl -V看到的pid位置一致
查看pid位置
-D DEFAULT_PIDLOG="logs/httpd.pid"
26,27c26,27
< if [ -f /etc/sysconfig/httpd ]; then
< . /etc/sysconfig/httpd
> if [ -f /etc/httpd24 ]; then
> . /etc/httpd24
42,46c42,46
< apachectl=/usr/sbin/apachectl
< httpd=${HTTPD-/usr/sbin/httpd}
< prog=httpd
< pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
< lockfile=${LOCKFILE-/var/lock/subsys/httpd}
> apachectl=/usr/local/apache/bin/apachectl
> httpd=${HTTPD-/usr/local/apache/bin/httpd}
> prog=httpd24
> pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
> lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
Starting httpd24: [ OK ]
httpd (pid 15641) is running...
tcp 0 0 :::80 :::* LISTEN 15677/httpd
tcp 0 0 :::8080 :::* LISTEN 15641/httpd
可以通过复制apachectl文件生成服务脚本
ELinks: Connection refused
[root@orasrv1 bin]
tcp 0 0 :::8080 :::* LISTEN 15999/httpd
最后将配置文件添加到服务,以下为http24为例