Lỗi phpMyAdmin - Tệp cấu hình hiện cần một cụm mật khẩu bí mật


29

Tôi liên tục gặp lỗi "Tệp cấu hình bây giờ cần cụm mật khẩu bí mật" sau khi cài đặt phpmyadmin. Tôi đã đặt cụm mật khẩu và cũng tuân theo hướng dẫn được trình bày trên https://serverfault.com/questions/291490/phpmyadmin-not-allowing-users-to-log-on nhưng có vẻ như nó không hoạt động. Tôi đang sử dụng AMI và cũng đã xử lý chủ sở hữu cũng như quyền. Xin vui lòng giúp đỡ.

Câu trả lời:


39

Điều này có thể giúp ích, https://wiki.archlinux.org/index.php/PhpMyAdmin#Add_blowfish_secret_passphrase

Nếu bạn thấy thông báo lỗi sau ở cuối trang khi bạn đăng nhập lần đầu vào / phpmyadmin (sử dụng tên người dùng và mật khẩu MySQL đã thiết lập trước đó):

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

Bạn cần thêm mật khẩu blowfish vào tệp cấu hình của phpMyAdmin. Chỉnh sửa /etc/webapps/phpmyadmin/config.inc.php và chèn "mật khẩu" blowfish ngẫu nhiên trong dòng

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

Bây giờ nó sẽ trông giống như thế này:

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

Tất cả điều này giả định rằng bạn đã tạo đúng tệp cấu hình,

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

Như tôi đã nói, tôi đã đặt cụm mật khẩu và vẫn không hoạt động.
jax

1
Có lẽ tập tin cấu hình bạn đã chỉnh sửa không phải là tập tin hoạt động? Bởi vì lỗi chỉ ra rằng cụm mật khẩu không được đặt.
user16081-JoeT

2
Tôi có cùng một vấn đề ... Tôi đã thay đổi config.sample.inc.phptệp của mình thành config.inc.phpvà thêm $cfg['blowfish_secret'] = 'qtdRoGmbc9{8IZr323xYcSN]0s)r$9b_JUnb{~Xz';cài đặt được đề cập vào nó nhưng trang chỉ mục phpMyAdmin vẫn phàn nàn rằng nó bị thiếu! Nếu có khả năng nó đang tải một tệp khác, thì tôi không biết tệp đó ở đâu và tại sao? Bất cứ ý tưởng bất cứ ai có vấn đề này trước đây?
JasonDavis

1
@jasondavis kiểm tra câu trả lời khác; bạn có thể có vấn đề về quyền và cần thay đổi quyền sở hữu / nhóm thư mục cấu hình phpMyAdmin của bạn.
dùng16081-JoeT

2
Bạn có thể sử dụng "Trình tạo bí mật" tại question-defense.com/tools/phpmyadmin-blowfish-secret-generator để lấy mã ngẫu nhiên nên hoạt động. Nó được liên kết trong một máy nhắn tin từ bài đăng user16081-JoeT. Sau đó làm theo hướng dẫn của anh ấy.
WebLuke

8

Tôi cũng đã nhận được lỗi The configuration file now needs a secret passphrase (blowfish_secret)khi tập tin cấu hình đã được $cfg['blowfish_secret']đặt. Tôi đang sử dụng CentOS v6 và tôi đã cài đặt PHPMyAdmin từ repo EPEL bằng cách sử dụng yum. Tôi thiết lập nginx để lưu trữ PHPMyAdmin và gói PHPMyAdmin (theo mặc định) được thiết lập để hoạt động với Apache. Tệp cấu hình được đặt tại /etc/phpMyAdmin/config.inc.php(bạn có thể đăng CONFIG_DIRnhập libraries/vendor_config.phpđể tìm vị trí tệp cấu hình của mình) và nếu bạn nhận thấy, người dùng đã root và nhóm apachedành cho tệp và thư mục. Điều này khiến PHPMyAdmin không thể đọc tệp cấu hình. Để khắc phục sự cố này, hãy sử dụng chownđể thay đổi nhóm thành nhóm đang chạy máy chủ web của bạn (trong trường hợp của tôi là nhóm nginx). Bạn sẽ cần thay đổi chủ sở hữu cho cả thư mục VÀ tệp cấu hình (như hiển thị bên dưới).

