phpMyAdmin错误-配置文件现在需要一个秘密密码


Answers:


39

这可能会有所帮助, https://wiki.archlinux.org/index.php/PhpMyAdmin#Add_blowfish_secret_passphrase

如果您首次登录/ phpmyadmin(使用先前设置的MySQL用户名和密码)时在页面底部看到以下错误消息:

ERROR: The configuration file now needs a secret passphrase (blowfish_secret)  

您需要在phpMyAdmin的配置文件中添加河豚密码。编辑/etc/webapps/phpmyadmin/config.inc.php并在行中插入随机河豚“密码”

$cfg['blowfish_secret'] = ; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */  

现在应该看起来像这样:

$cfg['blowfish_secret'] = 'qtdRoGmbc9{8IZr323xYcSN]0s)r$9b_JUnb{~Xz'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */  

所有这些都假设您已经正确创建了配置文件,

cp config.sample.inc.php config.inc.php

如我所说,我已经设置了密码并且仍然无法正常工作。
jax

1
也许您编辑的配置文件不是活动文件?因为该错误表明未设置密码短语。
user16081-JoeT 2014年

2
我也遇到同样的问题...我将config.sample.inc.php文件更改为config.inc.php,并向其中添加了提到的$cfg['blowfish_secret'] = 'qtdRoGmbc9{8IZr323xYcSN]0s)r$9b_JUnb{~Xz';设置,但是phpMyAdmin索引页面仍然抱怨缺少它!如果有机会加载另一个文件,那么我不知道该文件在哪里或为什么在哪里?任何有这个问题的人有想法吗?
杰森·戴维斯(JasonDavis)2015年

1
@jasondavis检查其他答案;您可能遇到权限问题,需要更改phpMyAdmin配置文件夹的所有权/组。
user16081-JoeT,2015年

2
您可以使用question-defense.com/tools/phpmyadmin-blowfish-secret-generator上的“秘密生成器” 来获取应该起作用的随机代码。它链接在user16081-JoeT帖子的传呼机中。然后按照他的指示进行。
WebLuke 2015年

8

设置The configuration file now needs a secret passphrase (blowfish_secret)配置文件后,我也收到错误消息$cfg['blowfish_secret']。我正在使用CentOS v6,并使用从EPEL存储库中安装了PHPMyAdmin yum。我将nginx设置为托管PHPMyAdmin,并且设置了PHPMyAdmin包(默认情况下)以与Apache一起使用。配置文件位于/etc/phpMyAdmin/config.inc.php(您可以检CONFIG_DIRlibraries/vendor_config.php以找到配置文件的位置),并且如果您注意到,则该用户是root用户,该组apache用于该文件和目录。这将导致PHPMyAdmin无法读取配置文件。要解决此问题,请使用chown将该组更改为正在运行Web服务器的组(在我的情况下,该组为nginx)。您将需要同时更改目录和配置文件的所有者(如下所示)。

chown -R root.nginx /etc/phpMyAdmin/

请注意,如果更新了PHPMyAdmin,则可能需要再次执行此操作。如果启用了SELinux,您的权限可能还会有其他问题。


注释/etc/phpmyadmin/config.inc.php:`*注意:请勿将安全敏感数据(例如密码)添加到该文件中*除非您真的知道自己在做什么。如果您这样做,那么任何可以在您的网络服务器上运行PHP或CGI的用户都可以阅读它们。如果您仍然希望这样做,请确保正确保护对该文件的访问权限(也在文件系统级别)。* /`
Buttle Butkus

在其下面,它具有以下一行:include('/var/lib/phpmyadmin/blowfish_secret.inc.php');因此,我去了那里并将文件的组更改为我的Web服务器用户。它可以工作,但似乎没有比将密码放入更安全的方法/etc/phpmyadmin/config.inc.php。我想也许PHP不能在那里运行?它确实解决了这个问题。因此,我想当我到达hack攻击桥的时候。
Buttle Butkus

CONFIG_DIR下的默认位置是./config/config.inc.php。由于我在该目录之外有此文件,因此我可以更轻松地交换版本,因此我只需要为此文件创建一个指向我的位置的符号链接,消息对我来说就不复存在了。ln -s ../../../config.inc.php config.inc.php
MECU

