phpmyadmin 抱怨权限和 open_basedir - 但它们看起来都是正确的
Posted
技术标签:
【中文标题】phpmyadmin 抱怨权限和 open_basedir - 但它们看起来都是正确的【英文标题】:phpmyadmin complains about permissions and open_basedir - but they all appear correct 【发布时间】:2015-01-14 21:06:34 【问题描述】: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
我关注this SO answer并更改了用户和组权限以匹配示例(用户:root,组:www-data)并更改目录权限以匹配。
我检查了两次,三次检查了没有基于开放的限制生效,我检查了 phpinfo()
我尝试将权限更改为 fpm 工作池的权限。
我重新启动了。
我做了一个sudo apt-get install --reinstall phpmyadmin
。
我在这期间做的唯一一件事就是关注this guide to installing freePBX,无论如何,它想要的 90% 都在我的机器上;只安装了 sqlite 之类的东西,我什至不能确定是它停止了它的工作。远射,但也许值得一提。
其他一切,所有其他网站等,都运行良好。在我失去比过去 5 小时更多的头发之前,我真的很感激一些想法。谢谢!
【问题讨论】:
你看我的回答了吗? 嗨,迈克。是的,我做到了,我在 2016 年对此发表了评论。此外,答案并不真正适用于我的情况,因为我的问题被标记为 nginx,你的答案适用于 Apache,而我已经解决了将近 2 年前在我的回答中。但我确信答案确实对其他使用 Apache 的人有用。谢谢! 【参考方案1】:原来这是来自 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
无论如何,我希望这对其他人有所帮助。
【讨论】:
我通过将相关用户添加到 www-data 组解决了这个类似的问题,而原始权限保持不变。 sudo usermod -a -G www-data phpma【参考方案2】:这当然是因为您使用的是 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 替换为您自己的网络目录。
希望对你有帮助
【讨论】:
感谢您的信息。只是说最后我放弃了,现在使用adminer。好多了!一个文件,没有麻烦。以上是关于phpmyadmin 抱怨权限和 open_basedir - 但它们看起来都是正确的的主要内容,如果未能解决你的问题,请参考以下文章
无法解析 config.inc.php 的 phpMyAdmin 权限
phpmyadmin, neginx error.log - 检查组 www-data 具有读取权限和 open_basedir