phpMyAdmin Error - Die Konfigurationsdatei benötigt jetzt eine geheime Passphrase


29

Ich erhalte nach der Installation von phpmyadmin immer wieder die Fehlermeldung "Die Konfigurationsdatei benötigt jetzt eine geheime Passphrase". Ich habe die Passphrase festgelegt und bin auch den Anweisungen unter https://serverfault.com/questions/291490/phpmyadmin-not-allowing-users-to-log-on gefolgt, aber es scheint nicht zu funktionieren. Ich benutze AMI und überprüfe auch den Besitzer und die Berechtigungen. Bitte helfen Sie freundlich.

Antworten:


39

Dies könnte helfen, https://wiki.archlinux.org/index.php/PhpMyAdmin#Add_blowfish_secret_passphrase

Wenn die folgende Fehlermeldung unten auf der Seite angezeigt wird, wenn Sie sich zum ersten Mal bei / phpmyadmin anmelden (unter Verwendung eines zuvor eingerichteten MySQL-Benutzernamens und -Kennworts):

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

Sie müssen der Konfigurationsdatei von phpMyAdmin ein Blowfish-Passwort hinzufügen. Bearbeiten Sie /etc/webapps/phpmyadmin/config.inc.php und fügen Sie ein zufälliges Blowfish-Passwort in die Zeile ein

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

Es sollte jetzt ungefähr so ​​aussehen:

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

Dies alles setzt voraus, dass Sie die Konfigurationsdatei bereits ordnungsgemäß erstellt haben.

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

Wie gesagt, ich habe die Passphrase bereits festgelegt und funktioniert immer noch nicht.
Jax

1
Vielleicht ist die von Ihnen bearbeitete Konfigurationsdatei nicht die aktive? Weil der Fehler darauf hinweist, dass die Passphrase nicht festgelegt ist.
user16081-JoeT

2
Ich habe das gleiche Problem ... Ich habe meine config.sample.inc.phpDatei in geändert config.inc.phpund die erwähnte $cfg['blowfish_secret'] = 'qtdRoGmbc9{8IZr323xYcSN]0s)r$9b_JUnb{~Xz';Einstellung hinzugefügt , aber die phpMyAdmin-Indexseite beschwert sich immer noch, dass sie fehlt! Wenn eine Chance besteht, dass eine andere Datei geladen wird, weiß ich nicht, wo oder warum sich die Datei befindet? Irgendwelche Ideen jemand, der dieses Problem vor hatte?
JasonDavis

1
@Jasondavis überprüfen Sie die andere Antwort; Möglicherweise haben Sie ein Berechtigungsproblem und müssen den Besitz / die Gruppe Ihres phpMyAdmin-Konfigurationsordners ändern.
user16081-JoeT

2
Sie können den "Secret Generator" unter question-defense.com/tools/phpmyadmin-blowfish-secret-generator verwenden , um einen zufälligen Code zu erhalten, der funktionieren sollte. Es ist in einem Pager von user16081-JoeT-Post verlinkt. Folgen Sie dann seinen Anweisungen.
WebLuke

8

Ich erhielt auch den Fehler, The configuration file now needs a secret passphrase (blowfish_secret)als die Konfigurationsdatei $cfg['blowfish_secret']eingestellt hatte. Ich benutze CentOS v6 und habe PHPMyAdmin aus dem EPEL-Repo mit installiert yum. Ich habe nginx so eingerichtet, dass es PHPMyAdmin hostet, und das PHPMyAdmin-Paket (standardmäßig) ist so eingerichtet, dass es mit Apache funktioniert. Die Konfigurationsdatei befindet sich an /etc/phpMyAdmin/config.inc.php(Sie überprüfen können , CONFIG_DIRin libraries/vendor_config.phpfinden , wo Sie Ihre Konfigurationsdatei befindet) und wenn Sie feststellen, der Benutzer root und die Gruppe apachefür die Datei- und Verzeichnis. Dies führt dazu, dass PHPMyAdmin die Konfigurationsdatei nicht lesen kann. Um dieses Problem zu beheben, verwenden Sie chown, um die Gruppe in die Gruppe zu ändern, auf der Ihr Webserver ausgeführt wird (in meinem Fall ist dies die Gruppe nginx). Sie müssen den Eigentümer sowohl für das Verzeichnis als auch für die Konfigurationsdatei ändern (siehe unten).

