zl程序教程

您现在的位置是:首页 >  其他

当前栏目

apachedocumentroot指向htcdoc之外提示403错误的解决方法

错误方法 解决 提示 指向 之外 403
2023-06-13 09:14:18 时间
后来发现,原来又是Apache没配置好,是apache的mod_authz_host模块在起控制作用。
1.如果不启用vhosts
只需修改httpd.conf
默认Directory节如下,注意红色部分,表示目录/usr/local/apache/htdocs允许所有主机访问
复制代码代码如下:

<Directory"/usr/local/apache/htdocs">
#
#PossiblevaluesfortheOptionsdirectiveare"None","All",
#oranycombinationof:
#IndexesIncludesFollowSymLinksSymLinksifOwnerMatchExecCGIMultiViews
#
#Notethat"MultiViews"mustbenamed*explicitly*---"OptionsAll"
#doesn"tgiveittoyou.
#
#TheOptionsdirectiveisbothcomplicatedandimportant.Pleasesee
#http://httpd.apache.org/docs/2.2/mod/core.html#options
#formoreinformation.
#
#OptionsIndexesFollowSymLinks
#
#AllowOverridecontrolswhatdirectivesmaybeplacedin.htaccessfiles.
#Itcanbe"All","None",oranycombinationofthekeywords:
#OptionsFileInfoAuthConfigLimit
#
AllowOverrideNone
#
#Controlswhocangetstufffromthisserver.
#
Orderallow,deny
Allowfromall
</Directory>

由于主目录被指到别的地方了,所以将蓝色部分/usr/local/apache/htdocs换成你新的主目录就OK了。
2.启用vhosts
启用vhosts的话,你就可以不作上面的修改了,因为VirtualHost可以单独配置这个节的属性,所以我们在VirtualHost这个节里配置的话就更方便了,下面的配置中,我把我的网站放在/var/vhosts/www.test.cn下。
复制代码代码如下:

/usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost*:80>
<Directory"/var/vhosts/www.test.cn">
#Denyfromall
Allowfromall
</Directory>
DocumentRoot"/var/vhosts/www.test.cn"
ServerNamewww.test.cn
</VirtualHost>

如果把Denyfromall的注释去掉,那么服务器就会拒绝所有访问(和我们刚开始把主目录移动到htdocs外而没做任何配置修改时一样,哈哈)
补充一点:
如果你是写个index.php放在目录下测试,可要注意了,记得加上默认主页index.php
DirectoryIndexindex.htmlindex.php