chown -R root.nginx /etc/phpMyAdmin/

Lưu ý rằng bạn có thể cần phải làm lại nếu PHPMyAdmin được cập nhật. Bạn cũng có thể gặp thêm vấn đề với các quyền nếu Selinux được bật.


Nhận xét trong /etc/phpmyadmin/config.inc.php: `* LƯU Ý: không thêm dữ liệu nhạy cảm bảo mật vào tệp này (như mật khẩu) * trừ khi bạn thực sự biết bạn đang làm gì. Nếu bạn làm như vậy, bất kỳ người dùng nào có thể * chạy PHP hoặc CGI trên máy chủ web của bạn sẽ có thể đọc chúng. Nếu bạn vẫn * muốn làm điều này, hãy đảm bảo bảo mật quyền truy cập vào tệp này * (cũng ở cấp hệ thống tệp). * / `
Butussy Butkus

Dưới đó, nó có dòng này: include('/var/lib/phpmyadmin/blowfish_secret.inc.php');Vì vậy, tôi đã đến đó và thay đổi nhóm tập tin để sử dụng máy chủ web của tôi. Nó hoạt động, nhưng dường như không an toàn hơn là đặt mật khẩu vào /etc/phpmyadmin/config.inc.php. Tôi đoán có lẽ PHP không thể chạy ở đó? Nó đã khắc phục vấn đề, mặc dù. Vì vậy, tôi đoán tôi sẽ băng qua cây cầu tấn công hack khi tôi đến đó.
Butussy Butkus

Vị trí mặc định theo CONFIG_DIR là ./config/config.inc.php. Vì tôi có tệp này bên ngoài thư mục này nên tôi có thể trao đổi các phiên bản dễ dàng hơn, tôi chỉ cần tạo một liên kết tượng trưng cho tệp này đến vị trí của mình và tin nhắn đã biến mất cho tôi. ln -s ../../../config.inc.php config.inc.php
MECU

+1 Vì cần phải đặt quyền trên /etc/phpMyAdminthư mục và không chỉ config.inc.phptệp trong đó.
jxmallett

5

Tôi đã có

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

trong /usr/share/phpmyadmin/lologists/vendor_config.php.

Nó nên là:

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

(thêm dấu gạch chéo)


2

Phiên bản mới nhất của phpmyadmin không tạo tệp cấu hình sau khi cài đặt. Có một tệp cấu hình ví dụ có sẵn và một tệp cấu hình mặc định thực tế sâu hơn trong cây thư mục.

Lưu ý rằng bí mật blowfish phải có độ dài chính xác 32 ký tự, nếu không nó sẽ không được áp dụng.

Sao chép tệp ví dụ để tạo tệp được sử dụng thực tế ghi đè mặc định. Thư mục hiển thị bên dưới chỉ là một ví dụ, do đó sử dụng thư mục / đường dẫn cho cài đặt phpmyadmin của bạn áp dụng.

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

Ở đầu tập tin là biến blowfish cần được đặt. Thêm 32 ký tự ngẫu nhiên vào giá trị của biến và sau đó lưu tệp.

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

Tôi không đọc bất cứ ai đề cập đến quy tắc 32 ký tự trong chuỗi này. Có lẽ đó là vấn đề của OP.


2

Trong trường hợp của tôi, tôi đã nâng cấp PHPMyAdmin theo cách thủ công vì phiên bản trong repo không hoạt động tốt với PHP 7.2. Tôi đã làm theo tất cả các bước trực tuyến, nhưng đã mắc lỗi trong /usr/share/phpmyadmin/lologists/vendor_config.php.

