Apache配置详解【转】
http站点要这样配置服务器才安全
主机(站点)配置
一个站点的2个核心信息为:
主机名(服务器名/站点名): ServerName 服务器名
站点位置(站点目录路径): DocumentRoot “实际物理路径”
默认情况下,apache安装成功,就默认配置好了一个“站点”,该站点的实际位置在:
apache安装位置/htdocs/
默认主机名是安装时设置的,比如www.abc.com,当然,也可以使用localhost
单站点配置项
端口监听:
在apache的主配置文件httpd.conf中:
也可以写为:
实际应用中,我们几乎都是80。
设置主机(站点)的名字:服务器名,站点名
ServerName 服务器名
举例:
也可以设置为:
设置主机(站点)的物理路径:
形式:
DocumentRoot “实际物理路径”
重要观念:
站点就是“文件夹”——我让它当站点,它就是站点。
比如:
原始的站点在这里:
修改为:
在浏览“localhost”,发现被进制访问(Forbidden),然后添加访问权限,如下:
就可以了。
目录访问权限
一个站点,就是一个“目录”。
每个目录,都应该给其设定“访问权限”,语法如下:
<Directory “要设置权限的目录路径”>
#设置当一个请求中没有给定请求的文件名又没有默认网页(首页)的时候,显示文件列表
Options Indexes
#设置权限控制的先后顺序,只有2种:Deny,Allow(先拒绝,后允许),Allow,Deny(先允许后拒绝)
Order Deny,Allow
#Deny用于设定要拒绝访问的来源地址或服务器名,几乎没有实际意义!
Deny from 拒绝名单 比如:deny from 192.168.3.8 172.180.4
Allow from 允许名单 比如:Allow from all
#设置该文件夹下的“默认网页”(首页),可以设置多个,用于请求中不带文件名的时候自动使用该文件作为“返回”页面。
DirectoryIndex index.php index.html main.php default.php abc.php 123.html
</Directory>
目录访问权限中的“分布式权限”:
对于某个目录的访问权限,我们在apache中使用Directory来设定,但可能不够方便:
1,apache配置修改,必须重启apache
2,某个站点中的“下级目录”访问权限,不方便单独设置,
这种,可以称为“集中式权限”;
分布式权限,就是:针对某个网站的任何一个下级目录,都可以单独去设置其访问权限,并且可以不重启apache就生效。
做法:分2步:
第1步:
在该站点对应目录权限的Directorty配置中添加一条:
第2步:
在该目录下的任何子目录中,创建一个特殊的文件( .htaccess ),在该文件中写所需要的“权限内容”(几乎跟Directory中的写法一样):
举例:
www.php39.com/day1/中,初始可以浏览结果如下:
然后,在该文件夹中添加一个文件: .htaccess 其内容为:
(该ip不知是谁,反正不是我!)
在该day1文件夹中,就多了一个文件:
然后,重新访问刚才路径(刷新):
多站点的配置
分3步:
第1步:
在apache的主配置文件httpd.conf中,“打开”多站点虚拟主机配置文件项(关键词:vhosts):
初始:
修改为:
第2步:
在httpd-vhosts.conf文件中,设定希望提供“多站点”服务的IP地址和端口号,通常默认就是:*:80,其中“*”代表所有IP,默认其实apache安装好之后就设置好了,无需手动设置(关键字NameVirtualHost):
第3步:
然后就一个站点一个站点加上!形式如下:
<virtualhost *:80>
#这里设置站点1的各项信息
</virtualhost>
<virtualhost *:80>
#这里设置站点2的各项信息
</virtualhost>
...........
注意:
1,先把httpd-vhosts.conf文件中的2个初始安装生成的站点,删除!!!
2,每个站点的设置项,主要就3个:
ServerName,
DocumentRoot,
<Directory>...</Directory>
3,在多站点配置中,第一个站点被称为“默认站点”,如果某个请求的域名无法跟任何一个站点“匹配”,就会当做请求的是默认站点去处理(应答)
4,一旦实现了多站点配置,则最初安装成功时的“默认站点”就失效了,我们可以将“localhost”当做一个普通站点重新设置就可以了,也可以将其放在第一个位置又重新作为默认站点。
举例:
站点别名的设置:
目录别名(虚拟目录)的设置:
某个站点www.abc.com所对应文件夹下有一个目录为d1,则可以这样访问该目录:
www.abc.com/d1
这个d1就称为“真实目录”;
虚拟目录就是:
该站点下不存在某目录名,但却可以使用同样的语法形式,去访问,比如:
www.abc.com/d2 //假设该站点目录下根本就没有d2这个目录,此时却可以访问
实现这种技术,就是所谓“目录别名”(虚拟目录)的设置,如下:
在一个站点中,做如下2步:
第1步:
设置目录别名的名字和其对应的“实际真实目录(文件夹位置)”:
Alias /目录别名的名字 “实际真实目录(文件夹)的位置”
第2步:
设置该真实目录的访问权限(否则是禁止访问的):
<Directory “真实目录路径”>
。。。。。。跟其他目录权限设置一样
</Directory>
转自
PHP站点要这样配置服务器才安全 - 今日头条(TouTiao.com)
http://toutiao.com/a6312566458011549954/
Apache配置详解【转】的更多相关文章
- apache配置详解
可参考:Apache 的 httpd.conf 详解 ServerTokens OS 此指令控制了Server回送给客户端的回应头域是否包含关于服务器OS类型和编译进的模块描述信息.服务器会发送:Se ...
- apache 配置详解
三种MPM介绍 Apache 2.X 支持 ...
- CentOS Apache配置详解
要想在linux上实现网页服务器(www)需要Apache这个服务器软件,不过Apache仅能提供最基本的静态网站数据而已,想要实现动态网站的话,最好还是要PHP与MySQL的支持,所以下面我们将会以 ...
- Apache配置详解(最好的APACHE配置教程)
From: http://aiks.blog.com.cn/archives/2006/1748482.shtml Apache的配置 Apache的配置由httpd.conf文件配置,因此下面的配置 ...
- .htaccess中Apache配置详解
1.<IfDefine> 指令 说明 封装一组只有在启动时当测试结果为真时才生效的指令 语法 <IfDefine [!]parameter-name> ... </IfD ...
- apache配置详解 apache安装路径
http://www.linuxidc.com/Linux/2015-02/113921.htm 不同apache的安装方式 的安装目录示例 http://www.121down.com/articl ...
- apache 虚拟主机详细配置:http.conf配置详解
apache 虚拟主机详细配置:http.conf配置详解 Apache的配置文件http.conf参数含义详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd. ...
- Apache日志配置详解(rotatelogs LogFormat)
logs/error_logCustomLog logs/access_log common--默认为以上部分 修改为如下: ErrorLog "|/usr/sbin/rotatelogs ...
- Apache + Tomcat集群配置详解 (1)
一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://to ...
随机推荐
- Xcode8注释有时会失效的解决方法
1.苹果开发解决了xcode ghost,而且Xcode8也取消了三方插件的功能,所以注释有时会失效,解决办法终端运行命令:sudo /usr/libexec/xpccachectl 回车 + 输 ...
- mybatis拦截器分页
package com.test.interceptor; import java.sql.Connection; import java.sql.ResultSet; import java.sql ...
- pthon之异常、文件练习题
1.在当前目录下查找文件夹“电摄班”,如果不存在则创建2.在电摄班下创建boys.girls.两个txt文件3.将字典中属于电摄班的同学按男女区分,分别放到boys.girls文件中,每个名字在文件中 ...
- 转:Android应用性能测试
Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电了——应用耗电大 2)首次/非首次启动应用,进入应用特别慢——应用启动慢 3)应用使用过程中,越来越卡——CPU能力不足/内 ...
- Retrofit,Rxjava,OkHttp3的配置
这几个库的版本都更新了,和以前的使用略有不同,这是两篇介绍的博客:http://www.jianshu.com/p/91ac13ed076d ,https://drakeet.me/retrofit- ...
- "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库。
一,在我使用自动生成数据库的时候,当你改变了数据库就会出现下面问题 "ApplicationDbContext"(泛指之类的数据库上下文模型)上下文的模型已在数据库创建后发生更改. ...
- linux命令 time
功能:用于计算命令执行的世界 语法: time command 例如: hbg@root:~/dl$ time ls111 apple.sh b.txt duplic ...
- [ An Ac a Day ^_^ ] HihoCoder 1249 Xiongnu's Land 线性扫描
拿到了icpc北京站的参赛名额 感谢亮哥~ 虽然是地狱之战 但也要全力以赴! 题意: 有一片沙漠 n片绿洲 让你用一条线分成两部分 左≥右 而且分割线要尽量靠右 问线的位置 思路: 网上说可以二分 没 ...
- 防暴力破解 Fail2Ban之python
fai2ban的介绍 fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH.SMTP.FTP密码,只要 ...
- JSON.parse()和JSON.stringify()&&traditional(ajax请求)的作用
parse是一个字符串中解析出json对象,如 var str = '{"name":"haizeiwang"}' 结果: JSON.parse(str) na ...