新的xampp安全概念:访问禁止错误403 - Windows 7 - phpMyAdmin

时间:2014-01-16 12:33:50

标签: windows phpmyadmin xampp

我已经在Windows 7旗舰版上下载并安装了适用于Windows的XAMPP 1.8.1。我根据这些instructions

设置了XAMPP与IIS一起运行

到目前为止一切都很好,我的PHP站点在本地运行,除了phpMyAdmin之外的所有内容都可以在XAMPP菜单中找到。

然而,当我尝试访问phpMyAdmin时,我收到此错误:

  

禁止访问!

     

新的XAMPP安全概念:

     

只能从本地访问所请求的目录   网络

     

可以在“httpd-xampp.conf”文件中配置此设置。

我通过Google和本网站上的一些人找到了几个答案。但是,到目前为止,我尝试过的解决方案都没有解决这个问题。

这是我的httpd-xampp.conf文件:

#
# XAMPP settings
#

<IfModule env_module>
    SetEnv MIBDIRS "C:/xampp/php/extras/mibs"
    SetEnv MYSQL_HOME "\\xampp\\mysql\\bin"
    SetEnv OPENSSL_CONF "C:/xampp/apache/bin/openssl.cnf"
    SetEnv PHP_PEAR_SYSCONF_DIR "\\xampp\\php"
    SetEnv PHPRC "\\xampp\\php"
    SetEnv TMP "\\xampp\\tmp"
</IfModule>

#
# PHP-Module setup
#
LoadFile "C:/xampp/php/php5ts.dll"
LoadModule php5_module "C:/xampp/php/php5apache2_4.dll"

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

#
# PHP-CGI setup
#
#<FilesMatch "\.php$">
#    SetHandler application/x-httpd-php-cgi
#</FilesMatch>
#<IfModule actions_module>
#    Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"
#</IfModule>


<IfModule php5_module>
    PHPINIDir "C:/xampp/php"
</IfModule>

<IfModule mime_module>
    AddType text/html .php .phps
</IfModule>

ScriptAlias /php-cgi/ "C:/xampp/php/"
<Directory "C:/xampp/php">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
          Require all granted
    </Files>
</Directory>

<Directory "C:/xampp/cgi-bin">
    <FilesMatch "\.php$">
        SetHandler cgi-script
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler None
    </FilesMatch>
</Directory>

<Directory "C:/xampp/htdocs/xampp">
    <IfModule php5_module>
        <Files "status.php">
            php_admin_flag safe_mode off
        </Files>
    </IfModule>
    AllowOverride AuthConfig
</Directory>

<IfModule alias_module>
    Alias /security "C:/xampp/security/htdocs/"
    <Directory "C:/xampp/security/htdocs">
        <IfModule php5_module>
            <Files "xamppsecurity.php">
                php_admin_flag safe_mode off
            </Files>
        </IfModule>
        AllowOverride AuthConfig
        Require all granted
   </Directory>

    Alias /licenses "C:/xampp/licenses/"
    <Directory "C:/xampp/licenses">
        Options +Indexes
        <IfModule autoindex_color_module>
            DirectoryIndexTextColor  "#000000"
            DirectoryIndexBGColor "#f8e8a0"
            DirectoryIndexLinkColor "#bb3902"
            DirectoryIndexVLinkColor "#bb3902"
            DirectoryIndexALinkColor "#bb3902"
        </IfModule>
        Require all granted
   </Directory>

    Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
    <Directory "C:/xampp/phpMyAdmin">
        AllowOverride AuthConfig Limit
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>

    Alias /webalizer "C:/xampp/webalizer/"
    <Directory "C:/xampp/webalizer">
        <IfModule php5_module>
            <Files "webalizer.php">
                php_admin_flag safe_mode off
            </Files>
        </IfModule>
        AllowOverride AuthConfig
        Require all granted
    </Directory>
</IfModule>

