精华内容
下载资源
问答
  • 1.1 问题本例要求为在Linux主机上快速构建Web网站服务器,成功实现网页部署及访问,完成下列任务:1)在 CentOS7 虚拟机上搭建 Web 服务安装 httpd 软件包将系统服务 httpd 设为开机自启,同时启动此服务为默认网站...

    1.1 问题

    本例要求为在Linux主机上快速构建Web网站服务器,成功实现网页部署及访问,完成下列任务:

    1)在 CentOS7 虚拟机上搭建 Web 服务

    安装 httpd 软件包

    将系统服务 httpd 设为开机自启,同时启动此服务

    为默认网站创建首页文件 index.html(自建或程序员提供)

    2)通过 firefox 火狐浏览器访问本机的 Web 资源

    1)打开 firefox 火狐浏览器

    2)在火狐浏览器中输入网址 http://127.0.0.1/ ,确认网页结果

    1.2 方案

    在CentOS7系统中开启Web/FTP等网络服务应用时,可能会收到默认配置的防火墙、SELinux等安全防护策略影响。为了避免干扰,学习过程中建议禁止这些保护机制。

    关闭防火墙策略:

    [root@svr7 ~]# systemctl stop firewalld.service //设置开机禁用防火墙

    [root@svr7 ~]# systemctl disable firewalld.service //关闭防火墙

    关闭SELinux保护机制:

    [root@svr7 ~]# setenforce 0 //立即切换为宽松模式

    [root@svr7 ~]# getenforce //确认结果

    Permissive

    [root@svr7 ~]# vim /etc/selinux/config //以后开机不再强制生效

    SELINUX=permissive //宽松模式

    1.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一:在 CentOS7 虚拟机上搭建 Web 服务

    1)安装 httpd 软件包

    [root@svr7 ~]# yum -y install httpd

    .. ..

    已安装:

    httpd.x86_64 0:2.4.6-45.el7.centos

    完毕!

    2)将系统服务 httpd 设为开机自启,同时启动此服务

    [root@svr7 ~]# systemctl enable httpd //设为开机自启

    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

    [root@svr7 ~]# systemctl restart httpd //启动此服务

    3)为默认网站创建首页文件 index.html(自建或程序员提供)

    [root@svr7 ~]# vim /var/www/html/index.html

    My Web Site.

    步骤二:通过 firefox 火狐浏览器访问本机的 Web 资源

    1)打开 firefox 火狐浏览器

    2)在火狐浏览器中输入网址 http://127.0.0.1/ ,确认网页结果

    ecfceff53573f5af2942caf038fdca2c.png

    展开全文
  • 1、假如web服务器是apache,那么用户访问web页面的时候,就是通过apache服务(httpd)的所有者的身份进行访问,所以要将 apache也就是httpd服务的所有者和所有组设为apache或者自定用户,不要用root,这个一般安装的...

    1、假如web服务器是apache,那么用户访问web页面的时候,就是通过apache服务(httpd)的所有者的身份进行访问,所以要将 apache也就是httpd服务的所有者和所有组设为apache或者自定用户,不要用root,这个一般安装的时候就会有默认设置(或者修改apache配置文件的User和Group项)。

    2、网站程序的所有者不要和apache服务的所有者一样,如果一样就相当于给了普通访问者对web文件的所有操作权!一旦web程序有漏洞,那就 over了!默认一般是root,尽量改为其他用户,比如自己建立一个daemon,切记不要和apache服务的所有者一样。

    3、对于网站根目录权限,按照最小权限的原则,应设置为755

    4、对于缓存目录或者上传目录例如缓存目录:caches目录,由于此目录必须要有写权限,也就是目录同是有rwx三个权限,这时候可以直接建立一个 caches空目录,然后chown daemon.daemon ./caches,就是把caches所有者、所有组改为自定义的daemon就ok了,这样如果访问web页面,就会以apache的身份进入 caches建立缓存目录及文件,默认系统都是以最小权限建立!

    5、对于普通目录,最小权限为755,普通用户不给写权限

    6、对于普通文件,最小权限为644,普通用户不给执行权限 总而言之,言而总之就是:目录不要给写权限,文件不要给执行权限(除非特殊情况,如目录要上传)

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

    千次阅读 2015-03-18 23:18:52
    linux apache web站点配置详解 注意:请先在"安全性及防火墙设置"打开对www服务的访问 httpd的配置文件为/etc/httpd/conf/httpd.conf 试修改以下指令: 1. Web站点的主目录 DocumentRoot:设置...

    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()
    ?>

    展开全文
  • linux下发布web站点

    2009-11-03 14:35:04
    一个简单的例子,在linux下发布一个web站点,要安装linux下的jdk,tomcat,然后发布web站点访问站点。 1、安装jdk 1)下载j2sdk ,如jdk-6u16-linux-i586-rpm.bin 2)在终端中转到jdk-6u16-linux-i586-rpm.bin...
    一个简单的例子,在linux下发布一个web站点,要安装linux下的jdk,tomcat,然后发布web站点访问站点。
    1、安装jdk

    1)下载j2sdk ,如jdk-6u16-linux-i586-rpm.bin
    2)在终端中转到jdk-6u16-linux-i586-rpm.bin所在的目录,输入命令chmod 755 jdk-6u1-linux-i586-rpm.bin,添加执行的权限。
    3)执行命令./jdk-6u16-linux-i586-rpm.bin,生成jdk-6u16-linux-i586.rpm的文件。
    4)执行命令chmod 755 jdk-6u1-linux-i586.rpm,给jdk-6u16-linux-i586.rpm添加执行的权限。
    5)执行命令 rpm –ivh jdk-6u16-linux-i586.rpm ,安装jdk。
    6)安装界面会出现授权协议,按Enter键接受,把jdk安装在/usr/java/jdk1.6.0_16。
    7)设置环境变量,在 /etc/profile中加入如下内容(可以使用vi进行编辑profile):
    export JAVA_HOME=/usr/java/jdk1.6.0_16
    export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

    8)在终端执行命令java –version,jdk的版本为jdk1.6.0_01则表示jdk已成功安装。

    2、安装Tomcat

    1)下载apache-tomcat-6.0.18.tar.gz
    2) tar -zxvf apache-tomcat-6.0.18.tar.gz //解压
    3) cp -R apache-tomcat-6.0.18 /usr/local/tomcat //拷贝apache-tomcat-6.0.18到/usr/local/下并重命名为tomcat
    4) # /usr/local/tomcat/bin/startup.sh //启动tomcat
    显示 Using CATALINA_BASE: /usr/local/tomcat
    Using CATALINA_HOME: /usr/local/tomcat
    Using CATALINA_TEMDIR: /usr/local/tomcat/temp
    Using JAVA_HOME: /usr/java/jdk1.6.0_16
    到此tomcat已经安装完成,现在使用浏览器访问 http://localhost:8080,出现tomcat默认页面,说明已经安装成功。

    3、把web工程文件发布到tomcat的webapp文件夹下,访问站点则可以成功。如果是另一个ip地址访问站点则需要对防火墙进行设置或者直接关闭,否则无法访问站点。
    展开全文
  • Kali linux 如何配置Web站点

    千次阅读 2019-04-01 11:26:54
    写这篇博客,也是为了纪念一下早上消耗的光阴。。。 1.在kali里安装apache2的服务 apt-get install apache2 安装好的apache2文件是放在kali的 ...kali 默认的web站点在 /计算机/var/www/html 使...
  • 简述 我们开发一个项目一般都是一个开发团队进行协同开发,使用SVN进行版本管理有助于我们提高开发效率,而将SVN服务器和Web站点的代码进行同步更新会使得我们的开发更为方便。客户端提交了版本修改之后,在之前的...
  • linux下各文件夹的用途和功能

    千次阅读 2015-05-26 21:00:40
    第一部分:各目录的用途 ... 这个目录包含着与终端和外设的文件接口,在Linux下,文件和设备是用同种方法访问的.系统上的每个设备都应该在这里有一个对应的设备文件.  /home   存放用户主目录的地方,
  • 项目五 Apache服务器配置与个人Web站点配置 ​ 00 个人建议&常用操作命令 0.1 个人建议 1、关于安装配置 由于安装配置过程繁琐,很容易出问题。建议每完成一个完整操作,进行一次快照,防止出现无法解决的问题,...
  • 所以本文介绍web目录下各个文件夹的作用,为我们翻文件提供指导。 1. JavaWeb项目 /WEB-INF/web.xml Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。 /WEB-INF/classes/ 包含了站点所有用的 ...
  • 一、linux文件权限介绍 在Linux中,一切皆为文件(目录也是文件),每个文件对用户具有可读(read)、可写(write)、可执行(execute)权限。目录的执行操作表示是否有权限进入该目录,文件的可执行表示是否可以...
  • Kali Linux Web渗透测试手册-第二版 这是Packt发行的《 》的代码库。 发现最常见的Web漏洞,并防止它们成为对您网站安全的威胁 这本书是关于什么的? Web应用程序是恶意黑客的巨大攻击点,也是安全专业人员和渗透...
  • 简介在每个渗透测试中,无论对于网络还是 Web 应用,都有一套流程。其中需要完成一些步骤,来增加我们发现和利用每个影响我们目标的可能的漏洞的机会。例如: 侦查 枚举 利用 维持访问 清理踪迹 在 Web测试场景中,...
  • 快速搭建Web站点

    千次阅读 2019-05-17 12:59:58
    1. 快速搭建Web站点  问题 根据公司信息化建设要求,需构建一台独立配置的网站服务器。考虑到站点的运行效率及稳定性、可扩展性等因素,要求使用RHEL 6服务器系统。为了尽快掌握httpd服务的相关配置,管理员先...
  • Jexus web server for linux 是运行在Linux上的Web服务器。其安装和部署及其简单,直接支持Asp.net 。 下载Jexus  wgethttp://linux.j66.net/down/jexus-5.0.2.tar.gz 然后解压: tar -zxv -f jexus-5.0.2....
  • 第七章 高级利用 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介在获得一些便利来发现和利用漏洞之后,我们现在转向可能需要更多努力的其他问题上...7.1 在 Exploit-DB 中搜索 Web
  • 使用Apache与Tomcat建立Web站点

    千次阅读 2011-10-11 17:06:07
    使用Apache与Tomcat建立Web站点 在Web服务器产品中,主要有Winodws平台中的IIS和Apache/Tomcat,其中后者也可以安装在Linux、Unix等操作系统平台中。Web服务器决定了Web程序的类型,IIS支持asp和.net开发,如果需要...
  • Applications | Kali Linux | Web Applications | Web Vulnerability Scanners | vega ,或者通过终端来打开 Vega: vega 点击“开始新扫描“按钮。 新的对话框会弹出。在标为 Enter a base URI for scan 的...
  • 在我们下载站点文件夹中,我们可以看到下列文件和目录: 以服务器名称或地址命名的目录,包含所有下载的文件。 cookies.txt 文件,包含用于下载站点的 cookie 信息。 hts-cache 目录包含由爬虫检测到的...
  • 100个最佳Linux站点

    千次阅读 2012-07-07 21:47:53
    100个最佳Linux站点 (一) 网络中遍布着大量的Linux相关站点; (二) 用户无须详细了解每一个此类站点,实际上,一百个站点足够你使用了。 评选出的这100个优秀站点,将按照下述20个类别作以评介: (一...
  • 上传到linux 用xftp操作 复制接口站点文件 从windows服务器上复制接口站点文件,如果参数有改动记得修改配置。 新建服务文件夹 新建文件夹 /usr/local/services/IOSysV4,用于放发布的文件 上传文件到linux 挂到...
  • linux配置webserver简易步骤

    千次阅读 2015-12-21 13:21:42
    1.安装nginxaptitude install nginx2.配置nginx1.查看nginx状态,启动,重载等命令 service nginx status ...在/etc/nginx/conf.d中建立相关的文件夹,将配置文件放到该文件夹下。 配置文件例:vhosts_sam
  • 之后,将恶意文件复制到 web 服务器文件夹内。 cp cute_dolphin .exe /var/www/html/ 假设我们使用社会工程并使我们的受害者相信这个文件是需要执行来获得一些好处的东西。在 Windows 客户端虚拟机内,访问 ...
  • 这非常适合设置您的第一个网站,不仅可以学习管理 wordpress 站点,还可以学习 Linux。您将需要一个树莓派(Raspberry Pi)、几个小时和一台计算机来下载映像。 树莓派(RPI) 是学习这些东西的完美设备。 还可以查看 ...
  • LINUX 站点与软件

    2006-12-25 23:56:00
    WEB书多http://www.xtrj.org/[2]Linux书籍集合:160本http://www.linuxforum.net/forum/showflat.php?Cat=&Board=tcl&Number=634193&page=0&view=collapsed&sb=5&o=&fpart=http://www.chedong.com/100个最佳Linux...
  • 100个最佳Linux站点

    2009-10-12 03:02:00
    (一) 网络中遍布着大量的Linux相关站点; (二) 用户无须详细了解每一个此类站点,实际上,一百个站点足够你使用了。 评选出的这100个优秀站点,将按照下述20个类别作以评介: (一) 文件下载 (二) 幽默娱乐 ...
  • Linux下搭建Web网站

    千次阅读 2018-12-18 15:54:05
    由于PHP默认访问 /var/www/html/ 文件夹,所以我们需要把upload文件夹里的文件都复制到 /var/www/html/ 文件夹 cp -r upload/* /var/www/html/ 给 /var/www/html 目录及其子目录赋予权限 chmod -R 777 /var...
  • 关于WEB站点的安全

    2014-05-28 10:27:32
    1、SQL注入 ...由于现在WEB站点的功能越来越复杂,数据量越来越大,一些功能上的参数越来越多,难免会有疏漏,不管是get注入post注入cookie注入还是session注入,反正骇客们就是有他们自己的办法;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,353
精华内容 6,941
关键字:

linuxweb站点文件夹

linux 订阅