chown -R root.nginx /etc/phpMyAdmin/

Beachten Sie, dass Sie dies möglicherweise erneut ausführen müssen, wenn PHPMyAdmin aktualisiert wird. Möglicherweise haben Sie auch weitere Probleme mit Berechtigungen, wenn SELinux aktiviert ist.


Kommentare in /etc/phpmyadmin/config.inc.php: `* HINWEIS: Fügen Sie dieser Datei keine sicherheitsrelevanten Daten hinzu (z. B. Passwörter) *, es sei denn, Sie wissen wirklich, was Sie tun. In diesem Fall kann jeder Benutzer, der PHP oder CGI auf Ihrem Webserver ausführen kann, diese lesen. Wenn Sie dies dennoch tun möchten, stellen Sie sicher, dass der Zugriff auf diese Datei ordnungsgemäß gesichert ist (auch auf Dateisystemebene). * / `
Buttle Butkus

Darunter steht diese Zeile: include('/var/lib/phpmyadmin/blowfish_secret.inc.php');Also bin ich dorthin gegangen und habe die Gruppe dieser Datei in meinen Webserver-Benutzer geändert . Es funktioniert, scheint aber nicht sicherer zu sein, als das Passwort einzugeben /etc/phpmyadmin/config.inc.php. Ich denke, vielleicht kann PHP dort nicht ausgeführt werden? Es hat das Problem jedoch behoben. Ich schätze, ich werde die Hack-Attack-Brücke überqueren, wenn ich dazu komme.
Buttle Butkus

Der Standardspeicherort unter CONFIG_DIR ist ./config/config.inc.php. Da ich diese Datei außerhalb dieses Verzeichnisses habe, damit ich die Versionen einfacher austauschen kann, musste ich nur einen Symlink für diese Datei zu meinem Speicherort erstellen und die Nachricht verschwand für mich. ln -s ../../../config.inc.php config.inc.php
MECU

+1 Damit Berechtigungen für das /etc/phpMyAdminVerzeichnis und nicht nur für die config.inc.phpDatei in diesem Verzeichnis festgelegt werden müssen .
JXMALLETT

5

ich hatte

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

in /usr/share/phpmyadmin/libraries/vendor_config.php.

Es sollte sein:

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

(Schrägstrich hinzugefügt)


2

Die neueste Version von phpmyadmin erstellt die Konfigurationsdatei nach der Installation nicht. Es gibt eine Beispielkonfigurationsdatei und eine Standardkonfigurationsdatei im Ordnerbaum.

Beachten Sie, dass das Blowfish-Geheimnis genau 32 Zeichen lang sein muss, da es sonst nicht angewendet wird.

Kopieren Sie die Beispieldatei, um die tatsächlich verwendete Datei zu erstellen, die die Standardeinstellungen überschreibt. Das unten gezeigte Verzeichnis ist nur ein Beispiel. Verwenden Sie daher das Verzeichnis / den Pfad für Ihre gültige phpmyadmin-Installation.

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

Am Anfang der Datei befindet sich die Blowfish-Variable, die festgelegt werden muss. Fügen Sie dem Wert der Variablen 32 zufällige Zeichen hinzu und speichern Sie die Datei.

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

Ich habe niemanden gelesen, der die 32-Zeichen-Regel in diesem Thread erwähnt. Vielleicht war das das Thema für das OP.


2

In meinem Fall habe ich PHPMyAdmin manuell aktualisiert, da sich die Version im Repo nicht gut mit PHP 7.2 verhalten hat. Ich habe alle Schritte online verfolgt, aber in /usr/share/phpmyadmin/libraries/vendor_config.php einen Fehler gemacht.

