配置虚拟主机之后访问站点。提示我没有权限访问权限

一般情况下有以下几个问题;

1,站点目录访问权限配置问题

2, 目录权限问题

3,路径问题

提示我没有权限,解决思路,第一步检查站点目录权限设置




[root@web1_lamp html]#tree

.

├── bbs

│   └── index.html

├── blog

│   └── index.html

└── www

    └── index.html

 

3 directories, 3 files

[root@web1_lamp html]#ll

total 12

drwxrwxrwx 2 root root4096 Mar  4 07:57 bbs

drwxrwxrwx 2 root root4096 Mar  4 07:58 blog

drwxrwxrwx 2 root root4096 Mar  4 07:58 www

我给目录最大权限。 777 依然报错

第二步检查我的配置的站点目录权限

[root@web1_lamp conf]#diff httpd.conf httpd.conf-2015-02

161,162c161,162

< User www

< Group www

---

> User daemon

> Group daemon

192c192

< ServerNamelocalhost:80

---

> #ServerNamewww.example.com:80

250c250

<     DirectoryIndex index.php index.html

---

>     DirectoryIndex index.html

275c275

< LogLevel error

---

> LogLevel warn

379,380d378

<     AddType application/x-httpd-php .php

<     AddType application/x-httpd-souce .phps

450c448

< Includeconf/extra/httpd-mpm.conf

---

> #Include conf/extra/httpd-mpm.conf

468c466

< Includeconf/extra/httpd-vhosts.conf

---

> #Includeconf/extra/httpd-vhosts.conf

507,513d504

<

< <Directory"/data0/html">

<     Options FollowSymLinks

<     AllowOverride None

<     Order allow,deny

<     Allow from all

< </Directory>

[root@web1_lamp conf]#/etc/init.d/httpd graceful

访问

You don't havepermission to access / on this server.   网页显示403 禁止访问

查看解析

20.0.0.10    www.wangxing.org

20.0.0.10    bbs.wangxing.org

20.0.0.10    blog.wangxing.org

客户端解析

检查解析ok

防火墙:

[root@web1_lamp conf]#/etc/init.d/iptables status

iptables: Firewall isnot running.

[root@web1_lamp conf]#/etc/init.d/iptables stop

[root@web1_lamp conf]#getenforce

Disabled

查看源码

403 错误

20.0.0.1 - -[04/Mar/2015:08:59:25 +0800] "GET /favicon.ico HTTP/1.1" 403 220

20.0.0.1 - -[04/Mar/2015:08:59:25 +0800] "GET / HTTP/1.1" 403 209

20.0.0.1 - -[04/Mar/2015:08:59:25 +0800] "GET /favicon.ico HTTP/1.1" 403 220

20.0.0.1 - -[04/Mar/2015:08:59:25 +0800] "GET / HTTP/1.1" 403 209

20.0.0.1 - -[04/Mar/2015:08:59:25 +0800] "GET /favicon.ico HTTP/1.1" 403 220

20.0.0.1 - -[04/Mar/2015:08:59:25 +0800] "GET / HTTP/1.1" 403 209

20.0.0.1 - -[04/Mar/2015:08:59:25 +0800] "GET /favicon.icoHTTP/1.1" 403 220

https://wiki.apache.org/httpd/ClientDeniedByServerConfiguration  查看官网修改内容

 

根据错误提示

Youdon't have permission to access / on this server.  去官网查找原因

http://httpd.apache.org/docs/2.4/upgrading.html  根据官网的资料修改权限之后ok.  

查看apache的配置文件,httpd.conf  

<Directory />

    AllowOverride none

    Requireall denied

</Directory>


这句话的意思是拒绝我/ 目录的访问,这可能是apache 2.4 版本的出于安全的考虑,对apache 的安全机制做了调整了,要想使用新版本软件,还是需要看版本说明和官网文档的。 

http://httpd.apache.org/docs/2.4/upgrading.html ,但是很多情况下有些是默认的还是可以访问的,但是我的问题修改之后解决了,

总结,在配置虚拟主机和php设置的时候

1.       Apache 整合php配置

Php的官网建议采用以下配置文件作为添加

<FilesMatch \.php$>

SetHandler application/x-httpd-php

</FilesMatch>

将这句话添加到httpd.conf  最后面,

还有php的源码过滤器,但是官网不建议在生产环境中去使用,出于对安全的考虑

<FilesMatch "\.phps$">

    SetHandlerapplication/x-httpd-php-source

</FilesMatch>

2,站点目录权限的配置

 站点目录权限的配置可以添加在httpd.conf 中,也可以添加在httpd-vhosts.conf 文件中,

 

<Directory"/data0/html">

    Options FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from  all

</Directory>

可以添加在虚拟配置文件中,也可以添加在虚拟配置文件最后面,

可以使用/usr/local/apache2/bin/apachectl –S 去检查虚拟主机的配置文件

然后使用/usr/local/apache2/bin/apachectl  graceful 去测试,
 



备注:配置相关版本的apache最好查看官网手册