+1因为需要设置/etc/phpMyAdmin目录权限,而不仅仅是目录中的config.inc.php文件。
jxmallett

5

我有

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

在/usr/share/phpmyadmin/libraries/vendor_config.php中。

它应该是:

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

(添加了正斜杠)


2

安装后,最新版本的phpmyadmin无法创建配置文件。文件夹树中有一个可用的示例配置文件和一个更深的实际默认配置文件。

请注意,河豚密码的长度必须恰好为32个字符,否则将不会应用。

复制示例文件以创建覆盖默认值的实际使用文件。下面显示的目录仅是示例,因此请使用适用于您的phpmyadmin安装的目录/路径。

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

该文件的顶部是需要设置的河豚变量。将32个随机字符添加到变量的值,然后保存文件。

$cfg['blowfish_secret'] = 'KLS$vbc91Lkja$vc@opGbxA278EWopdc';

我没有读过任何人在此线程中提到32个字符的规则。也许这是OP的问题。


2

就我而言,我手动升级了PHPMyAdmin,因为存储库中的版本在PHP 7.2中表现不佳。我在线上遵循了所有步骤,但是在/usr/share/phpmyadmin/libraries/vendor_config.php中犯了一个错误。

该行:末尾define('CONFIG_DIR', '/etc/phpmyadmin/');缺少一个/。我通过手动编辑library / classes / Config.php发现了这一点,并在开始时function load($source)做了一个die($source)。在那里,我看到配置源不正确。


1

除了检查http(Web服务器)组的可执行权限之外,还值得检查php.ini中的“ open_basedir”条目是否包含config.inc.php所在的目录(如果已设置)。这为我解决了这个问题。


1

转到phpmyadmin文件夹>搜索“ lint.php ”,并设置= 'require_once'libraries / config.inc.php';

它将彻底解决您的问题。

如果它解决了您的问题,那么谢谢我。


1

跟着这些步骤:

1)前往 /etc/httpd/conf.d/phpmyadmin.conf

  • (在目录标记中检查phpMyAdmin的路径)

2)前往 /usr/share/phpmyadmin,开启conf.inc.php

3)为blowfish_secret添加值,例如-

$cfg['blowfish_secret'] = 'mrgQxxk8C-y}U7ji2BO9o5jLf}Qhe-BI[~6SUa';/* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

4)保存并退出。

5)清除浏览器缓存

6)尝试使用url访问:http: //yourserver.com/phpmyadmin/index.php


1

只想分享这个。放

$cfg['blowfish_secret'] = 'fill this up';

转到phpmyadmin文件夹并搜索 lint.php

并设置

require_once 'common.inc.php';

1

如果您在此处编辑了文件: /usr/share/phpmyadmin/config.inc.php

而问题仍未解决,则可能是您编辑了错误的文件。如果你跑whereis phpmyadmin -l该命令,则应为您提供服务器上phpmyadmin位置的列表。

我说您编辑的文件错误的原因是,如果您将phpmyadmin安装在其中,var/www/phpmyadmin或者var/www/html/phpmyadmin您需要在其中编辑phpmyadmin/config.sample.inc.php

所以试试这个:

$ cd var/www/html/phpmyadmin
$ cp config.sample.inc.php config.inc.php

以您的方式进行编辑,然后注销并登录phpmyadmin,您应该会很好。



0

在我的情况下,这是所有者/权限问题,因为我在一个主要网站中手动创建了指向的符号链接,/usr/share/phpmyadmin/以便可以从FQDN https://myserver.mydomain.com/changedphpmyadmin访问phpMyAdmin。而不是仅通过IP。但是这样做也改变了网络用户。如果这不是默认域,则通过IP进行的浏览与通过FQDN进行的浏览不同。

因此,在我的情况下,我的FQDN的Web用户无法读取/var/lib/phpmyadmin/blowfish_secret.inc.php,因此在我的情况下,我只是将该文件的所有者从root:www-data更改为web1:client1。然后测试并重新加载nginx:

chown web1:client1 /var/lib/phpmyadmin/blowfish_secret.inc.php
nginx -t
systemctl reload nginx

应该没有必要重新加载nginx;它与执行PHP代码无关。
womble
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.