Dòng: define('CONFIG_DIR', '/etc/phpmyadmin/');đã thiếu một /ở cuối. Tôi đã tìm thấy điều này bằng cách chỉnh sửa thủ công các thư viện / lớp / Config.php và khi bắt đầu, function load($source)tôi đã làm một die($source). Ở đó tôi thấy rằng nguồn cấu hình không chính xác.


1

Ngoài việc kiểm tra quyền có thể thực thi được đối với nhóm http (máy chủ web), bạn nên kiểm tra xem mục nhập 'open_basingir' trong php.ini có bao gồm thư mục nơi config.inc.php được đặt nếu được đặt không. Điều này chữa khỏi vấn đề này cho tôi.


1

Chuyển đến thư mục phpmyadmin> tìm kiếm ' lint.php ' và đặt các thư viện = 'allow_once' / config.inc.php ';

Nó chắc chắn sẽ giải quyết vấn đề của bạn.

Nếu nó giải quyết vấn đề của bạn thì nhờ tôi.


1

Thực hiện theo các bước sau:

1) Đi đến /etc/httpd/conf.d/phpmyadmin.conf

  • (kiểm tra đường dẫn của phpMyAdmin trong thẻ thư mục)

2) Đi đến /usr/share/phpmyadmin, mởconf.inc.php

3) Thêm giá trị cho blowfish_secret, như -

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

4) Lưu và thoát.

5) Xóa bộ nhớ cache của trình duyệt

6) Cố gắng truy cập bằng url: http://yourserver.com/phpmyadmin/index.php


1

Chỉ muốn chia sẻ điều này. đặt

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

Chuyển đến thư mục phpmyadmin và tìm kiếm lint.php

và đặt

require_once 'common.inc.php';

1

Nếu bạn đã chỉnh sửa tập tin ở đây: /usr/share/phpmyadmin/config.inc.php

Và vấn đề không giải quyết được, có khả năng bạn đang chỉnh sửa tập tin sai. nếu bạn chạy whereis phpmyadmin -lsẽ cung cấp cho bạn danh sách vị trí phpmyadmin trên máy chủ.

Tại sao tôi nói bạn có thể chỉnh sửa tệp sai là nếu bạn cài đặt phpmyadmin của bạn var/www/phpmyadminhoặc var/www/html/phpmyadminđây là nơi bạn cần chỉnh sửa phpmyadmin/config.sample.inc.php.

Vì vậy, hãy thử điều này:

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

Chỉnh sửa điều này theo cách của bạn và đăng xuất và đăng nhập phpmyadmin, bạn sẽ ổn thôi.


0

Thêm mật khẩu với 32 ký hiệu bên trong ngoặc $ cfg ['blowfish_secret'] = ''; đã giúp tôi cho một tệp khác bên trong /usr/share/phpmyadmin/lologists/config.default.php

Sử dụng debian 9 + ispconfig, cài đặt thủ công phpmyadmin


0

Trong trường hợp của tôi, đó là vấn đề chủ sở hữu / quyền, vì tôi đã tạo thủ công symlink trong một trong những trang web chính của mình để trỏ đến /usr/share/phpmyadmin/để tôi có thể truy cập phpMyAdmin từ FQDN https://myserver.mydomain.com/changedphpmyadmin thay vì chỉ qua IP. Nhưng làm như vậy cũng thay đổi người dùng web; duyệt qua IP khác với qua FQDN, nếu đây không phải là miền mặc định.

Vì vậy, trong trường hợp của tôi, người dùng web FQDN của tôi không thể đọc được /var/lib/phpmyadmin/blowfish_secret.inc.php, vì vậy tôi chỉ cần thay đổi chủ sở hữu của tệp này từ root: www-data sang web1: client1 trong trường hợp của tôi. Sau đó kiểm tra và tải lại nginx:

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

Không cần phải tải lại nginx; nó không có gì để làm với việc thực thi mã PHP.
womble
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.