Die Zeile: Am Ende define('CONFIG_DIR', '/etc/phpmyadmin/');fehlte eine /. Ich habe das durch manuelles Editieren von libraries / classes / Config.php herausgefunden und am Anfang von function load($source)a die($source). Dort habe ich gesehen, dass die Konfigurationsquelle falsch war.


1

Zusätzlich zur Überprüfung, ob Berechtigungen für die http-Gruppe (Webserver) ausführbar sind, sollte überprüft werden, ob der Eintrag 'open_basedir' in der Datei php.ini das Verzeichnis enthält, in dem sich config.inc.php befindet, wenn es festgelegt ist. Dies hat dieses Problem für mich behoben.


1

Gehe zum phpmyadmin Ordner> suche nach ' lint.php ' und setze das = 'require_once' libraries / config.inc.php ';

Es wird definitiv Ihr Problem lösen.

Wenn es dein Problem löst, dann danke an mich.


1

Folge diesen Schritten:

1) Gehe zu /etc/httpd/conf.d/phpmyadmin.conf

  • (Überprüfen Sie den Pfad von phpMyAdmin im Verzeichnis tag)

2) Gehe zu /usr/share/phpmyadmin, öffneconf.inc.php

3) Wert für blowfish_secret hinzufügen, wie -

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

4) Speichern und beenden.

5) Löschen Sie den Browser-Cache

6) Versuchen Sie mit der URL zuzugreifen: http://yourserver.com/phpmyadmin/index.php


1

Ich möchte das nur teilen. stellen

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

Gehen Sie zum Ordner phpmyadmin und suchen Sie nach lint.php

und setzen Sie die

require_once 'common.inc.php';

1

Wenn Sie die Datei hier bearbeitet haben: /usr/share/phpmyadmin/config.inc.php

Und Problem nicht lösen, besteht die Möglichkeit, dass Sie falsche Datei bearbeiten. wenn du läufstwhereis phpmyadmin -l , sollte dies eine Liste der phpmyadmin-Speicherorte auf dem Server enthalten.

Warum ich sagte , dass Sie falsche Datei bearbeiten werden , ist , dass , wenn Sie Ihre phpMyAdmin installieren in var/www/phpmyadminoder var/www/html/phpmyadmindas ist , wo Sie bearbeiten müssen diephpmyadmin/config.sample.inc.php .

Also versuche folgendes:

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

Bearbeiten Sie dies auf Ihre Weise und melden Sie sich ab und melden Sie sich bei phpmyadmin an.


0

Hinzufügen eines Passworts mit 32 Symbolen in Klammern $ cfg ['blowfish_secret'] = ''; hat mir geholfen, eine andere Datei in /usr/share/phpmyadmin/libraries/config.default.php zu finden

Mit debian 9 + ispconfig muss phpmyadmin manuell installiert werden


0

In meinem Fall handelte es sich um ein Besitzer- / Berechtigungsproblem, da ich in einer meiner primären Websites manuell einen Symlink erstellt habe, auf den verwiesen werden soll, /usr/share/phpmyadmin/damit ich über den vollqualifizierten Domänennamen https://myserver.mydomain.com/changedphpmyadmin auf phpMyAdmin zugreifen kann über den anstatt nur über IP. Dies änderte jedoch auch den Webbenutzer. Das Surfen über IP unterscheidet sich vom Surfen über FQDN, wenn dies nicht die Standarddomäne ist.

In meinem Fall konnte der Webbenutzer meines FQDN nicht lesen /var/lib/phpmyadmin/blowfish_secret.inc.php, daher habe ich in meinem Fall einfach den Eigentümer dieser Datei von root: www-data in web1: client1 geändert . Dann teste und lade nginx neu:

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

Es hätte nicht nötig sein müssen, Nginx neu zu laden. Es hat nichts mit der Ausführung von PHP-Code zu tun.
womble
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.