设为首页 收藏本站
查看: 400|回复: 0

[经验分享] php配置之Apache配置

[复制链接]

尚未签到

发表于 2017-1-1 11:35:37 | 显示全部楼层 |阅读模式
  学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配置下次再写

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-322420-1-1.html 上篇帖子: Apache Axis2 环境搭配详解 下篇帖子: apache 基金会 project 概述
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表