APACHE配置详解
- 本章结构
- 相关概念
- 协议:
超文本传输协议—HTTP协议
- 核心
超文本标识语言—HTML语言
- URL
统一资源定位符—http://或https://
如:http://www.baidu.com/index.html
- 搭建
Linux+apache+mysql+php
Linux+nginx+mysql+php
Windows+IIS+SQLserver+Asp
- 安装方式
- 源码包安装
- RPM包安装
# yum -y install httpd mysql mysql-server mysql-devel php php-devel php-mysql
- 相关文件
- Apache配置文件:
源码包安装:/usr/local/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/htdocs
Rpm包:/var/log/httpd
- 常用配置项
1、常用配置项
ServerRoot apache主目录
Listen 监听端口
LoadModule 加载的相关模块
User 用户
Group 组
ServerAdmin 管理员邮箱
ServerName 服务器名(没有域名解析时,使用临时解析,不开启)
ErrorLog "logs/error_log" common 错误日志
CustemLog "logs/access_log"common 正确访问日志
DirectoryIndex index.html index.php 默认网页文件名,优先级顺序
Include etc/extra/httpd-vhosts.conf 子配置文件中内容也会加载生效
DocumentRoot "/usr/local/apache2/htdocs" 主页目录
<Directory "/usr/local/apache2/htdocs"> Directory关键字定义目录权限
Options Indexes FollowSymlinks
None:没有任何额外权限
All:所有权限
Indexes:浏览权限(当此目录没有默认网页文件时,显示目录内容)
FollowSymlinks:准许软链接到其他目录
AllowOverride None:定义是否允许目录下.htaccess文件中的权限生效
None:.htaccess中权限不生效
All:文件中所有权限都生效
Require all granted 访问控制列表
2、目录别名与用户身份验证
Alias /指定的目录 /实际的目录
vim .htaccess #不区分大小写
AuthName "name" #提示信息,任意
AuthType basic #加密类型
AuthUserFile /share/apache.passwd #密码文件,文件名自定义
require valid-user #允许密码文件中所有用户访问
# /usr/local/apache2/bin/htpasswd -c /share/apache.passswd user1
-c 建立密码文件,只有添加第一个用户时,才能-c否则会覆盖之前定义的
# /usr/local/apache2/bin/htpasswd -m /share/apache.passswduser2
-m 再添加更多用户时,记得用-m
3、虚拟主机
基于IP的虚拟主机:一台服务器,多个IP,搭建多个网站
基于端口的虚拟主机:一台服务器,一个IP,搭建多个网站,每个网络使用不同端口访问
基于域名的虚拟主机:一台服务器,一个IP,搭建多个网站,每个网站使用不同域名访问
- 案例1:基于用户身份验证
- [root@myredhat htdocs]# vim .htaccess
authname "handsome boy"
authtype basic
authuserfile "/usr/local/apache2/htdocs/apache.passwd"
require valid-user
#注意创建的.htaccess文件要与需要验证保护的主页在同一个文件夹里面
- # /usr/local/apache2/bin/htpasswd –c /usr/local/apache2/htdocs/apache.passwd user1 #输入密码
- # /usr/local/apache2/bin/htpasswd -m /usr/local/apache2/htdocs/apache.passwd user2
#创建密码文件和验证的用户~
- # vim /usr/local/apache2/etc/httpd.conf
DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
- # /usr/local/apache2/bin/apachectl restart 重启服务
# curl http://192.168.131.134/index.html
在192.168.131.134也就是自己主机进行访问试验
# curl http://192.168.131.134/index.html
- 拒绝某个IP地址访问
- #vim /usr/local/apache2/etc/httpd.conf
DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
<Requireall>
Require all granted
Require not ip 192.168.131.129
</Requireall>
</Directory>
- # /usr/local/apache2/bin/apachectl restart
- 用之前192.168.131.134那台主机进行访问,发现无法访问了,而其他主机正常
- 案例3:虚拟主机
- 基于IP地址的虚拟主机
- # ifconfig eth0:0 192.168.131.135 netmask 255.255.255.0 #配置虚拟IP地址
- # cd /usr/local/apache2/htdocs/
# mkdir taobao
# mkdir xdl
# cd taobao/
# vim index.html
www.taobao.com
# cd xdl/
# vim index.html
- # vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
<VirtualHost 192.168.131.134:80>
ServerAdmin 863380404@qq.com
DocumentRoot "/usr/local/apache2/htdocs/taobao"
ErrorLog "logs/taobao-error_log"
CustomLog "logs/taobao-access_log" common
</VirtualHost>
<Directory "/usr/local/apache2/htdocs/taobao">
options Indexes FollowSymLinks
allowoverride none
require all granted
</Directory>
<VirtualHost 192.168.131.135:80>
ServerAdmin 863380404@qq.com
DocumentRoot "/usr/local/apache2/htdocs/xdl"
ErrorLog "logs/xdl-error_log"
CustomLog "logs/xdl-access_log" common
</VirtualHost>
<Directory "/usr/local/apache2/htdocs/xdl">
options Indexes FollowSymLinks
allowoverride none
require all granted
</Directory>
- # vim /usr/local/apache2/etc/httpd.conf
- # /usr/local/apache2/bin/apachectl restart
- 基于端口的虚拟主机
- # vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
Listen 8080
<VirtualHost 192.168.131.134:80>
ServerAdmin 863380404@qq.com
DocumentRoot "/usr/local/apache2/htdocs/taobao"
ErrorLog "logs/taobao-error_log"
CustomLog "logs/taobao-access_log" common
</VirtualHost>
<Directory "/usr/local/apache2/htdocs/taobao">
options Indexes FollowSymLinks
allowoverride none
require all granted
</Directory>
<VirtualHost 192.168.131.134:8080>
ServerAdmin 863380404@qq.com
DocumentRoot "/usr/local/apache2/htdocs/xdl"
ErrorLog "logs/xdl-error_log"
CustomLog "logs/xdl-access_log" common
</VirtualHost>
<Directory "/usr/local/apache2/htdocs/xdl">
options Indexes FollowSymLinks
allowoverride none
require all granted
</Directory>
- # /usr/local/apache2/bin/apachectl restart
- 在浏览其分别输入http://192.168.131.134:8080/和http://192.168.131.134/,正确显示
#rndc-confgen -r /dev/urandom -a
<VirtualHost 192.168.131.134:80>
DocumentRoot "/usr/local/apache2/htdocs/taobao"
ErrorLog "logs/taobao-error_log"
CustomLog "logs/taobao-access_log" common
<Directory "/usr/local/apache2/htdocs/taobao">
options Indexes FollowSymLinks
<VirtualHost 192.168.131.134:80>
DocumentRoot "/usr/local/apache2/htdocs/xdl"
CustomLog "logs/xdl-access_log" common
<Directory "/usr/local/apache2/htdocs/xdl">
- # /usr/local/apache2/bin/apachectl restart
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#curl http://www.taobao.com显示结果如下:
# curl http://www.xdl.com,显示结果如下:
- 案例4:为每个用户分别添加个人主页
- # vim etc/httpd.conf
- # vim etc/extra/httpd-userdir.conf
- # /usr/local/apache2/bin/apachectl restart #重启服务
- # useradd user1
# useradd user2
- # cd /home/user1
# mkdir public_html
# cd public_html/
# vim index.html
I'm user1 index
- # cd /home/user2
# mkdir public_html
# cd public_html/
# vim index.html
I'm user2 index
- # chmod o+x /home/user1
]# chmod o+x /home/user2 #赋予权限,否则无权进入此目录
- 在192.168.131.129这台linux客户机进行测试,结果如下:
[root@myrhel1 ~]# curl http://192.168.131.134/~user1/
I'm user1 index
[root@myrhel1 ~]# curl http://192.168.131.134/~user2/
I'm user2 index
- 案例5:页面间跳转
- # vim /usr/local/apache2/etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so #开启这个选项
- # cd /usr/local/apache2/htdocs/xdl/
# vim .htaccess
rewriteengine on #开启重写规则
rewritecond %{HTTP_HOST} www.xdl.com #具体怎么重写,注意大小写
rewriterule .* http://www.taobao.com #定义重写规则
- # vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
- # /usr/local/apache2/bin/apachectl restart #重启服务
- 在192.168.131.129这台linux客户端主机进行检验:
# elinks http://www.xdl.com 结果显示的是淘宝的测试页面
- 案例6:网页别名
- # mkdir /aliasweb/alias
- #cd /aliasweb/alias
- #vim index.html
this is a alias page
- # vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
<VirtualHost 192.168.131.134:80>
ServerAdmin 863380404@qq.com
DocumentRoot "/"
ServerName www.taobao.com
ErrorLog "logs/taobao-error_log"
CustomLog "logs/taobao-access_log" common
<Directory "/">
options Indexes FollowSymLinks
allowoverride none
require all granted
</Directory>
- </VirtualHost>
- 在192.168.131.134这台linux客户端测试结果
# curl http://192.168.131.134/aliasweb/alias/index.html
this is a alias page
- # vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
- # /usr/local/apache2/bin/apachectl restart
- # curl http://192.168.131.134/aliasweb/index.html
this is a alias page #跟上面显示结果一样




















浙公网安备 33010602011771号