一、安装前准备
1.检查是否存在其他的apache进程,避免端口冲突
ps -ef|grep httpd
2.安装包
依赖包:apr-1.5.2.tar.gz、apr-util-1.5.4.tar.gz、pcre-8.36.zip
apache安装包: httpd-2.4.17.tar.gz
二、安装依赖包
第一种方式:解压依赖包后,进行编译安装,在安装apache指定路径,如--with-apr=/usr/local/apr
第二种方式:解压依赖包,将包放到httpd-2.4.17/srclib/apr下,然后再编译安装apache,使用-with-included-,如-with-included-apr
第一种方式:
1、安装apr
tar -zxf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
2、安装apr-util
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
make && make install
3、安装pcre
unzip pcre-8.36.zip
cd pcre-8.36
./configure --prefix=/usr/local/pcre
make && make install
第二种方式
使用此方式,将依赖包拷贝到srclib下,路径不要带版本信息,如apr-1.5.2 应为apr
一些平台上,apache有可能无法编译安装srclib下的依赖包,需要安装对应的开发包
1、apr
tar -zxvf apr-1.5.2.tar.gz
mv apr-1.5.2 httpd-2.4.17/srclib/apr
2、apr-util
tar -zxvf apr-util-1.5.4.tar.gz
mv apr-util-1.5.4 httpd-2.4.17/srclib/apr-util
3、pcre
unizip pcre-8.36.zip
mv pcre-8.36 httpd-2.4.17/srclib/pcre
三、安装apache
1、tar -zxvf httpd-2.4.17.tar.gz
2、cd httpd-2.4.17
3、配置源代码树
第一种依赖包方式
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
第二种依赖包方式
./configure --prefix=/usr/local/apache2 --with-included-apr --with-included-apr-util --with-included-pcre
4、编译安装
make && make install
配置源代码的方式,可根据需要进行配置:
--enable-module=so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
--enable-mods-shared=all //编译全部的模板,对于不需要我们可以在httpd.conf去掉。
--enable-cache //支持缓存
--enable-file-cache //支持文件缓存
--enable-mem-cache //支持记忆缓存
--enable-disk-cache //支持磁盘缓存
--enable-static-support //支持静态连接(默认为动态连接)
--enable-static-htpasswd //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件
--enable-static-htdigest //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件
--enable-static-rotatelogs //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序
--enable-static-logresolve //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名
--enable-static-htdbm //使用静态连接编译 htdbm - 操作 DBM 密码数据库
--enable-static-ab //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具
--enable-static-checkgid //使用静态连接编译 checkgid
--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi //禁止编译 CGI 版本的 PHP
--enable-ssl // 编译 ssl模块。
四、启动和停止
/usr/local/apache2/bin/apachectl start
/usr/local/apache2/bin/apachectl stop
成功的情况下,访问 http://localhost:80 会看到 It Works!
五、FAQ
在启动apache的时候出现错误“AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message”
解决方法:这个时候编辑 /usr/local/apache2/conf/httpd.conf 配置文件,将其中 #ServerName www.example.com:80 前面的注释去掉即可,或者我们修改为 ServerName localhost:80,然后即可正常启动apache。