Xampp访问被禁止php

84

我是一名Windows用户。我已经使用xampp有一段时间了,但突然间我的.php文件都无法工作了!


访问被禁止!

您没有权限访问所请求的对象。它要么被读保护,要么被服务器拒绝访问。

如果您认为这是服务器错误,请联系网站管理员。

错误403

本地主机

Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.16


在localhost/Practice(Practice是我保存文件的文件夹)中,我可以看到我的.php文件列表。每当我单击它时,文件甚至会打开。但是,当我单击任何文件中的“提交”按钮时,就会出现此错误。 请帮忙!我将xampp从1.8.1更新到1.8.2,但问题仍然存在!

18个回答

170
尝试使用下面的代码,在您的虚拟主机配置中添加它。将以下行添加到httpd-vhosts.conf文件中:

尝试使用以下代码,在您的虚拟主机配置中添加它。将以下行添加到httpd-vhosts.conf文件中:

<Directory "c:/<path-to-projects>/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order Deny,Allow
        Allow from all
        Require all granted
</Directory>

我用这种方法解决了相同的问题。希望能有所帮助。

注意:

更改后请在无痕模式下测试,因为您可能被缓存重定向。


29
关键是 Require all granted。这对我很有帮助。谢谢! - mhulse
1
我遇到了一个问题,我的虚拟主机链接到的文件夹不在C盘上,无法工作并给出了上述错误,但是这个答案最终解决了它! - Larzan
应用这些更改后,请删除SSL插件和/或.htaccess文件,然后再次测试。 - saber tabatabaee yazdi
1
似乎在我的端上不起作用。 - Jenuel Ganawed

17
如果使用Ubuntu操作系统,则检查/Practice文件夹的chmod权限并更改读写权限。
打开终端按快捷键Ctrl+Alt+T,进入$ cd /opt/lampp/htdocs/并使用chmod命令更改文件夹的读、写和执行权限。例如,文件夹名为practice,路径为/opt/lampp/htdocs/practice。
输入命令即可。
$ sudo chmod 777 -R Practice

什么是 chmod777?请访问此链接http://linuxcommand.org/lts0070.php


您能否详细阐述一下您的答案,并对您提供的解决方案进行更多描述? - abarisone
3
这非常不安全,您不应该为整个文件夹授予任何人写入权限! - Gottlieb Notschnabel
我认为应该使用sudo chmod -R 777 htdocs。 - Junior

17

我解决这个问题的方法是先正确地设置错误日志

<VirtualHost *:80>
    DocumentRoot "D:/websites/test/"
    ServerName test.dev
    ErrorLog "D:/websites/test/logs/error.log"
    CustomLog "D:/websites/test/logs/access.log" common
    <Directory D:/websites/test/>  
        AllowOverride none
        Require all granted  
    </Directory>
</VirtualHost>

在错误信息被记录到 "D:/websites/test/logs/" 后,请确保自己创建 logs 文件夹。错误日志中记录的确切错误是:

AH01630: 客户端被服务器配置拒绝:

这让我通过此链接找到了正确的解决方案。

Require all granted 

必须的。顺便说一下,我上面的示例代码已经解决了这个问题。


问题是关于设置的,API路由可能与此无关。 - TheTechGuy

16

针对Mac上的XAMPP

sudo chmod -R 0777 /Applications/XAMPP/xamppfiles/htdocs/myprojectname

注意:记得将'myprojectname'更改为您实际的项目名称。此外,请确保项目位于htdocs的根目录上,或相应地更改路径。


1
谢谢,这在我的Linux机器上有效。 - Pranu Pranav

7

编辑此文件 C:\xampp\apache\conf\httpd.conf

修改:

AllowOverride none
Require all denied

To

AllowOverride All
Options  All
Allow from all
Order allow,deny

重启 Apache


7
在花了数小时进行在线搜索后,我找到的唯一解决方案。
sudo chmod -R 0777 /opt/lampp/htdocs/projectname

谢谢,使用Xampp内置终端来执行代码可以正常运行。 - Kenny Dabiri

5

我正在使用Ubuntu 16.04操作系统,并且用xxamp工具运行良好。

<VirtualHost *:80>
    DocumentRoot "/opt/lampp/htdocs/"
    ServerAdmin localhost
    <Directory "/opt/lampp/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

4

进入您的Xampp文件夹 xampp/apache/conf/extra/httpd-xampp.c­onf

编辑最后一段:

#close XAMPP sites here 
.
.
.
Deny from all
.
.

to

#close XAMPP sites here 
.
.
.
Allow from all
.
.

或者您可以观看这个视频:http://www.youtube.com/watch?v=ZUAKLUZa-AU


我已经尝试过了!没有用。。正如我所说,我可以访问本地主机,但是任何解释器都无法处理.php文件。 - NirAv JaIn
1
看一下你提交按钮指向的链接,可能它不是一个有效的链接。它必须将表单提交到xampp目录中的一个文件中,就像其他文件一样。同时查找命名错误,也许它是example.php而你写成了exampel.php ;) - Florian Braun
好的,我搞定了!我的代码有些错误!我没有包含一些必需的文件!这就是为什么只有当我点击提交按钮时才会显示错误 :) 无论如何还是谢谢 :) - NirAv JaIn

3

对我来说,以下步骤立刻解决了问题:

  1. 前往C:\xampp\apache\conf\extra
  2. 编辑文件httpd-xampp.conf
  3. 按照以下方式编辑文件:

使用Ctrl+f查找以下行:

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>

只需要将本地修改为 all granted,就像这样:

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
<Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>

在此之后,本地主机将停止显示错误,并显示管理员面板。 我在这里的视频中找到了这个解决方案: https://www.youtube.com/watch?v=MvYyEPaNNhE


2

在虚拟主机停止工作之前,您是否更改了任何内容?

将此行添加到xampp/apache/conf/extra/httpd-vhosts.conf中。

<VirtualHost localhost:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerAdmin localhost
    <Directory "C:/xampp/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接