• Apache搭建web网站服务器


    •apache服务器概述-安装
    •配置web服务器-搭建LAMP环境
    •修改web网站根目录-配置别名-虚拟目录
    •实现apache打开软链接功能-禁止显示目录列表-用户认证
    •apache虚拟主机基于-IP-域名-端口三种搭建方式

    安装

    yum -y install httpd   

    主配置文件介绍:

    vim /etc/httpd/conf/httpd.conf
    
    ServerName 192.168.1.235:80     #服务器主机名
    PidFile run/httpd.pid      #apache      #运行进程 ID 存放
    Timeout 60                        #超时时间,多少 s 没有反应就超时
    KeepAlive Off                     #是否允许一个永久的链接,设置为 OFF 的时候,不 能保持连接功能,传输效率比较低,设置为 ON 时,可以提高服务器传输文件的效率,建议开启
    MaxKeepAliveRequests 100       #设置 KeepAlive 为 ON 时,设置客户端每次连接允许 请求相应最大文件数,默认 100 个
    KeepAliveTimeout 15              #超时时间,同一个客户端下一个请求 15s 没收到就 超时
    Listen 80#监听端口,默认本地 IP,如果指定 ip 写上 IP:80
    <IfModule prefork.c>
    StartServers8                       #服务开始起启动 8 个进程
    MinSpareServers5                  #最小空闲 5 个进程
    MaxSpareServers20                 #最多空闲 20 个进程
    ServerLimit256                      #服务器允许配置进程数上线
    MaxClients256                       #最大连接数 256,超过要进入等候队列 
    MaxRequestsPerChild4000         #每个进程生存期内服务最大的请求数量,0 表示用不 结束
    </IfModule>
    <Directory />
    Options FollowSymLinks            #Options Indexes 目录浏览FollowSymLinks 用连接
    浏览
    AllowOverride None                #设置为 none,忽略.htaccess
    </Directory>
    LoadModule auth_basic_module modules/mod_auth_basic.so      #载入的库,模块
    
    Include conf.d/*.conf               #conf.d 里面的 conf 文件也属有效配置文件
    User apache            #运行以哪个身份运行
    Group apache          #运行以哪个组的身份运行
    ServerAdmin root@localhost       #管理员邮箱
    DocumentRoot "/var/www/html"   #默认的主目录,如果改动要改动两处,Directory
    <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None
    Order allow,deny                   #这里默认后者生效,也就是 deny 生效
    Allow from all                       #这里说允许所有
    </Directory>
    LogLevel warn                         #日志等级
    DirectoryIndex index.html index.html.var  #首页 
    AccessFileName .htaccess              #access 文件名,也可以在这里定义伪静态、防盗链等,不建议在这个文件定义
    AddDefaultCharset UTF-8              #支持的语言,默认编码
    #配置文件的最后是虚拟主机的字段

    yum 的方式搭建 LAMP 环境
    LAMP=Linux(存在)+Apache(HTTPD 已安装)+Mysql+PHP

    yum install httpd  mysql mysql-server php php-mysql –y

    测试数据库:

     service mysqld start
    chkconfig mysqld on
     mysql  
    mysql> show databases;
    mysql>exit;

    测试apache是否支持php

    cd /var/www/html/
     vim index.php 
    <?php 
    phpinfo(); 
    ?>

    LAMP环境,几种不同的安全访问机制的实现:
    一、修改网站目录对应参数及权限:
    修改网站默认根目录,并且设置访问权限,只有在我允许的范围之内可以访问
    修改网站默认根目录
    设置文档目录为/var/www/html/bbs

    vim /etc/httpd/conf/httpd.conf
     DocumentRoot "/var/www/html/bbs"

    允许所有人访问/var/www/html/bbs 目录

    #目录与访问控制:
    <Directory "/var/www/html/bbs">      #子目录会继承这个目录的属性
        Options  FollowSymLinks            #Options:Indexes:目录浏览  
        AllowOverride None                 #Followsymlinks:可以用连接
        Order allow,deny
        Allow from 192.168.18.0/24                     #从哪里来的允许  
    Deny from 192.168.16.0/24                      #从哪里来的拒绝
    Allow from  .baidu.com
    #Allow,Deny都会读取,如果有冲突和未说明的时候按照Order选项逗号后面的那个为准。
    谁写到后面,谁的优先级高。
    </Directory>

    二、使用别名,引用网站根目录以外的路径。
    将/usr/local/phpdata 目录通过虚拟目录功能添加到网站根目录。当访问http://192.168.1.63/ phpdata/ 时,就可以访问目录/usr/local/phpdata中的内容。
    注:apache的别名也叫虚拟目录
    语法:
    Alias URL路径 PATH物理路径

    创建测试数据:

    mkdir /usr/local/phpdata
     echo "This Alias PHPdata" > /usr/local/phpdata/index.html
    #修改配置文件:
    vim /etc/httpd/conf/httpd.conf  # 在Alias下添加以下内容
    
    
    Alias /phpdata/ "/usr/local/phpdata/"
    <Directory "/usr/local/phpdata/">
        Options Indexes FollowSymLinks  
        AllowOverride None 
        Order deny,allow
        Allow from all
    </Directory>
    注:Alias /phpdata/ "/usr/local/phpdata/"     #/phpdata/ 可以随意起。比如改/phpdata/ 为/php/  则访问链接: http://192.168.1.63/php/

    测试:

    service httpd restart
    http://192.168.1.63/phpdata/
    

    三、当一个目录下没有默认首页时,访问http://192.168.1.63/phpdata/禁止显示目录列表

    vim /etc/httpd/conf/httpd.conf  # 修改红色标记内容
    
    328 # The Options directive is both complicated and important.  Please see
     329 # http://httpd.apache.org/docs/2.2/mod/core.html#options
     330 # for more information.
     331 #
     332     Options -Indexes FollowSymLinks        ###去除Indexes或者在前面加一个减号
     333  

    四、通过用户认证的方式,对网站下/usr/local/phpdata/目录进行保护。 设置/usr/local/phpdata/目录,只能通过用户名密码方式访问。

     vim /etc/httpd/conf/httpd.conf   #在需要使用用户验证的目录的相关Directory段落添加以下红色标记内容:
    
    Alias /phpdata/ "/usr/local/ phpdata /"
    <Directory "/usr/local/ phpdata /">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order deny,allow
        Allow from all
    
        authtype basic   # authtype命令:指定认证类型为:basic。
        authname "my web site"  #  AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。
        authuserfile /etc/httpd/conf/passwd.secret   AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。
        #require user tom 
        #require user tom bob
        require valid-user
        # require命令:指定哪些用户或组才能被授权访问。如:
      #require user user1 user2(只有用户user1和user2可以访问)
     # require valid-user (在AuthUserFile指定的文件中任何用户都可以访问)
    </Directory>

    利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文

     # htpasswd -cm 存放用户名和密码的文件名 用户名
     htpasswd -cm /etc/httpd/conf/passwd.secret tom
    New password: 123456
    Re-type new password: 123456
    Adding password for user tom
    #第一个生成用户名和密码,需要创建文件,因此需要加-c参数
    
     htpasswd -h   #查看参数
    -c  Create a new file.
    -m  Force MD5 encryption of the password.
    
     htpasswd -m /etc/httpd/conf/passwd.secret bob
    New password: 123456
    Re-type new password: 123456
    Adding password for user bob
     cat /etc/httpd/conf/passwd.secret   #查看内容
    tom:$apr1$WJicnaIz$ejqYMmcqukEMsAVEjLcKf.
    bob:$apr1$S8pXfxJh$tletPNMKd33WZXqdkSLFy0
    
    测试:
    
    [root@xuegod63 conf]# service httpd restart
    http://192.168.1.63/phpdata/

    六 、配置apache虚拟主机,实现在一台服务器上运行多个网站
    apache虚拟主机实现有三种方法:
    1、通过不同的IP地址
    2、通过不同的域名
    3、通过不同的端口号

    三种都需要把虚拟主机功能打开:
    vim /etc/httpd/conf/httpd.conf

    改:
    #NameVirtualHost *:80
    为:
    NameVirtualHost *:80
    
    方法1:
    通过不同的IP地址,解析不同域名
    给服务器增加IP(另一个域名解析出来的那个IP)。
    
    ifconfig eth0:1 192.168.0.56 netmask 255.255.255.0
     mkdir  /var/www/html/bbs/
     echo "bbs.xuegod.cn"  > /var/www/html/bbs/index.html
    
    修改httpd.conf
    #vim httpd.conf   在文件的最后,添加以下内容
    <VirtualHost 192.168.0.63:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /var/www/html/
        ServerName dummy-host.example.com
        ErrorLog logs/dummy-host.example.com-error_log
        CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>
    <VirtualHost 192.168.0.56:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /var/www/html/bbs/
        ServerName dummy-host.example.com
        ErrorLog logs/dummy-host.example.com-error_log
        CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>
    测试:
    [root@xuegod63 conf]# service httpd restart
    http://192.168.1.56/
    http://192.168.1.63/

    方法二:
    通过不同域名:
    在域名管理后台,修改DNS配置,www.xuegod.com与bbs.xuegod.com解析成相同的IP。

    修改httpd.conf

       vim httpd.conf
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /var/www/html/
        ServerName www.xuegod.com
        ErrorLog logs/www.xuegod.com-error_log
        CustomLog logs/www.xuegod.com-access_log common
    </VirtualHost>
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /var/www/html/bbs/
    ServerName  bbs.xuegod.com
    ErrorLog logs/bbs.xuegod.com-error_log
        CustomLog logs/bbs.xuegod.com-access_log common
    </VirtualHost>
    
     vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.1.63   xuegod63.cn
    192.168.1.63   www.xuegod.com
    192.168.1.63   bbs.xuegod.com
    192.168.1.64   xuegod64.cn

    测试:

    service httpd restart
    elinks www.xuegod.com 
     elinks bbs.xuegod.com

    方法3:基于端口配置虚拟主机:

    vim /etc/httpd/conf/httpd.conf   
     改: 
    Listen   80  
    为:
    Listen   80  
    Listen   81  
    #  更改为你要添加的多个端口
    
    再建立两个虚拟主机: 
        vim /etc/httpd/conf/httpd.conf   #  在文件的最后添加
    
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /var/www/html/
        ServerName www.example.com
        ErrorLog logs/www.example.com-error_log
        CustomLog logs/www.example.com-access_log common
    </VirtualHost>
    <VirtualHost *:81>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /var/www/html/bbs/
        ServerName bbs.example.com
        ErrorLog logs/bbs.example.com-error_log
        CustomLog logs/bbs.example.com-access_log common
    </VirtualHost>

    测试:

     service httpd restart
    http://192.168.1.63/
    http://192.168.1.63:81/
    
  • 相关阅读:
    宏任务与微任务
    reactnative 自定义项目的图标库
    react-native中textInput在androidTV上的焦点处理(坑篇)
    js中!!的运用
    ES6里class杂乱随笔
    浅析链式调用
    link和@import的区别
    ES2020链判断运算符?.和Null判断运算符??
    vue组件使用name属性来生成递归组件
    k8s学习——相关概念
  • 原文地址:https://www.cnblogs.com/flyhgx/p/6367963.html
Copyright © 2020-2023  润新知