22

当我想访问我的 phpMyAdmin 时,我总是会收到此消息。

w3m localhost/phpmyadmin

Forbidden

You don't have permission to access /phpmyadmin/ on this server.

Apache/2.2.15 (CentOS) Server at localhost Port 80

安装步骤:

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2- 2.el6.rf.x86_64.rpm
yum install phpmyadmin

添加别名

vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

从 cookie 更改为 http

vi /usr/share/phpmyadmin/config.inc.php
[...]
 /* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

重新开始

/etc/init.d/httpd restart

SELinux - /etc/httpd

drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 .
drwxr-xr-x. root root system_u:object_r:etc_t:s0       ..
drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 conf
drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 conf.d
lrwxrwxrwx. root root system_u:object_r:httpd_log_t:s0 logs -> ../../var/log/httpd
lrwxrwxrwx. root root system_u:object_r:httpd_modules_t:s0 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. root root system_u:object_r:httpd_config_t:s0 run -> ../../var/run/httpd

SELinux - /usr/share/phpmyadmin

drwxr-xr-x. root root   system_u:object_r:usr_t:s0       .
drwxr-xr-x. root root   system_u:object_r:usr_t:s0       ..
-rw-r--r--. root root   system_u:object_r:usr_t:s0       browse_foreigners.php
-rw-r--r--. root root   system_u:object_r:usr_t:s0       calendar.php
-rw-r--r--. root root   system_u:object_r:usr_t:s0       changelog.php
-rw-r--r--. root root   system_u:object_r:usr_t:s0       chk_rel.phph
.
.
.
-rw-r--r--. root root   system_u:object_r:usr_t:s0       view_create.php

操作系统

centos-release-6-0.el6.centos.5.x86_64
4

7 回答 7

31

编辑您的 httpd.conf 文件,如下所示:

# nano /etc/httpd/conf/httpd.conf

在此处添加以下行:

<Directory "/usr/share/phpmyadmin">
    Order allow,deny
    Allow from all
</Directory>

发出以下命令:

# service httpd restart

如果您的问题没有解决,请禁用您的 SELinux。

于 2011-09-26T09:15:37.463 回答
31

上面的配置在我的 CentOS 7 服务器上都不适合我。经过数小时的搜索,这对我有用:

编辑文件 phpMyAdmin.conf

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

并在顶部替换它:

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       #Require ip 127.0.0.1
       #Require ip ::1
       Require all granted
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>
于 2015-03-30T19:31:46.417 回答
8

我尝试了此处提供的所有答案:编辑 phpMyAdmin.conf,更改 phpmyadmin 文件夹的 selinux 上下文,禁用 selinux ......但我仍然从 Web 服务器获得“禁止”。

我终于在这里找到了 Edouard Thiel 帖子中缺少的东西:

$ yum install php

然后重启 httpd:

$ service httpd restart => 对于 centos 6 热点

$ systemctl restart httpd=> 对于 centos 7 主机

令我惊讶的是,为什么一开始没有将 php 作为 phpmyadmin 的依赖项安装。

问候,弗雷德

于 2015-04-28T08:13:28.463 回答
3

我这两天有同样的问题。禁用 SELinux 和一切,但没有任何帮助。而且我意识到为一个小修复禁用安全性可能并不聪明。然后我看到了这篇文章 - http://wiki.centos.org/HowTos/SELinux/,它解释了 SELinux 是如何运作的。所以这就是我所做的,它解决了我的问题。

  1. 通过转到 phpmyadmin 的父目录(我的是 html)并键入以下内容来启用对 phpmyadmin 主目录的访问:

    chcon -v --type=httpd_sys_content_t phpmyadmin
    
  2. 现在通过键入以下内容对 index.php 执行相同的操作:

    chcon -v --type=httpd_sys_content_t phpmyadmin/index.php
    

    现在回去检查你是否得到一个空白页。如果你是,那么你就在正确的轨道上。如果没有,请返回并检查您的 httpd.config 目录设置。一旦你得到没有警告的空白页,继续。

  3. 现在通过运行递归遍历 phpmyadmin 目录中的所有文件:

    chron -Rv --type=httpd_sys_content_t phpmyadmin/*
    

回到你的 phpmyadmin 页面,看看你是否看到了你需要的东西。如果您正在运行可从网络外部访问的 Web 服务器,请确保将 SELinux 重置为正确的安全级别。希望这可以帮助!

于 2012-07-23T22:09:40.500 回答
0

上述解决方案均不适合我。下面是最终奏效的:

#yum update
#yum install phpmyadmin

请注意,phpmyadmin 几个小时前正在工作。我不知道发生了什么。

在此之后,转到浏览器,我收到一条错误消息./config.inic.php can't be accessed

#cd /usr/share/phpmyadmin/
#stat -c %a config.inic.php
#640
#chmod 644 config.inic.php

这表明文件权限是640,然后我将它们更改为644。最后,它工作了。

记得重启httpd。

#service httpd restart
于 2016-01-25T13:00:38.987 回答
0

我在录制 URL 时遇到了同样的问题

https://www.nameDomain.com/phpmyadmin

禁止消息出现,因为 /use/share/phpMyAdmin 目录上的规则,我通过/etc/httpd/conf.d/phpMyAdmin.conf在本节中添加此文件来修复它

<Directory /usr/share/phpMyAdmin/>
    ....
</Directory>

这些规则

<Directory /usr/share/phpMyAdmin/>
   Order Deny,Allow
   Deny from All
   Allow from 127.0.0.1
   Allow from ::1
   Allow from All
   ...
</Directory>

您保存文​​件,然后以您选择的任何方法重新启动 apache 服务,service httpd graceful或者service httpd restart这取决于您的策略

出于安全原因,如果您的 IP 没有更改,您可以通过设置一个 IP 地址来指定一个连接,否则如果您的 IP 每次都更改,您也必须更改它。

<Directory /usr/share/phpMyAdmin/>
   Order Deny,Allow
   Deny from All
   Allow from 127.0.0.1
   Allow from ::1
   Allow from 105.105.105.254 ## set here your IP address
   ...
</Directory>
于 2017-10-07T17:56:31.057 回答
-1

我遇到过同样的问题。

只有在我更改了 php.ini 变量之后

display_errors = 关闭

display_errors = 开

Phpadmin 开始工作.. 疯狂....

于 2012-03-05T03:01:28.490 回答