phpMyAdmin 中的河豚秘密是啥?

Posted

技术标签:

【中文标题】phpMyAdmin 中的河豚秘密是啥?【英文标题】:What is a blowfish secret in phpMyAdmin?phpMyAdmin 中的河豚秘密是什么? 【发布时间】:2016-04-29 21:41:04 【问题描述】:

关于设置 config.inc.php,phpMyAdmin 官方文档说

$cfg['blowfish_secret'] = 'theExampleWrites16ValuesHere';  // use here a value of your choice

什么是河豚的秘密? 如何生成或选择值?

【问题讨论】:

【参考方案1】:

只需使用您喜欢的任何随机字符串和/或数字。这是一个对您的实例和使用 phpMyAdmin 而言是唯一的值。

【讨论】:

根据文档“建议使用 32 的密​​钥长度。” (link)。如果您使用的字符串太短,可能会在某些版本的 phpmyamdin 上显示错误消息。 有趣的是,如果我输入 more 超过 32 个字符,PHP 模块会因“总线错误”而死掉(至少在 FreeBSD 上)。少于这个值,当然会触发“Blowfish 密码太短”错误。 @GwynethLlewelyn 使用什么版本的 PHP 和 phpMyAdmin?我的使用 PHP 7.3.rc6 和 phpMyAdmin 4.8.3 远远超过 32 个字符,没有任何问题。【参考方案2】:

转到 /var/lib/phpmyadmin/blowfish_secret.inc.php 并添加一些字符长度为 32,如下所示:

$cfg['blow_secret'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

保存文件并刷新 phpMyAdmin。

【讨论】:

在 Debian 9.6 + nginx 上,我也不得不 chown 它:chown -R nginx:nginx /var/lib/phpmyadmin【参考方案3】:

进入phpMyadmin目录并打开配置文件>> /phpMyadmin/config.inc.php

定位 >> $cfg['blowfish_secret'] = ''; / 您必须为 COOKIE A​​UTH 填写此信息! /

输入一个不少于 32 个字符的字符串。 You can include Number, Characters&SpecialCharacters 保存并重新加载页面(//yourdomainname.*/phpmyadmin)并再次登录。那应该可以解决错误。

参考:https://wiki.archlinux.org/index.php/PhpMyAdmin#Add_blowfish_secret_passphrase

感谢和问候

【讨论】:

【参考方案4】:

如果您有可用的 PHP,您可以将其添加到 shell 脚本中以构建 phpMyAdmin 安装:

export SECRET=`php -r 'echo base64_encode(random_bytes(24));'`
echo "\$cfg['blowfish_secret'] = '$SECRET';" \
    >> /path/to/phpmyadmin/config.inc.php

【讨论】:

【参考方案5】:

/usr/share/phpmyadmin/libraries/vendor_config.php 中,配置目录变量可能为空或缺少斜杠,请将其更改为:

define('CONFIG_DIR', '/etc/phpmyadmin/'); 

需要在 /usr/share/phpmyadmin/libraries/vendor_config.php 中正确设置此临时目录的权限。它为我解决了它。定义('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');

另外,如果您在 PhpMyAdmin 中缺少“用户”选项卡,这是由于权限不足造成的。使用 root 权限登录时,从 mysql 控制台(您自己的管理用户名)运行 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;

【讨论】:

以上是关于phpMyAdmin 中的河豚秘密是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何以 phpmyadmin 用户查看 phpMyAdmin 中的所有数据库?

phpmyadmin(linux)删除mysql SQL查询窗口中的反引号

phpmyadmin 配置路径不起作用

phpMyAdmin - #1044 - 用户 ''@'localhost' 拒绝访问数据库

phpmyadmin 中的“虚拟性”是啥?

phpmyadmin中的灰色键是啥意思?