LinuxApache服务器

Posted Irving_yx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinuxApache服务器相关的知识,希望对你有一定的参考价值。

一 简介

  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:\WINDOWS\system32\drivers\etc\hosts      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 [email protected]
#管理员邮箱
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 [email protected]
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

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

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

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

      [[email protected] 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 虚拟主机

 

以上是关于LinuxApache服务器的主要内容,如果未能解决你的问题,请参考以下文章

Apache 服务

linuxapache-tomcat怎么安装

Linux Apache页面乱码怎么办

php设置根本不起作用

Linux -- 搭建php服务器环境小记

设置虚拟主机文件以托管来自远程服务器的源代码