Apache

Apache

Apache介绍

Apache源于NCSAhttpd服务器(National center for supercomputing Applications,简称NCSA),经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自”a patchy server“的读音,意思是充满补丁的服务器。因为它是自由软件,所以不断的有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并且可以作为代理服务器使用

Apache源码包下载

wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.29.tar.gz

Linux系统中源代码包安装过程

配置(configure)

  • 每个软件的源代码目录中都会存在一个名为configure的脚本文件,配置和安装过程被configure脚本中一系列命令行选项控制。每个软件包的配置方式是不同的,所以可以在其源代码目录中,通过./configure --help命令了解所有可用的编译选项及简短解释。配置好后,便可以开始编译模块。

编译(make)

  • 软件配置过程成功完成以后,会在当前目录下生成一个MAKEFILE文件。可以通过make命令按MAKEFILE文件的配置进行编译,编译成功以后则可执行的二进制的文件,便可以开始进行软件安装了。

安装(make install)

  • 根据配置和编译过程,在Linux命令行中通过执行make install命令,将软件安装到指定的位置

Apache安装

设计安装选项

  • 指定安装位置 usr/local/apache2/
  • 指定配置文件安装位置etc/httpd/

安装过程

  • 查询是否有低版本的Apache

    • rpm -qa|grep -i httpd
  • 如果存在低版本的Apache需要卸载

    • rpm -e httpd-manual --nodeps
    • rpm -e redhat-config-httpd --nodeps
    • rpm -e httpd --nodeps
  • 解压并删除apache源码包

    • tar zxvf httpd-2.4.29.tar.gz
    • rm -rf *.tar.gz
  • 配置Apache

    • ./configure \   # 执行当前目录下软件自带的配置命令
      --prefix=/usr/local/apache2 \   # 指定Apache软件安装的位置
      --sysconfdir=/etc/httpd \   # 指定Apache服务器的配置文件存放位置
      --with-z=/usr/local/zlib \  # 指定zlib库文件的位置
      --disable-userdir \ # 请求的映像到用户特定目录
      --enable-so \   # 以动态共享对象(DSO)编译
      --enable-rewrite=shared \   # 基于规则的URL操控
      --enable-expires=shared \   # 期满头控制
      --enable-deflate=shared \   # 缩小传输编码的支持
      --enable-static-support \   # 建立一个静态链接版本的支持
      
  • 编译和安装Apache

    make && make install

  • 启动、关闭和重启Apache服务

    • /usr/local/apache2/bin/apachectl start`
    • /usr/local/apache2/bin/apachectl stop
    • /usr/local/apache2/bin/apachectl restart
  • 查看Apache服务器是否开启成功

    • netstat -tnl
  • 设置Apache开机自启动

    • echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
  • 查看Apache开机自启动是否设置成功

    • tail -5 /etc/rc.d/rc.local

目录结构说明

bin Apache执行文件的目录

  • apachectl
  • htpasswd

cgi-bin 预设给一些CGI网页程序存放的目录

error 默认错误应答文件存放的目录

htdocs 默认Web文档根目录

icons 预设的小图标存放的目录

logs 默认日志存放的目录

  • 动态查看访问日志
    • tail -f access_log

man 帮助手册存放的目录

modules 动态加载模块存放的目录

检查http.conf文件配置语法

# linux
/usr/local/apache2/bin/apachectl -t

# windows
C:\APP\myphp_www\PHPTutorial\Apache\bin\httpd.exe -t

httpd.conf文件配置

### 全局配置 Global Environment

# Apache服务器的根目录
ServerRoot  "usr/local/apache2"

# 监听IP、端口和协议
# Listen [ip]:protnumber[protocol]
Listen 80

# 加载模块
# LoadModule 模块名称 模块文件路径全名
# 服务器在输出内容到客户端以前,将内容压缩,节约带宽
LoadModule deflate_module modules/mod_deflate.so
# 允许通过配置文件控制http协议的过期时间、缓存控制等
LoadModule expires_module modules/mod_expires.so
# 通过一定的规则实时重写URL请求
LoadModule rewrite_module modules/mod_rewrite.so

# 指定提供服务的子进程的用户和组
# User 用户名
User daemon
# Group 组名称
Group daemon

# 网站管理员邮箱,网站出错时会显示在客户端
ServerAdmin [email protected]

# 文档根目录,站点存放的位置
DocumentRoot "/usr/local/apache2/htdocs"

# 服务器用于辨识自己主机名和端口号
ServerName www.example.com:80

# 错误日志存放位置
ErrorLog "logs/error_log"

# 访问日志存放位置
CustomLog "logs/access_log" common


    # 目录索引
    DirectoryIndex index.html index.php index.py /php-bin/index.php



## extra/httpd-default.conf全局配置选项

# 超时时间,单位秒
Timeout 300
# 是否使用长链接
KeepAlive On
# 一个长链接中最大请求次数
MaxKeepAliveRequests 100
# 一个长链接中两次请求之间的超时时间,单位秒
KeepAliveTimeout 5

## extra/httpd-mpm.conf(多路分支模块)全局配置选项

# 当服务器是Linux时生效

    # 服务器启动时启动的子进程数
    StartServers          5
    # 最小的空闲子进程数
    MinSpareServers       5
    # 最大的空闲子进程数
    MaxSpareServers      10
    # 同一时间服务器允许连接的客户端数量
    MaxClients          150
    # 每个子进程的生存期内最大的请求数
    MaxRequestsPerChild   0


# 当服务器是Windows时生效

    ThreadsPerChild      150
    MaxRequestsPerChild    3000   


# 当Apache版本大于2.2是生效
2.2>


# 当mpm_winnt_module模块不存在时生效



# Directory作用于目录

    # Files作用于文件
    
    


# Location作用于网络空间
# 控制http://you.example.com/private



# 可以使用正则表达式



# 可以使用正则表达式



# 可以使用正则表达式



# 给路径设置别名
Alias /abc/ "/var/www/html/"

    # Indexes允许列出目录下所有文件
    # FollowSymlinks是否使用文件链接
    Options Indexes FollowSymlinks
    # 不适用.htaccess文件中的配置
    AllowOverride None
    # 先使用允许规则再使用拒绝规则
    Order allow,deny
    # 允许任何IP或主机访问
    Allow from all
    # 拒绝192.168.*的IP访问
    deny from 192.168.*


## extra/httpd-vhosts.conf全局配置选项

    # 管理员邮箱
    ServerAdmin [email protected]
    # 网站根目录
    DocumentRoot "C:\APP\myphp_www\PHPTutorial\WWW\www.baidu.com"
    # 服务名(域名)
    ServerName www.baidu.com
    # 错误日志存放位置
    ErrorLog "logs/www.baidu.com_error_log"
    # 访问日志存放位置
    CustomLog "logs/www.baidu.com_log" common
    
        # 允许文件索引、允许使用文件链接
        Options Indexes FollowSymLinks
        # 不允许使用.htaccess文件
        AllowOverride None
        # 先使用允许规则再使用拒绝规则
        Order allow,deny
        # 允许所有访问者
        Allow from all
    

虚拟主机

基于IP地址的虚拟主机

需要在同一台主机上绑定多个IP,在每个IP上建立一个虚拟主机,由于IP地址缺乏,此种方法不常使用

基于域名的虚拟主机

所有的虚拟主机都使用同一个IP地址,通过不同的域名来标识不同的虚拟主机

你可能感兴趣的:(Apache)