1. 简介
1.1 www:world wide web
http 协议: 超文本传输协议
HTML语言: 超文本标识语言
1.2 URL:统一资源定位 协议+域名:端口+网页文件名
http://www.sina.com.cn:80/admin/index.html
2. 安装
2.1 lamp源码安装
详见Lamp 环境搭建 -- 稍后补充
2.2 rpm包安装 yum安装
httpd
mysql
mysql-server
php
php-devel
php-mysql
3. 相关文件
3.1 apache配置文件
①源码包安装:
/usr/lcoal/apache2/etc/httpd.conf
/usr/local/apache2/etc/extra/*.conf
②rpm包安装:
/etc/httpd/conf/httpd.conf
3.2 默认网页保存位置:
源码包: /usr/local/apache2/htdocs/
rpm包安装: /var/www/html/
3.3 日志保存位置
源码包:/usr/local/apache2/logs/
rpm包: /var/log/httpd/
rpm包默认使用日志处理程序 /var下都会轮替 源码包才需要设置
4. 日志处理
4.1 日志切割
apache自带日志切割
4.2 日志轮替
linux自带日志管理 logrorate.conf
vi /etc/logrotate.conf
新增
/usr/local/apache2/logs/access_log{
daily
rotate 30
}
:wq
强制刷新截取日志
logrotate -f /etc/logrotate.conf
Error_log也要进行轮替
5. 配置文件
5.0 准备工作
①写一个alias别名,快速将httpd服务重启
vim /root/.bashrc
alias hta='/usr/local/apache2/bin/apachectl start'
alias hto='/usr/local/apache2/bin/apachectl stop'
source /root/.bashrc
②备份http.conf
cp /usr/local/apache2/etc/httpd.conf httpd.conf.bak
注意:apache配置文件严格区分大小写
5.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-info.conf 子配置文件中内容也会加载生效
5.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错误)
5.3 目录别名
a)主配置文件开启autoindex功能
vim /usr/local/apache2/etc/httpd.conf
# Fancy directory listings
Include etc//extra/httpd-autoindex.conf
b)vim /usr/local/apache2/etc/extra/httpd-autoindex.conf
Alias /icons/ "/usr/local/apache2//icons/"
#apache以为在这里 实际目录位置
<Directory "/usr/local/apache2//icons">
Options Indexes MultiViews #MultiViews多编码支持
AllowOverride None
Require all granted
</Directory>
浏览器测试 http://192.168.137.128/icons/
5.4 虚拟主机
1)分类
基于 IP的虚拟主机: 一台服务器,多个IP,搭建多个网站
基于端口的虚拟主机: 一台服务器,一个IP,搭建多个网站,每个网络使用不同端口访问
基于名字的虚拟主机: 一台服务器,一个IP,搭建多个网站,每个网站使用不同域名访问
2)步骤:
① 解析试验域名
www.jd.com
www.qq.com
C:\WINDOWS\system32\drivers\etc\hosts
② 规划网站主目录
/share/jd--------------www.jd.com
/share/qq ------------ www.qq.com
③ 修改配置文件
打开虚拟主机配置文件
vim /usr/local/apache2/etc/httpd.conf
# Virtual hosts
Include etc//extra/httpd-vhosts.conf
vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
<Directory "/share/jd">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory "/share/qq">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<VirtualHost *:80>
DocumentRoot "/share/jd" #网站主目录
ServerName www.jd.com #完整域名
ErrorLog "logs/jd-error_log" #错误日志
CustomLog "logs/jd-access_log" common #访问日志
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/share/qq"
ServerName www.qq.com
ErrorLog "logs/qq-error_log"
CustomLog "logs/qq-access_log" common
</VirtualHost>
5.5 rewrite 重写功能
目的:在URL中输入一个地址,会自动跳转为另一个
5.5.1 域名跳转
www.qq.com ------> www.jd.com
① 主配置文件开启rewrite功能
vim /usr/local/apache2/etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
#打开重写模块,记得重启apache
② 修改配置文件,使qq目录的.htaccess文件生效
vim extra/httpd-vhosts.conf
<Directory "/share/qq">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
③ vim /share/qq/.htaccess
RewriteEngine on
#开启rewrite功能
RewriteCond %{HTTP_HOST} www.qq.com
#把以www.qq.com开头的内容赋值给HTTP_HOST变量
RewriteRule .* http://www.jd.com
#.* 输入任何地址,都跳转到http://www.jd.com
④ 重启apache
5.5.2 网页文件跳转
① 准备一个新闻网页
cd /share/jd
vi index.php
② 修改配置文件,使jd目录的.htaccess文件生效
<Directory "/share/jd">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
③ vi /share/jd/.htaccess
RewriteEngine on
RewriteRule news_(\d+).html index.php?id=$1
# 输入news_(数值).html时,跳转到index.php文件,同时把数值当成变量传入index.php
5.6 ip限制
<RequireAll>
Require all granted
Require not ip 192.168.136.0/24
</RequireAll>
拒绝某一网段
<RequireAll>
Require all granted
Require ip 192.168.136.128 192.168.136.129
</RequireAll>
允许多个IP
参考作者于倩,使用MarkDown构建而成的Linux常用命令,未找到网上地址
网友评论