一、httpd 简介
目前CENTOS7默认安装是HTTPD2.4,但是CENTOS6上默认是安装HTTPD2.2,CENTOS6如果要安装HTTPD2.4,需要通过编译安装实现,一般情况下,centOS7默认是安装httpd2.4,若自己编译特殊的模块,需要源码编译安装。httpd2.4源码在 http://httpd.apache.org 下载。
源码编译的优势:
1)自定义软件功能;
2)优化编译参数,提高性能;
3)解决不必要的软件间依赖;
4)方便清理与卸载。
二、httpd的版本
httpd-1.3
httpd-2.0
httpd-2.2
httpd-2.4
三、编译安装
httpd-2.4 依赖于1.4+及以上版本的apr(apache portable runtime,能实现httpd跨平台运行), apr-util
1、编译安装需要先安装开发包组”Development Tools”
yum -y groupinstall "Development Tools"
查看组安装
2、安装前准备,安装所需要的rpm包
yum -y install pcre-devel apr-devel apr-util-devel openssl-devel
3、将下载好的压缩包加压
tar xvf httpd-2.4.35.tar.bz2 -C /usr/local/src/ -C 指定解压后的路径
cd /usr/local/src/httpd-2.4.35/srclib/ 进入解压后文件存放地目录放入已下载完毕的依赖包
由于apr-util依赖于apr,所以先编译安装apr。
tar xvf apr-1.6.5.tar.gz
tar xvf apr-util-1.6.1.tar.gz
mv apr-util-1.6.1 apr-util 改变文件名称 mv apr-1.6.5 apr
4、 进行编译
cd /usr/local/src/httpd-2.4.35/ 或 cd .. 进入上一级目录
./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-included-apr 具体解释如下:
--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=[all | most | ……] 启用的模块。all表示启用所有模块,most表示启用大多数常用模块
--enable-mpms-shared=all 以共享方式编译的模块。 其他选项为[prefork | worker | event | all]
--with-mpm=prefork 指明httpd的工作方式为prefork 。 3种MPM模块为 [prefork | worker | event]
enable类的一般用于指定启用哪些功能,with类的一般表示依赖于哪些。
5、加载安装内核
make -j 2 && make install
6、创建指定用户
useradd -r -u 48 -c "Apache" -d /usr/share/httpd -s /sbin/nologin apache
useradd:
-u UID 指定 UID
-o 与-u 配合,不检查uid的唯一性
-g GID/组名 指定用户的主要组
-G GID/组名 指定用户的附加组
-c "注释" 用户名
-d 路径 用户名 (路径中的目录名要先存在,而基名不要存在)
-s /sbin/nologin 指定用户的默认shell
-N 使用users组做为主要组
-r 创建系统用户
-m 与-r 配合使用,在创建系统用户时,同时创建家目录
-M 创建非系统用户时,不创建家目录
-D 设置默认值,影响以下文件
useradd的默认设置: /etc/default/useradd
7、配置文件设置
vim /etc/httpd24/httpd.conf
8、重启服务
/app/httpd24/bin/apachectl restart 若没有开启,需要start
9、查看进程
ps -ef |grep httpd
ps命令:将某个进程显示出来
-e 显示所有进程
-f 全格式
-h 不显示标题
-l 长格式
-w 宽输出
-a 显示终端上的所有进程,包括其他用户的进程
-r 只显示正在运行的进程
-u 以用户为主的格式来显示程序状况
-x 显示所有程序,不以终端机来区分
四、小总结
关于HTTP已启动无法访问的解决方法:
清除浏览器缓存后再次访问。
没有关闭selinux会出现访问不到的情况
没有关闭防火墙,则需要添加80端口,或者可以选择关闭防火墙