httpd

1.httpd安装 。使用yum安装: 。httpd命令 。curl命令 。编译安装httpd-2.4 2.httpd常用配置 。访问控制法则: 3.虚拟主机: 。相同ip不同端口的配置: 。不同IP相同端口配置: 。相同IP相同端口不同域名配置 。ssl httpd //配置文件说明


文件/目录	                                                     对应的功能
/var/log/httpd/access.log 	                            访问日志
/var/log/httpd/error_log	                                 错误日志
/var/www/html/	                                          站点文档目录
/usr/lib64/httpd/modules/	                              模块文件路径
/etc/httpd/conf/httpd.conf	                               主配置文件
/etc/httpd/conf.modules.d/*.conf                      模块配置文件
/etc/httpd/conf.d/*.conf	                                   辅助配置文件

。httpd命令

//语法:httpd [options]
//常用的options:
    -l      //查看静态编译的模块,列出核心中编译了哪些模块。 \
            //它不会列出使用LoadModule指令动态加载的模块
    -M      //输出一个已经启用的模块列表,包括静态编译在服务 \
            //器中的模块和作为DSO动态加载的模块
    -v      //显示httpd的版本,然后退出
    -V      //显示httpd和apr/apr-util的版本和编译参数,然后退出
    -X      //以调试模式运行httpd。仅启动一个工作进程,并且 \
            //服务器不与控制台脱离
    -t      //检查配置文件是否有语法错误

。curl命令 curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议。

curl支持以下功能:

1.https认证 2.http的POST/PUT等方法 3.ftp上传 4.kerberos认证 5.http上传 6.代理服务器 7.cookies 8.用户名/密码认证 9.下载文件断点续传 10.socks5代理服务器 11.通过http代理服务器上传文件到ftp服务器

//语法:curl [options] [URL ...]
//常用的options:
    -A/--user-agent <string>    //设置用户代理发送给服务器
    -basic              //使用Http基本认证
    --tcp-nodelay       //使用TCP_NODELAY选项
    -e/--referer <URL>      //来源网址
    --cacert <file>     //CA证书(SSL)
    --compressed        //要求返回时压缩的格式
    -H/--header <line>  //自定义请求首部信息传递给服务器
    -I/--head           //只显示响应报文首部信息
    --limit-rate <rate>     //设置传输速度
    -u/--user <user[:password]>     //设置服务器的用户和密码
    -0/--http1      //使用http 1.0版本,默认使用1.1版本。这个选项是数字0而不是字母o
    -o/--output     //把输出写到文件中
    -#/--progress-bar       //进度条显示当前的传送状态
//通过curl下载文件
[root@scl ~]# curl -o myblog.html https://blog.csdn.net/whell_scl
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                               Dload  Upload   Total   Spent    Left  Speed
100 15137    0 15137    0     0  47412      0 --:--:-- --:--:-- --:--:-- 47750
[root@scl ~]# ls
myblog.html

。编译安装httpd-2.4

httpd依赖于apr-1.4+,apr-util-1.4+,[apr-icon]

1.安装开发环境
[root@add ~]# yum groupinstall "Development Tools"

已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 autoconf.noarch.0.2.69-11.el7 将被 安装
--> 正在处理依赖关系 m4 >= 1.4.14,它被软件包 autoconf-2.69-11.el7.noarch 需要
--> 正在处理依赖关系 perl(Data::Dumper),它被软件包 autoconf-2.69-11.el7.noarch 需要
---> 软件包 automake.noarch.0.1.13.4-3.el7 将被 安装
--> 正在处理依赖关系 perl(Thread::Queue),它被软件包 automake-1.13.4-3.el7.noarch 需要
--> 正在处理依赖关系 perl(TAP::Parser),它被软件包 automake-1.13.4-3.el7.noarch 需要
---> 软件包 bison.x86_64.0.3.0.4-2.el7 将被 安装
---> 软件包 byacc.x86_64.0.1.9.20130304-3.el7 将被 安装
---> 软件包 cscope.x86_64.0.15.8-10.el7 将被 安装
--> 正在处理依赖关系 emacs-filesystem,它被软件包 cscope-15.8-10.el7.x86_64 需要
---> 软件包 ctags.x86_64.0.5.8-13.el7 将被 安装
---> 软件包 diffstat.x86_64.0.1.57-4.el7 将被 安装
---> 软件包 doxygen.x86_64.1.1.8.5-3.el7 将被 安装
---> 软件包 elfutils.x86_64.0.0.172-2.el7 将被 安装
---> 软件包 flex.x86_64.0.2.5.37-6.el7 将被 安装
---> 软件包 gcc.x86_64.0.4.8.5-36.el7 将被 安装
--> 正在处理依赖关系 cpp = 4.8.5-36.el7,它被软件包 gcc-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 glibc-devel >= 2.2.90-12,它被软件包 gcc-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 libmpfr.so.4()(64bit),它被软件包 gcc-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 libmpc.so.3()(64bit),它被软件包 gcc-4.8.5-36.el7.x86_64 需要
---> 软件包 gcc-c++.x86_64.0.4.8.5-36.el7 将被 安装
--> 正在处理依赖关系 libstdc++-devel = 4.8.5-36.el7,它被软件包 gcc-c++-4.8.5-36.el7.x86_64 需要
---> 软件包 gcc-gfortran.x86_64.0.4.8.5-36.el7 将被 安装
--> 正在处理依赖关系 libquadmath-devel = 4.8.5-36.el7,它被软件包 gcc-gfortran-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 libquadmath = 4.8.5-36.el7,它被软件包 gcc-gfortran-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 libgfortran = 4.8.5-36.el7,它被软件包 gcc-gfortran-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 libgfortran.so.3()(64bit),它被软件包 gcc-gfortran-4.8.5-36.el7.x86_64 需要
---> 软件包 git.x86_64.0.1.8.3.1-19.el7 将被 安装
--> 正在处理依赖关系 perl-Git = 1.8.3.1-19.el7,它被软件包 git-1.8.3.1-19.el7.x86_64 需要
--> 正在处理依赖关系 rsync,它被软件包 git-1.8.3.1-19.el7.x86_64 需要
--> 正在处理依赖关系 perl(Term::ReadKey),它被软件包 git-1.8.3.1-

已安装:
  autoconf.noarch 0:2.69-11.el7                                  
  automake.noarch 0:1.13.4-3.el7                                 
  bison.x86_64 0:3.0.4-2.el7                                     
  byacc.x86_64 0:1.9.20130304-3.el7                              
  cscope.x86_64 0:15.8-10.el7                                    
  ctags.x86_64 0:5.8-13.el7                                      
  diffstat.x86_64 0:1.57-4.el7                                   
  doxygen.x86_64 1:1.8.5-3.el7                                   
  elfutils.x86_64 0:0.172-2.el7                                  
  flex.x86_64 0:2.5.37-6.el7                                     
  gcc.x86_64 0:4.8.5-36.el7                                      
  gcc-c++.x86_64 0:4.8.5-36.el7                                  
  gcc-gfortran.x86_64 0:4.8.5-36.el7                             
  git.x86_64 0:1.8.3.1-19.el7                                    
  indent.x86_64 0:2.2.11-13.el7                                  
  intltool.noarch 0:0.50.2-7.el7                                 
  libtool.x86_64 0:2.4.2-22.el7_3                                
  patch.x86_64 0:2.7.1-10.el7_5                                  
  patchutils.x86_64 0:0.3.3-4.el7                                
  rcs.x86_64 0:5.9.0-5.el7                                       
  redhat-rpm-config.noarch 0:9.1.0-87.el7.centos                 
  rpm-build.x86_64 0:4.11.3-35.el7                               
  rpm-sign.x86_64 0:4.11.3-35.el7                                
  subversion.x86_64 0:1.7.14-14.el7                              
  swig.x86_64 0:2.0.10-5.el7                                     
  systemtap.x86_64 0:3.3-3.el7                                   

作为依赖被安装:
  boost-date-time.x86_64 0:1.53.0-27.el7                         
  boost-system.x86_64 0:1.53.0-27.el7                            
  boost-thread.x86_64 0:1.53.0-27.el7                            
  bzip2.x86_64 0:1.0.6-13.el7                                    
  cpp.x86_64 0:4.8.5-36.el7                                      
  dwz.x86_64 0:0.11-3.el7                                        
  dyninst.x86_64 0:9.3.1-2.el7                                   
  efivar-libs.x86_64 0:36-11.el7                                 
  emacs-filesystem.noarch 1:24.3-22.el7                          
  gdb.x86_64 0:7.6.1-114.el7                                     
  gettext-common-devel.noarch 0:0.19.8.1-2.el7                   
  gettext-devel.x86_64 0:0.19.8.1-2.el7                          
  glibc-devel.x86_64 0:2.17-260.el7                              
  glibc-headers.x86_64 0:2.17-260.el7                            
  gnutls.x86_64 0:3.3.29-8.el7                                   
  kernel-debug-devel.x86_64 0:3.10.0-957.el7                     
  kernel-headers.x86_64 0:3.10.0-957.el7                         
  libdwarf.x86_64 0:20130207-4.el7                               
  libgfortran.x86_64 0:4.8.5-36.el7                              
  libmodman.x86_64 0:2.0.1-8.el7                                 
  libmpc.x86_64 0:1.0.1-3.el7                                    
  libproxy.x86_64 0:0.4.11-11.el7                                
  libquadmath.x86_64 0:4.8.5-36.el7                              
  libquadmath-devel.x86_64 0:4.8.5-36.el7                        
  libstdc++-devel.x86_64 0:4.8.5-36.el7                          
  m4.x86_64 0:1.4.16-10.el7                                      
  mokutil.x86_64 0:15-1.el7.centos                               
  mpfr.x86_64 0:3.1.1-4.el7                                      
  neon.x86_64 0:0.30.0-3.el7                                     
  nettle.x86_64 0:2.7.1-8.el7                                    
  pakchois.x86_64 0:0.4-10.el7                                   
  perl-Data-Dumper.x86_64 0:2.145-3.el7                          
  perl-Error.noarch 1:0.17020-2.el7                              
  perl-Git.noarch 0:1.8.3.1-19.el7                               
  perl-TermReadKey.x86_64 0:2.30-20.el7                          
  perl-Test-Harness.noarch 0:3.28-3.el7                          
  perl-Thread-Queue.noarch 0:3.02-2.el7                          
  perl-XML-Parser.x86_64 0:2.41-10.el7                           
  perl-srpm-macros.noarch 0:1-8.el7                              
  rsync.x86_64 0:3.1.2-4.el7                                     
  subversion-libs.x86_64 0:1.7.14-14.el7                         
  systemtap-client.x86_64 0:3.3-3.el7                            
  systemtap-devel.x86_64 0:3.3-3.el7                             
  systemtap-runtime.x86_64 0:3.3-3.el7                           
  trousers.x86_64 0:0.3.14-2.el7                                 
  unzip.x86_64 0:6.0-19.el7                                      
  zip.x86_64 0:3.0-11.el7                                        

完毕!
2.2.安装相关依赖包
[root@add ~]# yum -y install openssl-devel pcre-devel expat-devel libtool
3.下载apr-1.6.3和apr-util-1.6.1和httpd-2.4
首先准备3个httpd包
      apr-util-1.6.1.tar.bz2 
			apr-1.6.3.tar.bz2
       httpd-2.4.34.tar.bz2
然后用Xftp传递进Xshell里面

4.解压下好的tar包
[root@aad src]#  tar xf apr-1.6.3.tar.bz2 
[root@aad src]# tar xf apr-util-1.6.1.tar.bz2 
[root@aad ~]# tar xf httpd-2.4.34.tar.bz2
[root@aad src]# ls
apr-1.6.3          apr-util-1.6.1          debug
apr-1.6.3.tar.bz2  apr-util-1.6.1.tar.bz2  kernels
5.安装
[root@aad src]# cd apr-1.6.3
[root@aad apr-1.6.3]# vim configure
` # $RM "$cfgfile"        //将此行加上注释,或者删除此行`
[root@aad apr-1.6.3]# ./configure --prefix=/usr/local/apr
[root@aad apr-1.6.3]# make && make install

// 编译安装apr-util-1.6.1
[root@aad apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@aad apr-util-1.6.1]# make && make install

// 编译安装httpd-1.4
[root@add httpd-2.4.34]# ./configure --prefix=/usr/local/apache \
> --sysconfdir=/etc/httpd24 \
> --enable-so \
> --enable-ssl \
> --enable-cgi \
> --enable-rewrite \
> --with-zlib \
> --with-pcre \
> --with-apr=/usr/local/apr \
> --with-apr-util=/usr/local/apr-util/ \
> --enable-modules=most \
> --enable-mpms-shared=all \
> --with-mpm=prefork

[root@add httpd-2.4.34]# make && make install

添加环境变量:
[root@add ~]# echo "export PATH=/usr/local/apache/bin:$PATH" >/etc/profile.d/httpd.sh
[root@add ~]# . /etc/profile.d/httpd.sh 
[root@add ~]# which httpd
/usr/local/apache/bin/httpd

在浏览器输入ip验证:
[root@add ~]# /usr/local/apache/bin/apachectl start             //  启动服务
[root@add~]# vim /etc/httpd24/httpd.conf 
ServerName www.example.com:80         //  将这一行前面的注释去掉
[root@add ~]# systemctl stop firewalld    //  关闭防火墙