zoukankan      html  css  js  c++  java
  • Linux(八)Apache服务器

    一 简介

      1 www:world wide web 万维网

        http 协议: 超文本传输协议

        HTML语言: 超文本标识语言

      2 URL:统一资源定位 协议+域名:端口+网页文件名
        http://www.sina.com.cn:80/11/index.html

      3 搭建www的服务器的方法
        windows      IIS  +asp+SQLserver
             Internet Information server
        Linux    apache+mysql+php

    二 安装
      1、lamp源码安装
        生产环境,技术要求高,复杂
      2、rpm包安装 yum安装
        httpd
        mysql
        mysql-server
        php
        php-devel
        php-mysql

    三 相关文件

      apache配置文件
        源码包安装:/usr/lcoal/apache2/etc/httpd.conf
              /usr/local/apache2/etc/extra/*.conf

      rpm包安装:/etc/httpd/conf/httpd.conf

      默认网页保存位置:
        源码包:/usr/local/apache2/htdocs/
        rpm包安装:/var/www/html/

      日志保存位置
        源码包:/usr/local/apache2/logs/
        rpm包: /var/log/httpd/
        rpm包默认使用日志处理程序 /var下都会轮替 源码包才需要设置
      日志处理:
        1日志切割 apache自带日志里面自带日志切割
        2日志轮替 linux自带日志管理logrorate.conf
          加入/usr/local/apache2/logs/access_log{
              daily
              rotate 30
            }
          logrotate -f /etc/logrotate.conf

        所有日志都要进行日志轮替

    四 配置文件

      vi /root/.bashrc
        alias sta=’/usr/local/apache2/bin/apachectl start’
        alias sto=’/usr/local/apache2/bin/apachectl stop’

      source /root/.bashrc

      注意:apache配置文件严格区分大小写

      1 针对主机环境的基本配置

        ServerRoot apache主目录
        Listen 监听端口
        LoadModule 加载的相关模块

          User
          Group 用户和组
          ServerAdmin 管理员邮箱
          ServerName 服务器名(没有域名解析时,使用临时解析。不开启)
          ErrorLog "logs/error_log 错误日志
          CustomLog "logs/access_log" common 正确访问日志
          DirectoryIndex index.html index.php 默认网页文件名,优先级顺序
          Include etc/extra/httpd-vhosts.conf 子配置文件中内容也会加载生效

      2 主页目录及权限

        DocumentRoot "/usr/local/apache2//htdocs"
      主页目录

        <Directory "/usr/local/apache2//htdocs">
          #Directory关键字定义目录权限

          Options Indexes FollowSymLinks
          #options
            None:没有任何额外权限
            All: 所有权限
            Indexes:浏览权限(当此目录下没有默认网页文件时,显示目录内容)
            FollowSymLinks:准许软连接到其他目录
          AllowOverride None
          #定义是否允许目录下.htaccess文件中的权限生效
            None:.htaccess中权限不生效
            All:文件中所有权限都生效
            AuthConfig:文件中,只有网页认证的权限生效。

          Require all granted 访问控制列表 403错误 404错误

    #定义此目录的允许访问权限
    例1:仅允许IP为192.168.1.1的主机访问
    Require all denied
    Require ip 192.168.1.1

    例子2.仅允许192.168.1.0/24网络的主机访问
    Require all denied
    Require ip 192.168.1.0/24

    例子3.禁止192.168.1.2的主机访问,其他的都允许访问,
    <RequireAll>
    Require all granted
    Require not ip 192.168.1.2
    </RequireAll>

    例子4.允许所有访问,
    Require all granted

    例子5.拒绝所有访问,
    Require all denied


      3 目录别名 用途 扩展网站目录,增加服务器,使用二级域名,使用目录别名
          子配置文件名 etc/extra/httpd-autoindex.conf

              Alias /icons/   "/usr/local/apache2//icons/"
             apache以为在这里    实际目录位置
        定义别名    /icons/----
          http://192.168.1.253/icons/

          <Directory "/usr/local/apache2//icons">
            Options Indexes MultiViews
            AllowOverride None
            Require all granted
          </Directory>

      4 用户认证
      限制特定目录,只有指定用户可以访问。

        1) 建立需要保护的目录

           使用别名,在系统位置建立目录,然后保护

           mkdir -p /share/soft

        2)修改配置文件,允许权限文件生效
          vi /usr/local/apache2/etc/httpd.conf
          Alias /soft/ "/share/soft/"

          <Directory "/share/soft">
            Options Indexes
            AllowOverride All          #开启权限认证文件.htaccess
            Require all granted
          </Directory>

        重启apache

        3)在指定目录建立权限文件
        cd /share/soft

        vi .htaccess #不区分大小写
          AuthName "50 docs"          #提示信息
          AuthType basic              #加密类型
          AuthUserFile /share/apache.passwd    #密码文件,文件名自定义。
          require valid-user            #允许密码文件中所有用户访问

      4)建立密码文件,加入允许访问的用户。用户和系统用户无关
        /usr/local/apache2/bin/htpasswd -c /share/apache.passwd test1
          -c 建立密码文件,只有添加第一个用户时,才能-c
        /usr/local/apache2/bin/htpasswd -m /share/apache.passwd test2
          -m 再添加更多用户时

    5 虚拟主机


    1)分类
      基于IP的虚拟主机: 一台服务器,多个IP,搭建多个网站
      基于端口的虚拟主机: 一台服务器,一个ip,搭建多个网站,每个网络使用不同端口访问
      基于名字的虚拟主机: 一台服务器,一个ip,搭建多个网站,每个网站使用不同域名访问

    2)步骤:
      ① 解析试验域名
        www.sina.com
        www.sohu.com
      C:WINDOWSsystem32driversetchosts      windows
      /etc/hosts                          Linux


      ② 规划网站主目录
          /share/sina--------------www.sina.com
          /share/sohu ------------ www.sohu.com

      ③ 修改配置文件
        vi /usr/local/apache2/etc/httpd.conf
        Include etc//extra/httpd-vhosts.conf
        #打开虚拟主机配置文件
        vi /usr/local/apache2/etc/extra/httpd-vhosts.conf

    <Directory "/usr/local/apache2/htdocs/sina">
      Options Indexes
      AllowOverride None
      Require all granted
    </Directory>

    <Directory "/usr/local/apache2/htdocs/sohu">
      Options Indexes
      AllowOverride None
      Require all granted
    </Directory>

    <VirtualHost 192.168.150.253>
    #注意,只能写ip
    ServerAdmin webmaster@sina.com
    #管理员邮箱
    DocumentRoot "/usr/local/apache2/htdocs/sina"
    #网站主目录
    ServerName www.sina.com
    #完整域名
    ErrorLog "logs/sina-error_log"
    #错误日志
    CustomLog "logs/sina-access_log" common
    #访问日志
    </VirtualHost>

    <VirtualHost 192.168.150.253>
    ServerAdmin webmaster@sohu.com
    DocumentRoot "/usr/local/apache2/htdocs/sohu"
    ServerName www.sohu.com
    ErrorLog "logs/sohu.com-error_log"
    CustomLog "logs/sohu.com-access_log" common
    </VirtualHost>

    6 rewrite 重写功能 URL
    在URL中输入一个地址,会自动跳转为另一个

      1)域名跳转 www.sina.com ------> www.sohu.com

        开启虚拟主机,并正常访问

        [root@localhost ~]# vi /usr/local/apache2/etc/httpd.conf
        LoadModule rewrite_module modules/mod_rewrite.so
        #打开重写模块,记得重启apache

          修改配置文件,使sina目录的.htaccess文件生效

          [root@localhost etc]# vi extra/httpd-vhosts.conf

    <Directory "/usr/local/apache2/htdocs/sina">
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>

      vi /usr/local/apache2/htdocs/sina/.htaccess
        RewriteEngine on                #开启rewrite功能    
        RewriteCond %{HTTP_HOST} www.sina.com  #把以www.sina.com 开头的内容赋值给HTTP_HOST变量
        RewriteRule .* http://www.sohu.com      #.* 输入任何地址,都跳转到http://www.sohu.com

      2)网页文件跳转
        vi /usr/local/apache2/htdocs/sina/.htaccess
        RewriteEngine on
        RewriteRule index(d+).html index.php?id=$1
        # 输入index(数值).html时,跳转到index.php文件,同时把数值当成变量传入index.php

    7 常用子配置文件

      httpd-autoindex.conf apache系统别名

      httpd-default.conf 线程控制 *

      httpd-info.conf 状态统计网页

      httpd-languages.conf 语言编码 *

      httpd-manual.conf apache帮助文档

      httpd-mpm.conf 最大连接数 *

      httpd-multilang-errordoc.conf 错页面 *

      httpd-ssl.conf ssl安全套接字访问

      httpd-userdir.conf 用户主目录配置

      httpd-vhosts.conf 虚拟主机

  • 相关阅读:
    numpy数组行列拼接
    Dropout和BN层的模式切换
    利用sklearn计算决定系数R2
    从曲线图中提取原始数据
    Matlab在极坐标中绘图
    MATLAB中scatter绘制散点图
    说一说你对HTML5语义化的理解
    第十一章 前端开发-html
    详解mysql int类型的长度值问题
    进程间通信(队列和管道)
  • 原文地址:https://www.cnblogs.com/yexiang520/p/5645313.html
Copyright © 2011-2022 走看看