1

phpmyadmin 已经安装好几个月了,通过这个 repo 安装:

deb http://ppa.launchpad.net/tuxpoldo/phpmyadmin/ubuntu utopic main

突然,我无法登录;没有页内错误,但日志显示:

PHP message: phpmyadmin: Failed to load /etc/phpmyadmin/config-db.php Check group www-data has read access and open_basedir restrictions"
PHP message: phpmyadmin: Failed to load /var/lib/phpmyadmin/config.inc.php Check group www-data has read access and open_basedir restrictions"

所以,我检查了:

ll /etc/phpmyadmin

drwxrwxr-x   3 www-data www-data  4096 Nov 16 20:11 ./
drwxr-xr-x 132 root     root     12288 Nov 17 15:33 ../
-rw-r-----   1 www-data www-data   549 Nov 16 20:11 config-db.php

ll /var/lib/phpmyadmin

drwxr-xr-x  4 www-data www-data 4096 Oct  8 15:51 ./
drwxr-xr-x 62 root     root     4096 Nov 12 13:10 ../
-rw-r-----  1 www-data www-data 4478 Nov 16 19:48 config.inc.php

我按照这个 SO answer并更改了用户和组权限以匹配示例(用户:root,组:www-data)并更改目录权限以匹配。

我检查了两次,三次检查是否没有有效的 open-basedir 限制,我检查了 phpinfo()
我尝试将权限更改为 fpm 工作池的权限。
我重新启动。
我做了一个sudo apt-get install --reinstall phpmyadmin.

我在这之间做的唯一一件事就是按照本指南安装 freePBX,无论如何,它想要的 90% 都在我的机器上;只安装了 sqlite 之类的东西,我什至不能确定是它停止了它的工作。远射,但也许值得一提。

其他一切,所有其他网站等都运行良好。在我失去比过去 5 小时更多的头发之前,我真的很感激一些想法。谢谢!

4

2 回答 2

3

原来这是来自 phpmyadmin 的一条颇具误导性的消息:

Check group www-data has read access and open_basedir restrictions.

但是任何运行多个站点、使用 php-fpm 并完全关心安全性的人都会为每个站点设置单独的池。

在我的特殊情况下,解决方案是:

chown -R phpma:phpma /var/lib/phpmyadmin
chown -R phpma:phpma /etc/phpmyadmin
chown -R phpma:phpma /usr/share/phpmyadmin

然后sudo dpkg-reconfigure -plow phpmyadmin

顺便说一句,似乎在 Ubuntu 上进行软件包安装会使文件到处都是,它有点像这样:

/etc/phpmyadmin/config.inc.php

按此顺序包含以下文件,除非您想提高登录 cookie 的有效性,否则实际上不需要触摸这些文件。

/var/lib/phpmyadmin/blowfish_secret.inc.php // self explanatory
/var/lib/phpmyadmin/config.inc.php // LoginCookieValidity etc
/etc/phpmyadmin/config-db.php // Leave this one alone
/usr/share/phpmyadmin/config.inc.php // auth, host, connection etc

我希望这无论如何都会对其他人有所帮助。

于 2014-11-18T20:34:18.227 回答
1

这当然是因为您使用的是 mpm_itk_module。

如果是,您必须在您的 apache 设置中使用:

<ifmodule mpm_itk_module>
AssignUserId myuser www-data
</ifmodule>

反而:

<ifmodule mpm_itk_module>
AssignUserId myuser myuser
</ifmodule>

phpmyadmin 需要组 www-data,如果您使用 AssignUserId,则与另一个组一起失败。

您可以在“目录”中添加 apache 配置:

php_admin_value open_basedir "/home/yourpath/htmldir:/etc/phpmyadmin:/var/lib/phpmyadmin"

将 /home/yourpath/htmldir 替换为您自己的网络目录。

我希望这有帮助

于 2016-06-12T16:47:55.457 回答