精华内容
下载资源
问答
  • 设置web站点的根目录

    万次阅读 2011-10-13 22:51:02
    设置web站点的根目录  (1)元素的appBase属性所设置的应用程序基准目录中的ROOT子目录 (2)使用server.xml文件中的元素: 2设置web站点的虚拟子目录 (1) 使用server.xml文件中的 (2) 特定目录中的xml文件
     
    

    设置web站点的根目录

          (1)<Host>元素的appBase属性所设置的应用程序基准目录中的ROOT子目录

    (2)使用server.xml文件中的<Context>元素:<Context path=” ” docBase=” d:\text” debug=”0”/>

    2设置web站点的虚拟子目录

    (1)    使用server.xml文件中的<Context path=”/it315” docBase=”d:\myweb”>

    (2)    特定目录中的xml文件中包含<Context>元素

    (3)    <Host>元素的appBase属性所设置的应用程序基准目录中的含有WEB-INF/web.xml文件的子目录

    (4)    <Host>元素的appBase属性所设置的应用程序基准目录中的war文件(文件压缩放入默认根目录)

    3、部署描述符与目录的默认网页

                  部署描述符文件:conf/web.xml

    目录默认符网页文件:

                  <welcome-file-list>

                         <welcome-file>index.html</welcome-file>

                         <welcome-file>index.htm</welcome-file>

                         <welcome-file>index.jsp</welcome-file>

                  </welcome-file-list>

    二、配置虚拟主机

           1、浏览器访问web资源的过程

           2、虚拟主机及实现原理

                  (1)目的:在一台计算机上设置多个web站点,为每个站点设置不同的主目录和虚拟子目录,然后每个站点作为独立的网站分配给不同的公司或部门。

                  (2)好处:多个部门公司共用一台计算机,而且都有各自独立的网站。

                  (3)原理:

    a)web服务器的每一个web站点必须设置不同的标记信息

    b)web浏览器发出的链接和请求信息中包含web站点的标记信息

           3、  (1)基于主机名的虚拟主机

                  (2)基于主机名的虚拟主机----网络环境

    a)Web浏览器要访问基于主机名的虚拟主机时,在访问URL中必须采用主机名,而不能采用IP地址

    b)在网络系统中建立主机名与IP地址的映射关系,即必须将主机名添加到名称解析系统

                                使用客户机本地的Hosts 文件:C:\WINDOWS\system32\drivers\etc\hosts

                  (3)基于端口号的虚拟主机

                   a)一个<Connector>元素用于配置一个对外的连接器,对于WEB服务器上的每一个监听端口号,都要使用一个单独的<Connector>元素。

    b)  一个<Connector>元素对应的连接器必须有一个相关的<Engine>元素,将一个或多个<Connector>元素与某个<Engine>元素相关联的方式就是将它们嵌套在同一个<Service>元素中。

    4、基于IP地址的虚拟主机

    展开全文
  • 1、asp.net 定制简单的错误处理页面 通常web应用程序在发布后,为了给用户一个友好界面和使用体验,都会在错误发生时跳转至一个...2、asp.net 通过web.config设置站点默认访问页面优先级 设置靠前的优先级别越高
    1、asp.net 定制简单的错误处理页面

    通常web应用程序在发布后,为了给用户一个友好界面和使用体验,都会在错误发生时跳转至一个自定义的错误页面,而不是asp.net向用户暴露出来的详细的异常列表。
     简单的错误处理页面可以通过web.config来设置
    <configuration>
      <system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
      <error statusCode="403" redirect="NoAccess.htm" />
      <error statusCode="404" redirect="FileNotFound.htm" />
      </customErrors>
    </system.web>
    </configuration>

    mode说明:
    On 指定启用自定义错误。如果未指定 defaultRedirect,用户将看到一般性错误。
     
    Off 指定禁用自定义错误。这允许显示标准的详细错误。
     
    RemoteOnly 指定仅向远程客户端显示自定义错误并且向本地主机显示 ASP.NET 错误。这是默认值。
     
    默认值为 RemoteOnly。


    如果想通过编程的方式来呈现错误原因,可以通过Page_Error事件来做这件事.
     另一种方式则可以通过Global.asax来实现,我觉得这种方式较为方便,另外如果能结合一个单独的更加友好的页面,则看来起更舒服一些
     
    Global.asax(如果需要,可以记录错误日志)

     void Application_Error(object sender, EventArgs e) 
         {
             Exception objErr = Server.GetLastError().GetBaseException();
             string error = "发生异常页: " + Request.Url.ToString() + "<br>";
             error += "异常信息: " + objErr.Message + "<br>";
             Server.ClearError();
             Application["error"] = error;
             Response.Redirect("~/ErrorPage/ErrorPage.aspx");
         }
    


    再将错误信息显示在ErrorPage.aspx页面上,或者只记录日志不做显示。


    2、asp.net 通过web.config设置站点默认访问页面优先级
         设置靠前的优先级别越高
      
    <system.webServer>
        <defaultDocument>
          <files>
            <clear/>
            <add value="default.aspx"/>
            <add value="index.htm"/>
            <add value="index.html"/>
            <add value="index.aspx"/>
            <add value="Default.htm"/>
            <add value="Default.asp"/>
            <add value="iisstart.htm"/>
          </files>
        </defaultDocument>
      </system.webServer>

    展开全文
  • linux apache web站点配置详解

    万次阅读 2014-06-20 22:38:53
    linux apache web站点配置详解 注意:请先在"安全性及防火墙设置"打开对www服务的访问 ...DocumentRoot:设置Web站点的主目录,如: DocumentRoot "/wu" //该目录必须已经存在 注:如果更改主目

    linux apache web站点配置详解

    注意:请先在"安全性及防火墙设置"打开对www服务的访问

    httpd的配置文件为/etc/httpd/conf/httpd.conf
    试修改以下指令:

    1. Web站点的主目录

    DocumentRoot:设置Web站点的主目录,如:
    DocumentRoot "/wu" //该目录必须已经存在

    注:如果更改主目录后,在浏览器中访问是出现如下错误提示:

    Forbidden You don't have permission to access / on this server.

    Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

    那么很可能的原因是与SELinux有关,最简单的办法就是把SELinux关掉或删掉,实在不行去xwindow里找出SELinux程序,把安全级别调低一点就好。 不过最好的办法还是改变一下文件夹的安全属性:

    #chcon -R -t httpd_user_content_t $DocumentRoot/

     

    2. 站点主页设置


    Directorylndex:设置站点主页,如:
    Directorylndex index.htm index.html lindex.php

    3. 设置中文显示


    AddDefaultCharset:添加默认字符集,此项设置将覆盖网页本身的字符集设置,故建议将它注释掉。
    LanguagePriority:语言优先级
    建议做如下修改:
    #AddDefaultCharset UTF-8
    LanguagePriority zh-CN zh-TW en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv

    4. 是否允许目录列表

    <Directory "......"> 
    Options Indexes FollowSymLinks //删除Indexes即表示不允许目录列表
    AllowOverride None 
    Order allow,deny 
    Allow from all 
    </Directory>

    5. 设置用户个人站点目录

    在httpd.conf文件中,关于用户个人站点目录的设置修改如下

    #UserDir disable 
    UserDir public_html

    在httpd.conf文件中,有关于用户个人站点目录的指令块,取消其前面的注释:

    <Directory "/home/*/public_html/">
    ... 
    </Directory>

    新建一个用户(假如叫tommy),如果该用户想拥有自己的个人站点,则该用户登录后,做以下操作:
    $cd ~
      //转到用户个人主目录
    $mkdir public_html   //建立个人站点目录 
    $chcon -R -t httpd_user_content_t public_html/ //更改目录的SElinux权限,或者在"安全性和防火墙"设置中禁止SElinux
    $chmod 755 public_html   //更改目录权限
    $echo "这是tommy的个人站点,欢迎光临" > index.htm  //建立个人主页文件

    测试,在浏览器中输入:

    http://.../~tommy

    如果想在访问tommy的主面时时,去掉~号(即http://.../tommy的形式),则需在httpd.conf中加入以下内容:

    Alias /tommy/ "/home/tommy/public_html/"

    6. 设定web目录的访问权限

    假如tommy的个人站点下,有一目录super,不想让IP为192.168.6.23、域名为sam.net03.org的用户访问,则可以在httpd.conf文件中加入以下内容:

    <Directory "/home/tommy/public_html/super"> 
    order allow,deny 
    deny from 192.168.6.23
    deny from sam.net03.org 
    allow from all
    </Directory>

    7.Alias 指令 说明 映射URL到文件系统的特定区域 语法 Alias URL-path file-path|directory-path

    Alias指令使文档可以被存储在DocumentRoot以外的本地文件系统中。以(%已解码的)url-path路径开头的URL可以被映射到以directory-path开头的本地文件。

    示例:
    Alias /image /ftp/pub/image 
    效果就是对"http://..../image/foo.gif"的请求,服务器将返回"/ftp/pub/image/foo.gif"文件。
    虚拟主机类型    返回

    基于名称的虚拟主机 在一个IP的基础上构建多个Web站点, Web站点域名解析后对应同一个IP地址

    基于IP的虚拟主机 系统有多个IP(可能绑定在一个网卡上,也可能绑定在多块网卡上), Web站点域名解析后对应不同的IP地址

    基于名称的虚拟主机    返回

    以下设置为基于名称的虚拟主机,即设置两个web站点www1.net03.org、www2.net03.org,这两个名称对应一个IP地址192.168.0.1

    1.在DNS服务器上添加相应记录

    设置好DNS服务器 在服务器的DNS中设置两条DNS主机记录:www1.net03.org和www2.net03.org,注意它们都对应同一个IP地址(192.168.0.1)。

    即在net03.org的DNS服务器ns.net03.org的正向解析区文件中添加以下记录:

    tiger IN A 192.168.0.1
    www1 IN CNAME tiger
    www2 IN CNAME tiger

    2.为虚拟主机建立站点主目录,及主页文件

    在/var/www/virhost为虚拟主机建立目录host1和host2如下:

    #mkdir -p /wu1

    #mkdir -p /wu2

    设置虚拟主机目录权限为755,如下:

    #chmod 755 /wu1

    #chmod 755 /wu2

    3.配置httpd.conf

    在httpd.conf中加入以下内容:
    _____________________________________________________________________________

    NameVirtualHost 192.168.0.1

    <VirtualHost 192.168.0.1:80>

    ServerName www1.net03.org

    DocumentRoot /wu1

    </VirtualHost>

    <VirtualHost 192.168.0.1:80>

    ServerName www2.net03.org

    DocumentRoot /wu2

    </VirtualHost>

    以及设定目录权限:

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

    <Directory /wu2>
    ......
    </Directory>

    基于IP的虚拟主机    返回

    1.在DNS服务器上添加相应记录

    设置好DNS服务器 在服务器的DNS中添加两条DNS主机记录:news.net03.org,sports.net03.org,注意它们都对应不同的IP地址(192.168.0.2、192.168.0.3)。

    即在net03.org的DNS服务器ns.net03.org的正向解析区文件中添加以下记录:

    news IN A 192.168.0.2
    sports IN A 192.168.0.3


    2.为虚拟主机建立站点主目录,及主页文件

    3.配置httpd.conf

    在httpd.conf文件中添加如下内容: 
    ____________________________________________________________________________

    <VirtualHost news.net03.org>

    DocumentRoot /wu3

    ServerName news.net03.org

    </VirtualHost>

    <VirtualHost sports.net03.org>

    DocumentRoot /wu4

    ServerName sports.net03.org

    </VirtualHost>

    以及

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

    <Directory /wu4>
    ...
    </Directory>

    基于端口的虚拟主机    返回

    1. 注意:考虑到Fedora中SElinux的设置,需首先在“安全级别及防火墙”中,禁用SElinux,或只禁用SElinux对httpd守护进程的保护;同时在防火墙中开启相关的端口,比如我们要用的5555、6666

    2. 在httpd.conf文件中添加如下内容: 
    ____________________________________________________________________________

    Listen *:5555

    Listen *:6666

    <VirtualHost 192.168.0.1:5555>

    DocumentRoot /wu5

    </VirtualHost>

    <VirtualHost 192.168.0.1:6666>

    DocumentRoot /wu6

    </VirtualHost>

     以及

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

    <Directory /wu6>
    ...
    </Directory>

    web用户认证    返回

    用户身份认证可以使某个目录成为保护目录 , 如客户端访问 http://192.168.0.1/protect/ 目录时需要验证用户的身份才能访问

    1. 建立保护目录并在该目录中建立web文件 

    最简单的情况,保护目录就建立在Web主目录(即DocumentRoot所指的目录)下:
    #mkdir -p 
    /var/www/html/protect 
    #chmod 755 
    /var/www /html/protect 
    #cd 
    /var/www/html/protect 
    #echo "This is a protect page" > index.html

    如果要保护的Web目录不在Web主目录下,则目录建立好之后,需要在httpd.conf文件中进行别名设置:
    (1) #mkdir -p 
    /var/akuna

    (2) 打开httpd.conf文件,加入以下指令
    Alias 
    /protect/ "/var/akuna/"

    2. 制作密码文件 
    先建立文件夹 /var/www/htpass , 在该文件夹中用 “ #htpasswd [-c] 密码文件名 用户名 ” 的格式制作密码文件如: 
    #htpasswd -c apass test2 
    #htpasswd apass 
    test3 
    那么密码文件/var/www/htpass/apass中有两个账号test2 与 test3了

    3. 在配置文件中设置认证选项 打开配置文件 httpd.conf 在其最后加入以下 :

    ________________________________________________________________________________________________
    <Directory "/var/www/html/protect "> 
    AuthName "Protected Directory" // 认证领域名称,就是显示在登录窗口上面的提示字符 
    AuthType Basic // 设置认证的类型,选择 Basic ,即使用基本认证 
    AuthUserFile /var/www/htpass/apass // 密码文件所在目录及文件名 
    require valid-user //允许的访问者, valid-user 表示任何一个在认证文件当中的用户都是合法用户
    #require user test2 //若将 # 移除,则表示只有 test2 才是可以登入的账号
    </Directory>

    4. 重新启动 Apache 
    #service httpd restart

    5. 测试 
    在客户端浏览器地址栏中输入 http://192.168.0.1/protect/ ,如果弹出用户认证窗口,输入合法用户名及密码,可以浏览相关网页,否则不能浏览,表示配置成功.

    SSL与数字证书    返回启用SSL

    1. 安装软件包
      mod_ssl
    2. 重启Apache服务
       service httpd restart
    3. 使用https来访问原有站点
       https://www.net03.org

    使用数字证书

    1. 建立加密的私有密钥和公开密钥
       #mkdir /etc/httpd/conf/ssl.key
       #/usr/bin/openssl genrsa 1024 > /etc/httpd/conf/ssl.key/server.key
       #chmod 600 /etc/httpd/conf/ssl.key/server.key
    2. 利用公开密钥建立证书请求
       #mkdir /etc/httpd/conf/ssl.csr
       #/usr/bin/openssl req -new -key /etc/httpd/conf/ssl.key/server.key -out /etc/httpd/conf/ssl.csr/server.csr
       ...... 
    3. 将建立的证书请求传送到CA 
       如果CA的证书是通过在线申请的,在浏览器地址中输入:
       http://服务器名称或IP地址/certsrv
    4. 如果通过CA的审核,则CA会寄发数字证书
    5. 安装数字证书

    webmin    返回

    webmin官方站点:www.webmin.com

    安装webmin的RPM包,webmin-1.330-1.noarch(2).rpm

    在浏览器地址栏中输入
    http://服务器名称或IP:10000
    来使用webmin

    任务,使用webmin来配置多种虚拟主机:

    1. 在"网络-->网络配置"中添加新的网络接口,在同一张网卡上绑定多个IP

    2. 在"服务器-->BIND DNS服务器"中配置在虚拟主机中要用的基于同一个IP的主机名,及基于不同IP的主机名

    3. 在"服务器-->Apache服务器"中添加基于名称的虚拟主机,添加基于IP的虚拟主机,添加基于端口的虚拟主机

    Web维护与日志分析    返回1. apachectl

    apachectl 是Apache HTTP服务器的前端程序。其设计意图是帮助管理员控制Apache httpd 后台守护进程的功能。

    apachectl 脚本有两种操作模式。首先,作为简单的 httpd 的前端程序,设置所有必要的环境变量,然后启动 httpd ,并传递所有的命令行参数。其次,作为SysV初始化脚本,接受简单的一个单词的参数,如: start , restart , stop ,并把他们翻译为适当的信号发送给 httpd 。

    如果你的Apache安装在非标准的路径中,你将需要修改 apachectl 脚本使其中的路径正确地指向 httpd 程序。此外,还可以指定任何必要的 httpd 命令行参数。细节可以参见脚本中的注解。

    apachectl 脚本如果执行成功,则返回0 ;如果出错,则其返回值>0 。更多细节可以参见脚本中的注解。

    在扮演传递角色时, apachectl 可以接受对 httpd 程序有效的所有参数。

    apachectl [ httpd-argument ]

    语法: apachectl command

    #apachectl configtest //执行一次配置文件语法检查。它解析配置文件,并报告 Syntax Ok 或者是特定的语法错误详细信息。它等价于 apachectl -t 。

    #apachectl start //启动Apache httpd 后台守护进程。如果已经启动,则产生一个错误。它等价于 apachectl -k start 。

    #apachectl stop //停止Apache httpd 后台守护进程。它等价于 apachectl -k stop 。

    #apachectl restart //重新启动Apache httpd 后台守护进程。如果守护进程尚未运行,则启动它。在重新启动守护进程之前,此命令会使用 configtest 自动检查配置文件,以确保Apache不会死掉。它等价于 apachectl -k restart 。

    #apachectl fullstatus //显示由 mod_status 提供的完整的状态报告。要使用这个功能,需要启用服务器上的 mod_status 模块,并且系统中有一个基于文本的浏览器,如 lynx 。修改脚本中的 STATUSURL 变量,可以修改访问状态报告的URL 。

    #apachectl status 显示一个简要的状态报告。它类似于 fullstatus 选项,但是省略了正在处理的请求的列表。

    #apachectl graceful 优雅地重新启动Apache httpd 后 台守护进程。如果守护进程尚未启动,则启动它。它和标准重新启动的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。这意味着,如果在日志 滚动脚本使用它,则在处理日志之前必须加入一个实实在在的延迟,以确保老的日志文件在被处理前已经关闭。在重新启动守护进程之前,此命令会使用 configtest 自动检查配置文件,以确保Apache不会死掉。它等价于 apachectl -k graceful 。

    #apachectl graceful-stop 优雅地停止Apache httpd 后台守护进程。它和标准停止的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。它等价于 apachectl -k graceful-stop 。

    2. Webalizer

    用webalizer分析web日志

    介绍: webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。Internet上的很多站点都使用webalizer进行web服务器日志分析。Webalizer具有以下一些特性: 
    1. 因为是用C写的程序,所以具有很高的运行效率。在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需要15秒。 
    2. webalizer支持标准的一般日志文件格式(Common Logfile Format);除此之外,也支持几种组合日志格式(Combined Logfile Format)的变种,从而可以统计客户情况以及客户操作系统类型。并且现在webalizer已经可以支持wu-ftpd xferlog日志格式以及squid日志文件格式了。 
    3. 支持命令行配置以及配置文件。 
    4. 可以支持多种语言,也可以自己进行本地化工作。 
    5. 支持多种平台,比如UNIX、linux、NT, OS/2 和 MacOS等。

    安装: 
    1.从webalizer的官方站点http://www.mrunix.net/webalizer/ 下载webalizer。 
    2.首先解开源代码包: tar xvzf webalizer-2.01-06-src.tgz 
    3.在生成的目录中有个lang目录,该目录中保存了各种语言文件,但是只有繁体中文版本,可以自己转换成简体,或者自己重新翻译一下。 
    4.然后进入生成的目录,编译、连接、安装: 
        #./configure 
        #make 
        #make install 
    5.编译成功后,会产生一个webalizer可执行文件

    配置:

    上面说过,可以通过命令行配置webalizer,也可以通过配置文件(/etc/webalizer.conf)进行配置,在本文中我们将介绍使用命令行参数进行配置,需要了解配置文件使用方法的朋友可以参考README文件,里面有很详细的介绍。   可以执行webalizer –h得到所有命令行参数: 
    Usage: webalizer [options] [log file] 
    -h = 打印帮助信息 
    -v -V = 打印版本信息 
    -d = 打印附加调试信息 
    -F type = 日志格式类型. type= (clf | ftp | squid) 
    -i = 忽略历史文件 
    -p = 保留状态 (递增模式) 
    -q = 忽略消息信息 
    -Q = 忽略所有信息 
    -Y = 忽略国家图形 
    -G = 忽略小时统计图形 
    -H = 忽略小时统计信息 
    -L = 忽略彩色图例 
    -l num = 在图形中使用数字背景线 
    -m num = 访问超时 (seconds) 
    -T = 打印时间信息 
    -c file = 指定配置文件 
    -n name = 使用的主机名 
    -o dir = 结果输出目录 
    -t name = 指定报告题目上的主机名 
    -a name = 隐藏用户代理名称 
    -r name = 隐藏访问链接 
    -s name = 隐藏客户 
    -u name = 隐藏URL 
    -x name = 使用文件扩展名 
    -P name = 页面类型扩展名 
    -I name = index别名 
    -A num = 显示前几名客户类型 
    -C num = 显示前几名国家 
    -R num = 显示前几名链接 
    -S num = 显示前几名客户 
    -U num = 显示前几名URLs 
    -e num = 显示前几名访问页面 
    -E num = 显示前几名不存在的页面 
    -X = 隐藏个别用户 
    -D name = 使用dns缓存文件 
    -N num = DNS 进程数 (0=禁用dns)

      例:假设,web服务器主机名为ns.net03.org,访问日志为/var/log/httpd/access_log, 我们将webalizer分析结果输出到/var/www/html/log下面。则我们可以执行以下命令,或建立启动脚本/etc/rc.d/webalizer使之自动运行:
    ________________________________________________________________________________________________

    #webalizer -F clf -p -t 'ns.net03.org' -o /var/www/html/log /var/log/httpd/access_log

    ___________________________________________________________________________________________

    #vi /etc/rc.d/webalizer
    #!/bin/sh 
    run=/usr/sbin/webalizer 
    $run -F clf -p -t 'ns.net03.org' -o /var/www/html/log /var/log/httpd/access_log

    ______________________________________________________________________________________________

    说明: 
    -F clf: 指明我们的web日志格式为标准的一般日志文件格式(Common Logfile Format) 
    -p 指定使用递增模式,这就是说每作一次分析后,webalizer会生产一个历史文件,这样下一次分析时就可以不分析已经处理过的部分。这样我们就可以在短时间内转换我们的日志文件,而不用担心访问量太大时日志文件无限增大了。 
    -n " ": 指定服务器主机名为空,这样输出结果会美观一些。 
    -t "www.test.com" 指定输出结果标题。 
    -o 指定报告的输出位置
    /var/log/httpd/access_log:指定日志文件

    如果要使同样的日志分析任务周期性执行,则需在/etc/crontab中加入下面一行:

    #vi /etc/crontab
    ...
    01 1 * * * root /etc/rc.d/webalizer 
    ...

    表示,每天凌晨1点01分执行该脚本。 然后运行/etc/rc.d/init.d/crond reload重载入crond服务。

    3.使用logrotate管理日志

    对于Linux 的系统安全来说,日志文件是极其重要的工具。
    系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。logrotate 还可以用来备份日志文件,本篇将通过以下几部分来介绍

    日志文件的管理:
    1、logrotate 配置
    2、缺省配置 logrotate
    3、使用include 选项读取其他配置文件
    4、使用include 选项覆盖缺省配置
    5、为指定的文件配置转储参数

    一、logrotate 配置

    logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。
    logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。

    logrotate 的配置文件是 /etc/logrotate.conf。主要参数如下表:

    参数 功能
    compress 通过gzip 压缩转储以后的日志
    nocompress 不需要压缩时,用这个参数
    copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
    nocopytruncate 备份日志文件但是不截断
    create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
    nocreate 不建立新的日志文件
    delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
    nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
    errors address 专储时的错误信息发送到指定的Email 地址
    ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。
    notifempty 如果是空文件的话,不转储
    mail address 把转储的日志文件发送到指定的E-mail 地址
    nomail 转储时不发送日志文件
    olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
    noolddir 转储后的日志文件和当前日志文件放在同一个目录下
    prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
    postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
    daily 指定转储周期为每天
    weekly 指定转储周期为每周
    monthly 指定转储周期为每月
    rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
    tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
    size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).


    二、缺省配置 logrotate

    logrotate 缺省的配置文件是/etc/logrotate.conf。
    Red Hat Linux 缺省安装的文件内容是:

    # see "man logrotate" for details
    # rotate log files weekly
    weekly

    # keep 4 weeks worth of backlogs
    rotate 4

    # send errors to root
    errors root
    # create new (empty) log files after rotating old ones
    create

    # uncomment this if you want your log files compressed
    #compress
    1
    # RPM packages drop log rotation information into this directory
    include /etc/logrotate.d

    # no packages own lastlog or wtmp --we'll rotate them here
    /var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
    }

    /var/log/lastlog {
    monthly
    rotate 1
    }

    # system-specific logs may be configured here


    缺省的配置一般放在logrotate.conf 文件的最开始处,影响整个系统。在本例中就是前面12行。

    第三行weekly 指定所有的日志文件每周转储一次。
    第五行 rotate 4 指定转储文件的保留 4份。
    第七行 errors root 指定错误信息发送给root。
    第九行create 指定 logrotate 自动建立新的日志文件,新的日志文件具有和
    原来的文件一样的权限。
    第11行 #compress 指定不压缩转储文件,如果需要压缩,去掉注释就可以了。

    三、使用include 选项读取其他配置文件
    include 选项允许系统管理员把分散到几个文件的转储信息,集中到一个
    主要的配置文件。当 logrotate 从logrotate.conf 读到include 选项时,会从指定文件读入配置信息,就好像他们已经在/etc/logrotate.conf 中一样。

    第13行 include /etc/logrotate.d 告诉 logrotate 读入存放在/etc/logrotate.d 目录中的日志转储参数,当系统中安装了RPM 软件包时,使用include 选项十分有用。RPM 软件包的日志转储参数一般存放在/etc/logrotate.d 目录。

    include 选项十分重要,一些应用把日志转储参数存放在 /etc/logrotate.d 。

    典型的应用有:apache, linuxconf, samba, cron 以及syslog。

    这样,系统管理员只要管理一个 /etc/logrotate.conf 文件就可以了。

    四、使用include 选项覆盖缺省配置

    当 /etc/logrotate.conf 读入文件时,include 指定的文件中的转储参数将覆盖缺省的参数,如下例:

    # linuxconf 的参数
    /var/log/htmlaccess.log
    { errors jim
    notifempty
    nocompress
    weekly
    prerotate
    /usr/bin/chattr -a /var/log/htmlaccess.log
    endscript
    postrotate
    /usr/bin/chattr +a /var/log/htmlaccess.log
    endscript
    }
    /var/log/netconf.log
    { nocompress
    monthly
    }

    在这个例子中,当 /etc/logrotate.d/linuxconf 文件被读入时,下面的参数将覆盖/etc/logrotate.conf中缺省的参数。

    Notifempty
    errors jim

    五、为指定的文件配置转储参数
    经常需要为指定文件配置参数,一个常见的例子就是每月转储/var/log/wtmp。为特定文件而使用的参数格式是:

    # 注释
    /full/path/to/file
    {
    option(s)
    }

    下面的例子就是每月转储 /var/log/wtmp 一次:
    #Use logrotate to rotate wtmp
    /var/log/wtmp
    {
    monthly
    rotate 1
    }


    六、其他需要注意的问题

    1、尽管花括号的开头可以和其他文本放在同一行上,但是结尾的花括号必须单独成行。

    2、使用 prerotate 和 postrotate 选项
    下面的例子是典型的脚本 /etc/logrotate.d/syslog,这个脚本只是对
    /var/log/messages 有效。

    /var/log/messages
    {
    prerotate
    /usr/bin/chattr -a /var/log/messages
    endscript
    postrotate
    /usr/bin/kill -HUP syslogd
    /usr/bin/chattr +a /var/log/messages
    endscript
    }

    第一行指定脚本对 /var/log messages 有效
    prerotate 命令指定转储以前的动作/usr/bin/chattr -a 去掉/var/log/messages文件的“只追加”属性 endscript 结束 prerotate 部分的脚本postrotate 指定转储后的动作

    /usr/bin/killall -HUP syslogd

    用来重新初始化系统日志守护程序 syslogd

    /usr/bin/chattr +a /var/log/messages

    重新为 /var/log/messages 文件指定“只追加”属性,这样防治程序员或用户覆盖此文件。

    最后的 endscript 用于结束 postrotate 部分的脚本

    3、logrotate 的运行分为三步:

    判断系统的日志文件,建立转储计划以及参数,通过cron daemon 运行下面的代码是 Red Hat Linux 缺省的crontab 来每天运行logrotate。

    #/etc/cron.daily/logrotate
    #! /bin/sh

    /usr/sbin/logrotate /etc/logrotate.conf

    4、/var/log/messages 不能产生的原因:
    这种情况很少见,但是如果你把/etc/services 中的 514/UDP 端口关掉的话,这个文件就不能产生了。

     


    LAMP配置与应用    返回LAMP(Linux+Apache+Mysql+Php)配置:

    1. Fedora 5已默认安装了php,可以使用rmp -q php查看其版本号

    2. 安装mysql客户端mysql(与perl-DBI包有依赖关系,要先安装)

    3. 安装mysql服务端mysql-server(与perl-DBD包有依赖关系,要先安装)

    4. 安装php支持mysql的模块php-mysql(与php-pdo包有依赖关系,要先安装)

    Mysql的web管理工具phpMyAdmin

        1.安装

    • 下载并解压phpMyAdmin的包到某个web目录(或为phpMyadmin建立虚拟主机,将该包解压到虚拟主机目录)
              #tar -xzvf  phpMyAdmin-2.10.0.2-all-languages.tar.gz
    • 执行下列命令:
              #cd phpMyAdmin
              #mkdir config 
                            #建立一个用来保存配置的目录
             #chmod o+rw config                 #更改该目录的权限为属主可读写
              #cp config.sample.inc.php config/ #将当前目录下的config.sample.inc.php复制到config
              #chmod o+w config/config.inc.php    # 使该文件的属主具有写权限
    • 运行安装向导页面
      在浏览器中打开scripts/setup.php,按照向导页面添入相关信息,最后单击“保存”,则所做的配置保存在config/config.inc.php中。(注:如果config子目录没有建立,或没有对该文件的写权限的话,则会出现"Cannot load or save configuration."的提示,这种情况下应选择“DownLoad”下载到本地,再上传到phpMyAdmin的主目录下 ),主要有以下样目需要添写:
      User for config auth__________________ 
      Password for config auth__________________ 
      phpMyAdmin control user____________________ 
      phpMyAdmin control user password______________________ 
      phpMyAdmin database for advanced features__________________
    • 配置成功保存的话,执行下面命令
              #mv config/config.inc.php . #将配置文件移动到phpMyAdmin的主目录
              #chmod o-r config.inc.php #为安全起见,移去该文件的读写权限
    • 在浏览器中打开phpMyAdmin对应的站点
    phpbb应用

        注:以下头3步有关mysql的操作也可以在webmin中完成.

        1. mysql的账号管理

              1) 要设置root用户的密码为123456,则在系统提示符下执行下面的命令:
             
    #mysqladmin -u root -p password "123456"

    2) 要在mysql命令行客户端,设置root用户的密码为123456,则需执行以下命令:
    mysql> use mysql;       
    mysql> update user set Password=password('123456') where User='root'; 
    mysql> flush privileges;

              3) 如果要新增用户u1,给他授予对数据库bb中所有表(*)的所有权限(all),密码设为888888,则在mysql提示符下:
              mysql> grant all on bb.* to 'u1'@'localhost' identified by '888888';

        2. 如果root用户有密码,则进入mysql客户端需用下面的命令:#mysql -u root -p

        3. 新建phpbb论坛所要用到的数据库:mysql>create database XXX;

        4. 为phpbb所在目录新建虚拟主机

        5. 在浏览器中访问该虚拟主机,以安装phpbb

        6. 注意:在安装结尾,选择下载配置文件,自行上传.然后删除install,contrib两个目录

    定制phpbb实训作业    返回

    1.使用Apache配置基本的web站点,使客户端浏览简体中文网页能正常显示、新增支持的主页文件index.htm index.php default.htm default.html。最后要能在其它计算机上通过域名访问,比如www.yyy.net03.org。

    2.在web站点下实现虚拟目录,即web站点的子目录,该子目录与主目录不一定是上下目录关系.同时,允许该目录有目录列表功能(即在没有找到主文件件的时候,显示当前目录下的列表).

    3.实现Linux用户个人站点.

    4.配置多个基于名称的虚拟主机,比如www1.yyy.net03.org,www2.yyy.net03.org。最后要能在其它计算机上通过域名访问。

    5.配置多个基于IP的虚拟主机,比如lit.yyy.net03.org,mil.yyy.net03.org。最后要能在其它计算机上通过域名访问。

    6.配置LAMP环境

    7.配置phpbb论坛,并使该论坛可以通过形如bbs.yyy.net03.org的形式访问。

    (*)8. 删除系统原有Apache、php、Mysql项目,使用源文件安装最新版本的Apache、php、Mysql

    利用源代码安装LAMP        返回

    首先要在相关网站获取Apache、Mysql、Php的源码包,一般扩展名为xxx.tar.gz.

    删除系统原有Apache、php、Mysql项目,可能要用到下面的命令

    # rpm -e xxx

    # rpm -e xxx nodeps #不考虑依赖关系而删除xxx包

    # rpm -e xxx yyy zzz #删除xxx,yyy,zzz

    如果无法删除一个RPM包,可以使用以下两步:

    #rpm -f /var/lib/rpm

    #rpm --rebuilddb

    或:

    #rpm -ivh --justdb xxx

    #rpm -e xxx

    1. 安装Apache(httpd-2.2.8)


    # ./configure --enable-so
    # make
    # make install
    # /usr/local/apache2/bin/apachectl start


    2. 安装Mysql(Mysql-5.0.22)

    1) 建立用户及组,如果在/etc/passwd中已有该用户,则下列操作可以省略

    shell> groupadd mysql
    shell> useradd -g mysql mysql


    2) 解压、配置编译安装

    shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
    shell> cd mysql-VERSION
    shell> ./configure --prefix=/usr/local/mysql        #配置(指定mysql安装路径)
    shell> make                                            #编译
    shell> make install                                    #安装


    3) 配置mysql

    shell> cp support-files/my-medium.cnf /etc/my.cnf        #建立mysql配置文件
    shell> cp support-files/mysql.server /etc/init.d/        #建立mysql控制脚本
    shell> cd /usr/local/mysql
    shell> bin/mysql_install_db --user=mysql                #建立mysql系统数据库
    shell> chown -R root .                                    #更改当前目录及子目录所有者
    shell> chown -R mysql var                                #更改var目录及子目录所有者
    shell> chgrp -R mysql .                                #更改当前目录及子目录所属组


    4) 启动mysql

    shell> bin/mysqld_safe --user=mysql &                #以后台模式运行mysqld服务
    shell> chkconfig --list | less                       #查看服务列表
    shell> chkconfig --add mysql.server                    #将mysql.server添加到服务列表
    shell> chkconfig --list | less                        #查看服务列表
    shell> service mysql.server restart                        
    shell> /usr/local/mysql/bin/mysqladmin -u root -p password '888888'    #更改mysql管理用户root的密码     

    3. 安装php(php5 on Apache 2 Shared Module Version)

    1) tar -zxvf php-NN.tar

    2) cd php-NN

    3) ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql

    4) make

    5) make install

    6) 建立php配置文件php.ini

    # cp php.ini-dist /usr/local/lib/php.ini

    7) 编辑http配置文件 httpd.conf 使之加载PHP模块

    对于 PHP 4,添加下句:

        LoadModule php4_module modules/libphp4.so

    对于 PHP 5,添加下句:

        LoadModule php5_module modules/libphp5.so

    8) 编辑http配置文件 httpd.conf,使之能解析扩展名为php的文件

        AddType application/x-httpd-php .php .phtml

    9) 编辑http配置文件 httpd.conf,修改主页文件

        DirectoryIndex index.php index.htm index.html

    10) 重启httpd服务

    # /usr/local/apache2/bin/apachectl start

    # /usr/local/apache/bin/apachectl -k start

    11) 编辑index.php文件,并在浏览器中访问该站点,如果出现关于php的当前配置信息(其中有mysql的配置项),表示LAMP安装成功。

    $vi index.php
    <?php
    phpinfo()
    ?>

    展开全文
  • Web站点与Web应用

    千次阅读 2018-04-07 13:28:45
    Web站点是由一组分层次的HTMl文档、媒体文件及相关目录结构组成,注重的是信息的浏览。 Web应用是一个在服务器端具有动态功能的Web站点,使用HTML form作为客户端运行代码的用户界面。 Web应用注重的是业务功能的...

            Web站点是由一组分层次的HTMl文档、媒体文件及相关目录结构组成,注重的是信息的浏览。

            Web应用是一个在服务器端具有动态功能的Web站点,使用HTML form作为客户端运行代码的用户界面。

            Web应用注重的是业务功能的实现。常见的计数器、留言板、聊天室和论坛BBS等,都是Web应用程序,不过这些应用相对比较简单,而Web应用程序的真正核心主要是用户的业务需求和对数据库进行处理,比如管理信息系统(Management Information System,简称MIS)就是这种架构最典型的应用。

           不管是 Web站点还是Web应用,我们都会把它理解为一个软件,只不过这个软件需要浏览器来帮我们呈现界面。

    展开全文
  • 静态web站点和动态web站点的区别

    千次阅读 2018-07-20 16:23:30
    静态web站点:只是请求和响应,前段客户(浏览器)和后端服务器没有数据上的交互   动态web站点:前段客户(浏览器)每次请求会想后台传递一定的参数,后端利用参数,去寻找相应的满足客户要求的答案,这个过程...
  • IIS是Internet Information Server的缩写,是微软提供的Internet...本文以Win2000服务器版操作系统为例,介绍WEB服务器的安装和设置方法。  目前运行IIS的最理想平台是Windows 2000服务器版和高级服务器版。Wi
  • 设置完成后,为了方便统一划分 WEB 站点匿名访问用户的权限,再新建一个用户组,例如为 IISUSER_GROUP,把 IISUSER_01 用户添加到 IISUSER_GROUP 组内。 用户和组设置好后,我们再次打开 d 盘的 wwwroot,右击 ...
  • 那么用户访问web页面的时候,就是通过apache服务(httpd)的所有者的身份进行访问,所以要将 apache也就是httpd服务的所有者和所有组设为apache或者自定用户,不要用root,这个一般安装的时候就会有默认设置(或者修改...
  • Web站点测试经验点滴

    千次阅读 2018-10-31 20:09:26
    Web站点测试经验: 1.在执行客户端并发性能测试的过程中,需要同时监控数据库服务器、Web服务器以及网络资源等使用情况,以便对系统的性能做全面评估 2.录制脚本和手工编写脚本相结合 3.设置数据池,实现变量...
  • 如何设置IIS来支持多个WEB站点

    千次阅读 2014-04-30 16:36:48
    使用不同IP区分WEB站点 很显然,这种情况服务器必须有多个IP才行,比如在服务器上有192.168.1.254和192.168.1.231两个IP,则在使用网站创建向导中需要为站点分配特定的IP地址,如下图所示: 网站TCP端口的部分一般...
  • 用Tomcat构建WEB站点

    千次阅读 2012-10-15 19:58:29
    第1讲 用Tomcat构建WEB站点 WEB应用的相关知识 安装 Tomcat Tomcat 的启动与停止 配置WEB站点的虚拟目录  配置虚拟主机  Web应用程序简介 应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用...
  • source: click here Windows 2000 Server安装成功后,一般...那么,能否在一台服务器上设置多个Web站点(以下我们简称为“一机多站”)呢?答案是肯定的,并有多种途径可以达到这一目 的。我们知道,网络上的每一个Web
  • 虚拟web主机,指的是在同一台服务器中运行多个web站点,其中的每一个站点实际上并不独自占用整个服务器,可以充分利用服务器的硬件资源,从而大大减低网站构建及运行成本.使用httpd可以非常方便地构建虚拟机主机...
  • Web站点常见安全问题

    千次阅读 2017-02-06 13:51:15
    Web站点常见安全问题类型
  • Tomcat构建WEB站点

    千次阅读 多人点赞 2012-10-15 19:27:42
    用Tomcat构建WEB站点  WEB应用的相关知识 lWeb应用程序简介 应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。 ...
  • 原文地址:How to manage web site configuration through a web interface网站管理工具(Web Site Administration Tool)为你提供一个web界面来管理不同的Web站点的配置....
  • 快速搭建Web站点

    千次阅读 2019-05-17 12:59:58
    1. 快速搭建Web站点  问题 根据公司信息化建设要求,需构建一台独立配置的网站服务器。考虑到站点的运行效率及稳定性、可扩展性等因素,要求使用RHEL 6服务器系统。为了尽快掌握httpd服务的相关配置,管理员先...
  • **欢迎大家进入我的博客** 实验准备: 新建一台名为Web的Windows server 2008 R2虚拟机来作为Web服务器,为其分配IP地址192.168.1.5,将...2.web服务器站点设置 3.创建虚拟目录 实验过程: 一.IIS的安...
  • Tomcat配置Web站点

    千次阅读 2012-10-15 21:16:18
    Tomcat配置Web站点 Javaweb初学,Web应用程序简介 应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。 桌面应用程序(Desktop Application):一般是指采用客户机/...
  • 如何在本地调试web站点

    千次阅读 2016-08-30 11:11:50
    目的:本地建立web站点,页面程序中设置断点,通过在其他机器上访问,进入断点,调试页面程序;(其实本地访问进行调试不需要这么麻烦,此文章是为了应对工作中出现的特定情况) 工具:VS2012 具体步骤: 1.新建一个...
  • 利用cookie信息登录web站点

    千次阅读 2019-02-27 17:42:02
    利用cookie信息登录web站点   日常生活中,每当登录一个网站站点、客户端程序都会用到验证方式,账号密码、手机短信验证码登录自己的账号;一年下来我发现以前常用的账号密码登录都在改变为手机短信验证码登录...
  • Windows 启动web站点,部署网站

    千次阅读 2018-05-10 18:37:33
    Windows 启动web站点,部署网站 配置IIS 1. 2 子选项全选 3 成功 4 双击进入iis管理 5.发布项目,选中项目,右键,发布,选择发布地址即可 6.查看本机ip 打开cmd 输入 ipconfig 即可 7 如图配置即可,...
  • 主机访问虚拟机web站点

    千次阅读 2015-05-14 10:24:25
    在虚拟机中搭建了一个web站点,怎么通过主机访问呢。 虚拟机中安装tomcat在虚拟机中可以访问http://localhost:8080/ 在主机中通过IP访问虚拟机访问不了,主机和虚拟机之间可以互相ping通 主机telnet虚拟机8080端口...
  • 1、设置一个web站点的欢迎页面有什么作用? 在访问该web站点的时候,如果没有添加访问的资源路径,默认访问的就是这个web站点的欢迎页面。 2、怎么设置欢迎页面? <welcome-file-list> <welcome-file...
  • Kali linux 如何配置Web站点

    千次阅读 2019-04-01 11:26:54
    写这篇博客,也是为了纪念一下早上消耗的光阴。。。 1.在kali里安装apache2的服务 apt-get install apache2 安装好的apache2文件是放在kali的 ...kali 默认的web站点在 /计算机/var/www/html 使...
  • Tomcat虚拟主机搭建Web站点

    千次阅读 2017-11-04 14:12:37
    Tomcat配置完成虚拟主机,可以在虚拟主机中搭建Web站点创建Web站点首先,在D盘中,创建一个newhost目录,将开发的好的chapter02应用复制到newhost目录中,然后,将welcome.html页面中的内容,修改为”这是newhost...
  • 配置WEB站点的虚拟目录

    千次阅读 2011-10-26 09:16:24
    1.虚拟web目录的映射概念和原理:  概念:  ... (1)首先要在这台计算机上安装和启动一个web服务器软件 ...(3)一个web站点上只能有一个虚拟目录的根目录,其他的虚拟目录都必须是该目录的子目录。
  • 添加多个web站点的方法

    千次阅读 2008-05-20 19:11:00
    添加多个web站点方法1.多个IP对应多个Web站点 如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的Web页面,则只需在“默认Web站点”处单击右键,选...当建立好此Web站点之后,再按上步的方法进行相应设置。 2

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 364,384
精华内容 145,753
关键字:

如何设置web站点