[关闭]
@52fhy 2015-12-04T20:56:23.000000Z 字数 4879 阅读 652

第七天 Apache配置

Linux

第十四章 Apache服务器

一 简介

1 名称了解
www:world wide web 万维网
http 协议: 超文本传输协议
HTML语言: 超文本标识语言
URL:统一资源定位,协议+域名:端口+网页文件名
例如:

  1. http://www.sina.com.cn:80/11/index.html

2 搭建www的服务器的方法
windows: IIS+asp+SQLserver
Internet Information server
Linux: apache+mysql+php
Nginx+mysql+php
Fast-cgi: php-fpm

二 安装

1、lamp源码安装
2、rpm包安装

  1. httpd
  2. mysql
  3. mysql-server
  4. php
  5. php-devel
  6. php-mysql

三 相关文件

apache配置文件
源码包安装:

  1. /usr/lcoal/apache2/etc/httpd.conf
  2. /usr/local/apache/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/

日志处理:
1、日志切割
2、日志轮替 30

  1. [root@sc apache2]# vi /etc/logrotate.conf
  1. /usr/local/apache2/logs/access_log {
  2. daily
  3. rotate 30
  4. }

四 配置文件

注意:apache配置文件严格区分大小写

1 针对主机环境的基本配置

  1. ServerRoot #apache主目录
  2. Listen #监听端口
  3. LoadModule #加载的相关模块
  4. User
  5. Group #用户和组
  6. ServerAdmin #管理员邮箱
  7. ServerName #服务器名(没有域名解析时,使用临时解析。不开启)
  8. ErrorLog "logs/error_log" #错误日志
  9. CustomLog "logs/access_log" common #正确访问日志
  10. DirectoryIndex index.html index.php #默认网页文件名,优先级顺序
  11. Include etc/extra/httpd-vhosts.conf 子配置文件中内容也会加载生效

2 主页目录及权限

  1. DocumentRoot "/usr/local/apache2//htdocs" #主页目录
  2. <Directory "/usr/local/apache2//htdocs"> #Directory关键字定义目录权限
  3. Options Indexes FollowSymLinks
  4. #options
  5. # None:没有任何额外权限
  6. # All:所有权限
  7. # Indexes: 浏览权限(当此目录下没有默认网页文件时,显示目录内容)
  8. # FollowSymLinks:准许软连接到其他目录
  9. AllowOverride None #定义是否允许目录下.htaccess文件中的权限生效
  10. # None:.htaccess中权限不生效
  11. # All:文件中所有权限都生效
  12. # AuthConfig:文件中,只有网页认证的权限生效。
  13. Require all granted 访问控制列表

定义此目录的允许访问权限
例1: 仅允许IP为192.168.1.1的主机访问

  1. <RequireAll>
  2. Require all granted
  3. Require ip 192.168.1.1
  4. </RequireAll>

例子2.仅允许192.168.0.0/24网络的主机访问

Require all granted
Require ip 192.168.1.0/24

例子3.禁止192.168.1.2的主机访问,其他的都允许访问

  1. <RequireAll>
  2. Require all granted
  3. Require not ip 192.168.1.2
  4. </RequireAll>

例子4.允许所有访问

  1. Require all granted #可以不写在<RequireAll></RequireAll>中

例子5.拒绝所有访问,

  1. Require all denied #可以不写在<RequireAll>。。。</RequireAll>中

3 目录别名
子配置文件名etc/extra/httpd-autoindex.conf

  1. Alias /icons/ "/usr/local/apache2//icons/"
  1. <Directory "/usr/local/apache2//icons">
  2. Options Indexes MultiViews MultiViews多编码支持
  3. AllowOverride None
  4. Require all granted
  5. </Directory>

4 用户认证
限制特定目录,只有指定用户可以访问。

1) 建立需要保护的目录

①在/usr/local/apache2/htdocs/11下建立目录,然后保护
②使用别名,在系统位置建立目录,然后保护

  1. mkdir -p /share/soft

2)修改配置文件,允许权限文件生效

  1. vi /usr/local/apache2/etc/httpd.conf
  1. Alias /soft/ "/share/soft/"
  2. <Directory "/share/soft">
  3. Options Indexes
  4. AllowOverride All #开启权限认证文件.htaccess
  5. Require all granted
  6. </Directory>

重启apache

3)在指定目录建立权限文件

  1. cd /share/soft
  2. vi .htaccess #不区分大小写
  1. AuthName "50 docs" #提示信息
  2. AuthType basic #加密类型
  3. AuthUserFile /share/apache.passwd #密码文件,文件名自定义,使用绝对路径
  4. require valid-user #允许密码文件中所有用户访问