#
# New XAMPP security concept
#
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Order deny,allow
    Allow from all
    Require all granted

    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

有没有人知道我错过了什么?

21 个答案:

答案 0 :(得分:79)

您所要做的就是编辑httpd-xampp.conf

需要本地在LocationMatch标记中要求所有已授予的

就是这样!

答案 1 :(得分:22)

In New Xampp

All you have to do is to edit the file:

C:\xampp\apache\conf\extra\httpd-xampp.conf

and go to Directory tag as below:

<Directory "C:/xampp/phpMyAdmin">

and then change

Require local

To

Require all granted

in the Directory tag.

Restart the Xampp. That's it!

答案 2 :(得分:15)

要求所有授予对我来说似乎有点远。查看我使用的文档:Require ip 192.168以允许所有内部访问。

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Require local
    Require ip 192.168
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

答案 3 :(得分:12)

    <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">

        Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>
祝你好运!!!!

答案 4 :(得分:9)

您必须编辑2个文件 - 1. httpd-vhosts.conf&amp; 2. httpd-xampp.conf

  

注意:确保你备份文件(httpd-xampp.conf)和(   httpd-vhosts.conf),两个文件都位于   驱动器:\ XAMPP \阿帕奇\ CONF \额外

打开httpd-vhosts.conf文件并在文件底部更改

<VirtualHost *:80>
DocumentRoot “E:/xampp/htdocs/”
ServerName localhost
<Directory E:/xampp/htdocs/>.
Require all granted 
</Directory>
</VirtualHost>

此处E:/ xampp是我的项目工作区,您可以根据您的设置进行更改

和第二次更改是在httpd-xampp.conf文件上,并在文件的底部更改它

#
# New XAMPP security concept
#
<LocationMatch “^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))”>
Order deny,allow
Allow from all
Allow from ::1 127.0.0.0/8
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

答案 5 :(得分:8)

尝试重新安装新版本的XAMPP。找到“<Directory "C:/xampp/php">”,然后更改为此类

<Directory "C:/xampp/php">
    AllowOverride AuthConfig Limit
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

答案 6 :(得分:3)

在httpd-xampp.conf中注释掉需要本地的行。
重启Apache 我的工作是将手机连接到我的PC上的测试网站。 不知道安全隐患。

答案 7 :(得分:2)

只需删除:

Alias /phpmyadmin "C:/xampp2/phpMyAdmin/"
<Directory "C:/xampp2/phpMyAdmin">
    AllowOverride AuthConfig
    Require all granted
</Directory>

并从以下位置删除phpmyadmin:

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|server-status|server-info))">

答案 8 :(得分:2)

要访问本地网络以外的请求目录,您需要更改 XAMPP security concept 在文件“httpd-xampp.conf”中配置。

  • 文件位置xampp\apache\conf\extra\httpd-xampp.conf
  

Require Directive 选择经过身份验证的用户可以访问资源

     

语法«Require entity-name [entity-name] ...

来自«XAMPP安全概念仅允许本地环境 - 需要本地

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
        Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

要“XAMPP安全概念允许任何环境 - 需要所有授予

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
        Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>
来自HTML页面的

访问被禁止! 消息。

enter image description here

  

Allow Directive 控制哪些主机可以访问服务器区域

     

语法«Allow from all|host|env=[!]env-variable [host|env=[!]env-variable] ...

仅允许本地环境。使用以下任何指定的网址。

  • http://localhost/phpmyadmin/
  • http://127.0.0.1/phpmyadmin/

    <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
        Order deny,allow
        Deny from all
        Allow from ::1 127.0.0.0/8 \
    
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </LocationMatch>
    

仅允许指定的IPv4IPv6地址空间。

  • IPv4的链路本地地址在CIDR表示法的地址块169.254.0.0/16中定义。在IPv6中,为它们分配了地址块fe80::/10
  • 唯一本地地址(ULA)是块fc00::/7中的IPv6地址

    <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
        Order deny,allow
        Deny from all
        Allow from ::1 127.0.0.0/8 \
            fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
            fe80::/10 169.254.0.0/16
    
        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </LocationMatch>
    

允许任何network address允许所有

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Order deny,allow
    Allow from all

    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

404 - XAMPP控制面板:无法启动Apache HTTP服务器

URL: http://localhost/xampp/index.php

Error « 
    Not Found
    HTTP Error 404. The requested resource is not found.

其他服务实际使用了必需的默认Apache HTTP服务器端口80。

  • 您需要找到使用端口80运行的服务并停止服务,然后启动Apache HTTP服务器。

    使用Netstat显示活动的TCP连接,即计算机正在侦听的端口。

     C:\Users\yashwanth.m>netstat -ano
    
      Active Connections
    
      Proto  Local Address          Foreign Address        State           PID
      TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       2920
      TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1124
    
      TCP    127.0.0.1:5354         0.0.0.0:0              LISTENING       3340
    
      TCP    [::]:80                [::]:0                 LISTENING       2920
    
    C:\Users\yashwanth.m>netstat -ano |findstr 2920
      TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       2920
      TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       2920
      TCP    [::]:80                [::]:0                 LISTENING       2920
      TCP    [::]:443               [::]:0                 LISTENING       2920
    
    C:\Users\yashwanth.m>taskkill /pid 2920 /F
      SUCCESS: The process with PID 2920 has been terminated.
    
      
  • 从主Apache HTTP服务器配置文件D:\xampp\apache\conf\httpd.conf更改侦听端口。 Ex:81。从Listen 80Listen 81,访问网址为http://localhost:81/xampp/index.php

    # Change this to Listen on specific IP addresses as shown below to 
    # prevent Apache from glomming onto all bound IP addresses.
    #
    #Listen 0.0.0.0:80
    #Listen [::]:80
    Listen 80
    

有关httpd and virtual host on XAMPP

的更多信息

答案 9 :(得分:2)

有些答案是正确的,但是如果使用新的xampp或者有些人没有使用其他答案,请试试这个:

转到xampp文件夹:

  

XAMPP /阿帕奇/ CONF /额外/ httpd的-xampp.conf

如果您尝试从网络中的本地IP进行访问,请进行更改,

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

更改为:

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

注意:这只是用于文本,因为xampp的安全性有一些搜索....

答案 10 :(得分:1)

在您的xampppath \ apache \ conf \ extra打开文件httpd-xampp.conf中找到以下标记:

<LocationMatch "^/(?i:(?:xampp|licenses|phpmyadmin|webalizer|server-status|server-info))">
Order deny,allow
Deny from all
Allow from ::1 127.0.0.0/8 
ErrorDocument 403   /error/HTTP_XAMPP_FORBIDDEN.html.var   

并在Allow from all

之后添加Allow from ::1 127.0.0.0/8 {line}

重新启动xampp,你就完成了。

答案 11 :(得分:1)

XAMPP 7.3.11的更新

如果您像我一样在最新的XAMPP中遇到 phpmyadmin 的相同问题。

解决方案写在[XAMPP IP]/dashboard/docs/access-phpmyadmin-remotely.html的官方文档中

  

要启用从其他主机到phpMyAdmin的远程访问,请按照下列步骤操作:

     

1)双击挂载的磁盘映像中的XAMPP图标,启动堆栈管理器。

     

2)确保Apache和MySQL服务正在堆栈管理器的“服务”标签中运行(或根据需要启动它们)。

     

3)从堆栈管理器的“常规”选项卡中打开一个新终端。

     

4)编辑/opt/lampp/etc/extra/httpd-xampp.conf文件。

     

5)在此文件中,找到块<Directory "/opt/lampp/phpmyadmin">

     

更新此代码块,并将Require local替换为Require all granted,使其看起来像这样:

     

6)保存文件,然后使用堆栈管理器重新启动Apache服务。

