转载自http://xianglp.iteye.com/blog/685271
很多人对于配置望而却步,因为配置是很难的事,因此都使用一些集成的工程完成配置例如php使用EasyPHP,这样很多的参数配置都是使
用默认的配置,但是对于不同的项目来说所对应的需求是不同的,比如:安全等 ,所以我们应该为不同的项目采用不同的配置策略。
安装php5、apache2.0、mysql 5.0等软件,安装步骤就不详细说明。网上有的是。
各自的安装目录为
php D:\php
apache D:\apache
mysql D:\mysql
文档的主目录为 D:\www
配置Apache
第一步:配置ServerRoot,修改D:\apache\httpd.conf文件的ServerRoot 指定到你Apache安装目录,如果是安装版的会自动设置为你Apache所在
目录
ServerRoot "D:/apache"
其它配置文件的相对路径是基于此目录。
第二步:导入php module即指定php5apache2_2.dll所在的位置,在LoadModule模块的最后追加(php配置下篇再介绍)。
LoadModule php5_module "d:/php/php5apache2_2.dll"
第三步:将PHPIniDir模块修改为你php.ini所在的目录,这里我们php.ini在php文件下(php配置下篇再介绍)。
PHPIniDir "D:/php"
第四步:添加可以执行php的文件类型
AddType application/x-httpd-php .php
如果没有追加该类型将无法执行后缀为 .php 的文件
同理可知 AddType application/x-httpd-php .txt,这样的话普通的文本格式文件也能运行php程序
第五步:配置ServerName,已注册DNS服务名称可以配置DNS服务的名称,如果没有可以配置为IP。
ServerName localhost
第六步:配置DocumentRoot,该指令用于配置web文档的根目录,可以是绝对路径也可以是相对路径,相对路径指的时相对ServerRoot指令的路
径
DocumentRoot "d:/www"
第七步:配置Directory,标记对指定目录做出访问权限控制,配置是必不可少的,部分的安全控制就在它下面配置,先介绍几个常用的配置参数
AllowOverride 确定允许读取.htaccess文件中的指令类型
避免使用.htaccess文件有主要原因是性能。如果AllowOverride启用了.htaccess文件,则Apache需要在每个目录中查找.htaccess文件,
因此,无论是否真正用到,启用.htaccess都会导致性能的下降。
另外,对每一个请求,都需要读取一次.htaccess文件。
还有,Apache必须在所有上级的目录中查找.htaccess文件,
以使所有有效的指令都起作用(参见指令的生效),所以,如果请求/www/test/index.html中,
Apache必须查找以下文件
/.htaccess
/www/.htaccess
/www/test/.htaccess
将AllowOverride设置为none可以完全禁止使用.htaccess文件
Options指令控制了在特定目录中将使用哪些服务器特性。
主要介绍两个会常用到的(其他看后面的链接)
Indexes 如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生
成的一个格式化后的目录列表。
FollowSymLinks 服务器允许在此目录中使用符号连接。
开发时可以配置为 Options Indexes FollowSymLink
在发布时为了安全配置为 Options None
开启None条件(网上拷的)
1. 如果没有启用mod_rewrite,可以用Options None 来保证安全性。
2. 如果启用了mod_rewrite, 那么Options就一定要启用FollowSymLinks或者SymLinksifOwnerMatch, 否则会出现Fobidden页面禁止访问的错误
。
查看错误日志会有这样的出错信息:(Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule
directive is forbidden:**)
order 控制默认的访问状态
Deny,Allow
Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。
Allow,Deny
Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问
如
order Deny,Allow
allow from all
deny from 127.0.0.1
先评估Deny的指令127.0.0.1不可访问,在评估Allow指令可以访问,允许所有访问所以127.0.0.1可以访问
order Allow,Deny
allow from all
deny from 127.0.0.1
先评估Allow指令可以访问,允许所有访问,再评估Deny的指令127.0.0.1不可访问,所以127.0.0.1不可以访问
该指令可以屏蔽某些流氓爬虫抓取你的网站
Directory的配置就讲这些,指令请参考这里一下是一个完全的Directory的配置。
<Directory "D:/www">
Options None
AllowOverride None
order Allow,Deny
allow from all
deny from www.google.com.hk
</Directory>
第八步:配置WEB主页文件名
在httpd.conf文件中成对的<IfModule dir_module>标记中,用DirectoryIndex参数指定WEB主页文件名。例如
<IfModule dir_module>
DirectoryIndex index.html index.php index.php3 index.php4 index.php5
</IfModule>
在URL中没有指明要访问的文件名,则就是对此目录下的主页文件的访问。这里指定了4个作为主页文档的文件,每两个文件名之间用英文空格
分隔。排列在左边的优先权最高,排列在右边的优先权最低。例如:按照上述配置,当对此WEB服务器做URL请求为http://127.0.0.1时,即请
求其WEB根路径,则将在指定的WEB根目录下寻找名为 inex.html 的文件作为主页返回给客户端浏览器。如果 index.php 不存在,则寻找
index.htm 文件;否则寻找 index.php3 文件;否则寻找 index.php4 文件……。指定的主页文档都不存在,如果Directory该目录Options配
置为Indexes FollowSymLinks,则还回该目录的文件列表,如果配置为none对此路径的请求将失败,浏览器返回404错误。
第九步:配置URL与文件系统的映射
在httpd.conf文件中成对的<IfModule dir_module>标记中,使用Alias参数来指导URL与文件系统映射关系,这样映射的文件系统可以是
Documentroot以外的本地系统中。主意该命令必须与Directory一起使用。如
Alias /test "d:/test"
<Directory "d:/test">
Options FollowSymLinks Indexes
AllowOverride None
Order deny,allow
allow from all
</Directory>
访问test目录用127.0.0.1/test就能访问该目录文件
第十步:配置虚拟主机
追加NameVirtualHost指令 设置为 *:80
NameVirtualHost *:80
配置虚以主机
<VirtualHost *:80>
ServerAdmin xxx@example.com
DocumentRoot "D:/test"
ServerName xxx.com
</VirtualHost>
注意如果要访问,xp必须修改本机的 C:\WINDOWS\system32\drivers\etc目录下的hosts文件追加
127.0.0.1 xxx.com
配置完成即可以通过http://xxx.com
十步是Apache的正常配置地方,日志配置在这里就不介绍了。
注:安装完Apache后有官方已经给出很多的配置用例,它们所在的目录为Apache的安装目录conf\default\目录下,根据你的配置需求可以参考
官方的一些配置
注:如果只要Apache启动只要配置 第一步,第五步,第六步
如果要Apache支持php,则要配置 第一步,第二步,第三步,第四步,第五步,第六步,第七步,其他采用默认配置就行。
其他配置指令请参考 http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/core.html