4)建立密码文件,加入允许访问的用户。用户和系统用户无关

  1. /usr/local/apache2/bin/htpasswd -c /share/apache.passwd test1
  2. #-c 建立密码文件,只有添加第一个用户时,才能-c
  3. /usr/local/apache2/bin/htpasswd -m /share/apache.passwd test2
  4. #-m 再添加更多用户时,

5 虚拟主机

1)分类
基于IP的虚拟主机: 一台服务器,多个IP,搭建多个网站。
基于端口的虚拟主机: 一台服务器,一个ip,搭建多个网站,每个网络使用不同端口访问。
基于名字的虚拟主机: 一台服务器,一个ip,搭建多个网站,每个网站使用不同域名访问。

2)步骤:
a. 解析试验域名
www.sina.com
www.sohu.com

  1. C:\WINDOWS\system32\drivers\etc\hosts windows
  2. /etc/hosts Linux

b. 规划网站主目录

  1. /share/sina--------------www.sina.com
  2. /share/sohu ------------ www.sohu.com

c. 修改配置文件

  1. vi /usr/local/apache2/etc/httpd.conf
  1. \Include etc//extra/httpd-vhosts.conf
  1. #打开虚拟主机配置文件
  2. vi /usr/local/apache2/etc/extra/httpd-vhosts.conf
  1. <Directory "/usr/local/apache2/htdocs/sina">
  2. Options Indexes
  3. AllowOverride None
  4.   Require all granted
  5. </Directory>
  6. <Directory "/usr/local/apache2/htdocs/sohu">
  7. Options Indexes
  8. AllowOverride None
  9. Require all granted
  10. </Directory>
  11. <VirtualHost 192.168.150.253>
  12. #注意,只能写ip
  13. ServerAdmin webmaster@sina.com
  14. #管理员邮箱
  15. DocumentRoot "/usr/local/apache2/htdocs/sina"
  16. #网站主目录
  17. ServerName www.sina.com
  18. #完整域名
  19. ErrorLog "logs/sina-error_log"
  20. #错误日志
  21. CustomLog "logs/sina-access_log" common
  22. #访问日志
  23. </VirtualHost>
  24. <VirtualHost 192.168.150.253>
  25. ServerAdmin webmaster@sohu.com
  26. DocumentRoot "/usr/local/apache2/htdocs/sohu"
  27. ServerName www.sohu.com
  28. ErrorLog "logs/sohu.com-error_log"
  29. CustomLog "logs/sohu.com-access_log" common
  30. </VirtualHost>

6 rewrite 重写功能
在URL中输入一个地址,会自动跳转为另一个

1)域名跳转 www.sina.com ------> www.sohu.com

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

  1. [root@localhost ~]# vi /usr/local/apache2/etc/httpd.conf
  2. LoadModule rewrite_module modules/mod_rewrite.so
  3. #打开重写模块,记得重启apache
  4. 修改配置文件,使sina目录的。htaccess文件生效
  5. [root@localhost etc]# vi extra/httpd-vhosts.conf
  6. <Directory "/usr/local/apache2/htdocs/sina">
  7. Options Indexes FollowSymLinks
  8. AllowOverride All
  9.   Require all granted
  10. </Directory>
  11. vi /usr/local/apache2/htdocs/sina/.htaccess
  12. RewriteEngine on
  13. #开启rewrite功能
  14. RewriteCond %{HTTP_HOST} www.sina.com
  15. 把以www.sina.com 开头的内容赋值给HTTP_HOST变量
  16. RewriteRule .* http://www.sohu.com
  17. .* 输入任何地址,都跳转到http://www.sohu.com

2)静态网页向动态网页跳转
修改配置文件

  1. <Directory "/usr/local/apache2/htdocs/sohu">
  2. Options Indexes FollowSymLinks
  3. AllowOverride All
  4. Require all granted
  5. </Directory>
  1. vi /usr/local/apache2/htdocs/sohu/.htaccess
  1. RewriteEngine on
  2. RewriteRule index(\d+).html index.php?id=$1
  3. # 输入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 最大连接数
MaxRequestWorkers 250 (默认worker MPM模块生效)

httpd-multilang-errordoc.conf 错页面
httpd-ssl.conf ssl安全套接字访问
httpd-userdir.conf 用户主目录配置
httpd-vhosts.conf 虚拟主机

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注