zoukankan      html  css  js  c++  java
  • apache-实战(一)


     Apache

    1.html的完整格式

    # vim /var/www/html/index.html
    <html>
    <head>
    <title>我要</title>
    </head>
    <body>
    <center><h1>这铁棒有何用?</h1></center>
    </body>
    </html>

    #写到网站根目录下的index.html下,然后看看能不能访问,不能就自个找原因去

    2.修改网站根目录

    #vim /etc/httpd/conf/httpd.conf

    DocumentRoot "/www"   --修改网站根目录为/www
    <Directory "/www">   --把这个也对应的修改为/www

    # /etc/init.d/httpd reload   --这是刷新不是重启服务器
    # mkdir /www   -- 建立httpd服务的根目录
    # echo 'Hello World' > /www/index.html    --修改根目录后,重写一个主页文件到/www,然后自己测试

    3.修改主页类型或者主页名

    #vim /etc/httpd/conf/httpd.conf

    DirectoryIndex index.php index.html.var   --定义主页文件支持的格式,将其改一下

    # echo 'php main page' > /www/index.php    

    再次访问

    4.修改语言集和字符集

    vim /etc/httpd/conf/httpd.conf
    685 DefaultLanguage zh-CN --默认语言集打开注释,并改为简体中文zh-CN

    743 LanguagePriority zh-CN en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-TW --语言优先级,把zh-CN写到最前

    759: AddDefaultCharset UTF-8 --字符编码,如果中文的话,有可能需要改为gb2312或者gbk,因你的网站文件的默认编码而异

    常见的可以显示中文的字符集有:gbk,gb2312,gb18030,utf-8

    --扩展:
    windows默认的字符集是gb2312
    linux默认的字符集是utf-8

    ##########一点小知识########

    关于apache的标签,容器(访问控制)

    directory (目录) files(文件) location (位置,url统一资源定位)

    <Directory "/www"> --对/www目录进行的控制
    Options Indexes FollowSymLinks --允许列表,符号链接
    AllowOverride None --不使用.htaccess控制
    Order allow,deny --指定的是先允许,后拒绝
    Allow from all --针对/www目录的访问权限的控制,这两句代表允许所有访问
    </Directory> --容器结束
    容器内控制选项详解:
    indexes --指当找不到默认的主页文件时,就把此目录下的文件或者目录以列表形式显示出来
    FollowSymlinks --允许符号链接,扩展了网站根目录,允许链接到网站根目录以外
    allowoverride none --可以把none改为all来允许.htaccess控制
    order allow,deny --指定的是先允许,后拒绝
    allow from all --指定允许所有

     ########小知识结束#########

    5.把网站的文件修改成目录列表的形式 

    条件1.Options Indexes FollowSymLinks --相应目录要有indexes参数(将一个目录指定为httpd服务的家目录)
    条件2.没有主页文件
    条件3.符合上面两个条件,就会访问到redhat的欢迎页面
    # vim /etc/httpd/conf.d/welcome.conf --注释掉这个欢迎页面,或者是删除它
    # /etc/init.d/httpd reload --重新装载httpd服务
    # elinks 127.0.0.1 --可以看到是以列表形式显示了

    6.访问权限控制 --注意这些访问权限控制是针对容器的

    Order allow,deny
    Allow from all --允许所有

    Order allow,deny
    deny from all --拒绝所有

    Order allow,deny
    allow from all
    deny from 10.0.0.2 --允许所有,但拒绝此IP

    Order deny,allow
    deny from all
    allow from 10.0.0.2 --拒绝所有,但允许此IP

    Order allow,deny
    allow from all
    deny from all --拒绝所有

    Order allow,deny
    deny from all
    allow from all --还是拒绝所有

    Order allow,deny
    deny from all
    allow from 10.0.0.2 --仍然是拒绝所有

    7.files 容器 --针对文件的控制

    <Directory "/www">

    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    <files "1"> --表示2这个客户端不能访问/www/1,而且如果要控制/www/bbs/1这个文件,不能在这里写成<files "bbs/1">,需要在/www/bbs这个目录的directory容器里再嵌套files标签来控制
    order allow,deny
    allow from all
    deny from 10.0.0.2
    </files>
    </Directory>

    <files "/www/1">
    order allow,deny
    deny from all
    </files> --这种写法没有生效,不对,所以要files容器嵌套到目录容器内部,要上面的那种写法

    <files "1">
    order allow,deny
    deny from all --整个文档目录都生效
    </files>

    --下面这段是apache的默认的一个files容器的配置示例
    <Files ~ "^.ht"> --以.ht开头的文件不被客户端用户看到 ~是匹配
    Order allow,deny
    Deny from all
    </Files>

    注意:Files容器对配置的目录以及子目录起作用,对上一级目录没有影响
    Files容器不在任何一个目录,将会对整个数据目录起作用

    8.location 容器(对URL进行控制)


    <Location "/bbs">
    order allow,deny
    deny from all
    </Location>
    --这是对http://IP/bbs 这种URL来进行权限控制


    --location容器有时候和directory有可能重合,并且配置有冲突,(如果一个是允许,一个是拒绝,无论是location拒绝,还是directory拒绝,最终结果都是拒绝的)下面这种情况,http://IP/bbs是不能访问的

    <Location "/bbs">
    order allow,deny
    deny from all
    </Location>

    <Directory "/www/bbs">
    order allow,deny
    allow from all
    </Directory>

    --注意:在rhel6里,有细微变化,location的优先级要高

    9.对网站目录使用apache的基本验证(一般指使用用户名和密码来确认这个用户的身份)功能

      1. .htaccess

      # vim /www/.htaccess   --对哪个目录进行限制,就在哪个目录下建立此文件

      authname "please input your username and password! @_@"
      authtype basic
      authuserfile /etc/httpd/userpasswd
      require valid-user

      # vim /etc/httpd/conf/httpd.conf

      <Directory "/www">
      Options Indexes FollowSymLinks
      AllowOverride all --改成all,支持.htaccess加密
      Order allow,deny
      Allow from all
      </Directory>

      2.htpasswd

      htpasswd -c /etc/httpd/userpasswd aaa  --创建此文件,并加入一个用户,自定义密码,注意此用户与系统普通用户无关
      New password:
      Re-type new password:
      Adding password for user aaa


      # htpasswd /etc/httpd/userpasswd bbb  --再增加一个用户,文件已经存在,无需在创建,所以不需-c参数
      New password:
      Re-type new password:
      Adding password for user bbb


      # cat /etc/httpd/userpasswd
      aaa:JscuRCtWV0Sh.
      bbb:C6wrx4pFco/lk --密码为密文

    10.apache的alias跳转(可以将不是网站家目录的目录加入进来)

    # vim /etc/httpd/conf/httpd.conf
    Alias /test "/test"

    <Directory "/www">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

    可以做Alias跳转,也可以做软链接

    11.错误页面

    ls /var/www/error/404.jpg --准备一个图片放到这个位置

    # vim /etc/httpd/conf/httpd.conf --修改主配置文件,指向你的这个图片路径
    ErrorDocument 404 /error/404.jpg

    # /etc/init.d/httpd restart

    ====================================

    Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
    [ OK ]
    出现以上情况,就是没绑定主机名
    # hostname www.cluster.com
    # vim /etc/sysconfig/network
    HOSTNAME=www.cluster.com

    # vim /etc/hosts
    10.0.0.61 www.cluster.com

    启动apache遇到错误:httpd: Could not reliably determine the server's fully qualified domain name

    编辑httpd.conf文件,搜索"#ServerName"(大概在276行)
    # vim /etc/httpd/conf/httpd.conf
    ServerName www.example.com:80 --将这行的注释打开就好了
    ServerName localhost:80
    再重新启动apache 即可。
    # service httpd restart

    12.301跳转加禁止IP访问

    禁止IP访问

    <VirtualHost *:80>
    ServerName 192.168.1.1           #本机IP
    <Location />
    Order Allow,Deny            #全部拒绝
    Deny from all
    </Location>
    </VirtualHost>

    301跳转

    RewriteEngine on
    RewriteCond %{http_host} ^http.com [NC]                   #输入的域名
    RewriteRule ^(.*)$ http://www.http.com/$1 [R=301,L]         #跳转后的
    DirectoryIndex index.html index.php index.htm
    

      


  • 相关阅读:
    为什么说性别字段不适合做索引?
    过程数据的记录(事务问题)
    两个系统操作同一条表记录涉及的事务的坑(依护系统)
    mybatis插件自动生成代码报错。
    ORACLE使用plsql和其他工具进行表结构和数据迁移
    ORACLE获取建表SQL
    学习英语的技巧
    Oracle的用户管理
    Jmeter做压力测试
    强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)
  • 原文地址:https://www.cnblogs.com/wazy/p/8047793.html
Copyright © 2011-2022 走看看