`

php配置之Apache配置

    博客分类:
  • php
阅读更多

学Java的一直干php开发,有点小杯具。最近整理自己的项目时,发现以前用到的一些东西从来没有整理过,刚好最近没啥事干,把以前的与开

发有关的东西都整理整理。php方就从配置开始整理。

    很多人对于配置望而却步,因为配置是很难的事,因此都使用一些集成的工程完成配置例如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

 

最近配置Apache是碰见 libmysql.dll 丢失的问题,其实是没有加载相应的 libmysql.dll 文件

LoadModule php5_module "d:/php/php5apache2_2.dll"

前加入 LoadFile "d:\php\libmysql.dll"
php配置下次再写

 

0
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics