我已经在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>
有没有人知道我错过了什么?
答案 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页面的访问被禁止! 消息。
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>
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 80
到Listen 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
答案 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)。你可以:
答案 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_old。 我尝试在我的桌面文件夹中安装 XAMPP,但失败了,因为我的 Windows 用户包含一个空格字符并且 Apache 无法运行。