第(4)节的注意事项:要编辑此文件,请确保已安装 vim

第(5)节的注释,而不是允许所有人访问,您可以按照@Gunnar Bernstein的建议将IP地址限制为一组

答案 12 :(得分:0)

对于很多人来说这是一个许可问题,但对我来说,错误是由我试图提交的形式中的错误引起的。具体来说,我不小心把&#34;&gt;&#34;在&#34; action&#34;的值之后签名。所以我建议你再看看你的代码

答案 13 :(得分:0)

Ubuntu(Linux)

: - $ sudo gedit /opt/lampp/etc/extra/httpd-xampp.conf

 Comment "Deny from all" in the following section,

更改文件

# New XAMPP security concept
# <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Order deny,allow

   #Deny from all
   #Require local
    Allow from ::1 127.0.0.0/8 \
            fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
            fe80::/10 169.254.0.0/16

    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
     

答案 14 :(得分:0)

我尝试了一切,但没有任何效果。所以我刚刚使用:chmod -R 777到htdocs。至少它只在我当地。

答案 15 :(得分:0)

如果您正在使用更新的XAMPP(例如PHP 5.6,7),它是使用&#34; Bitnami&#34;安装程序,它包括Apache 2.4.x,然后适用:

https://httpd.apache.org/docs/2.4/upgrading.html#run-time

  

2.2配置:

Order allow,deny
Allow from all
  

2.4配置:

Require all granted

如果您有任何自定义虚拟主机定义,这也适用于VirtualHost部分。

答案 16 :(得分:0)

这也可能是Skype的原因!如果使用默认的XAMPP设置,它们都将在同一端口上运行(80)。你可以:

  • 关闭Skype
  • 更改XAMPP端口

答案 17 :(得分:0)

  

G:\ XAMPP \阿帕奇\ CONF \额外\的httpd-vhosts.conf

#start block
NameVirtualHost *:80

<VirtualHost *:80>
   ServerName localhost
   #change your directory name
   DocumentRoot "G:\xampp\htdocs"
</VirtualHost>

#Your vertual Host
<VirtualHost *:80>
    DocumentRoot "G:/xampp/htdocs/dev2018/guessbook"
    ServerName dev.foreign-recruitment
    <Directory "G:/xampp/htdocs/dev2018/guessbook/">

    </Directory>
</VirtualHost>
#end block

答案 18 :(得分:0)

这可能是因为配置错误,尤其是如果您的其他网站运行正常。

<VirtualHost cmsdemo.git:88>
    DocumentRoot "C:/Projects/rwp/"
    ServerName cmsdemo.git
    <Directory C:/Projects/cmsdemo/>
        Require all granted 
        AllowOverride All
    </Directory>
</VirtualHost>

DocumentRoot 中的通知,我指定一个文件夹,在目录中,我指定另一个文件夹,因此出现403错误。这解决了我的问题。

答案 19 :(得分:0)

对于在使用Windows的xampp和IIS时遇到问题的任何人,

检查正在使用哪个端口的apache上的xamp面板

假设apache正在使用端口81,然后尝试执行此操作

http://127.0.0.1:81/

对我来说就像魅力一样工作,将来可能会对某人有所帮助

答案 20 :(得分:0)

对于 Windows 10,这些选项对我不起作用。

在没有理解关于用户帐户控制 (UAC) 的初始警告的情况下重新安装多次后,它可以通过以下步骤工作:

  • 将 C:\xampp 重命名为 C:\xampp_old,
  • 手动创建 C:\xampp 文件夹
  • 在 C:\xampp 中重新安装 XAMPP
  • 将您的应用(如果已配置)移动到新的安装文件夹。

现在,如果您愿意,可以删除 C:\xampp_old。 我尝试在我的桌面文件夹中安装 XAMPP,但失败了,因为我的 Windows 用户包含一个空格字符并且 Apache 无法运行。