Làm cách nào để định cấu hình phpMyAdmin để truy cập nhiều máy chủ?


13

Cách Ubuntu để cấu hình phpMyAdmin là gì để tôi có thể sử dụng nó để quản trị nhiều máy chủ MySQL? Các tham số cơ sở dữ liệu được đặt trong /etc/dbconfig-common/phpmyadmin.conf, nhưng chỉ có không gian trong đó cho các tham số kết nối cho một máy chủ. Tôi có thể hack nó vào /etc/phpmyadmin/config-db.php/etc/phpmyadmin/config.inc.php, nhưng tôi cho rằng đó có phải là một cách thanh lịch hơn.


Bạn đã bao giờ tìm thấy một cách làm để làm điều này? Bạn đã hack vào một trong những tập tin bạn đã đề cập hay chưa?
Nanne

Hướng dẫn này giải thích cách bạn có thể quản lý nhiều máy chủ MySQL từ một cài đặt phpMyAdmin. Vì lý do bảo mật, liên lạc giữa phpMyAdmin và bất kỳ máy chủ MySQL từ xa nào đang sử dụng mã hóa SSL

Câu trả lời:


8

Câu hỏi khá cũ, nhưng vẫn có liên quan trên các tìm kiếm.

phpMyAdmin sử dụng PHP đơn giản cho các tệp cấu hình và $cfg['Servers'] mảng để lấy các máy chủ được cấu hình.

Vì vậy, cách thích hợp là thêm tệp cấu hình mới vào /etc/phpmyadmin/conf.dcho mọi máy chủ bạn muốn thêm. Chỉ cần kết thúc tên tệp .phpđể đưa chúng vào, nhưng nên sử dụngyour_new_server.inc.php để thống nhất.

Nội dung tối thiểu cho một tệp cấu hình đã cho sẽ là:

<?php // let the interpreter know this is code
$cfg['Servers'][2]['host']     = 'THE_HOST';
$cfg['Servers'][2]['user']     = 'THE_USER';
$cfg['Servers'][2]['password'] = 'THE_PASSWORD';

Như đã nêu trong một câu trả lời khác, bạn có thể kiểm tra /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php tệp để biết thêm thông số.

Quan trọng: Bạn phải tăng chỉ số (2) của mảng cho mỗi tệp mới và tránh sử dụng 1 nếu bạn muốn tiếp tục kết nối với localhost.

Nếu anh chàng gói đó phpMyAdmin đã nghĩ về nó, họ có thể đã thêm $ibiến tăng dần trong foreach bao gồm các tệp từ conf.dthư mục, vì vậy bạn chỉ cần sử dụng nó làm chỉ mục và không phải lo lắng về việc phải tăng nó bằng tay, nhưng đáng buồn là không phải vậy. Bạn có thể tự làm điều đó mặc dù.


[2019]: Các phiên bản PHP mới hơn cho phép cú pháp thay thế ngắn gọn hơn này:

<?php $cfg['Servers'][] = ['host'=>'my_host', 'user'=>'my_user', 'password'=>'my_pass'];

Tôi đã thử đặt nội dung tối thiểu được liệt kê trong /etc/phpmyadmin/conf.d/slaveA.conf.php và chỉ đơn giản nhìn thấy nội dung ở đầu trang PHPMyAdmin. Khi tôi trích dẫn nội dung tương tự vào dưới cùng của config.inc.php, nó đã hoạt động. Một cái gì đó về điều đó bao gồm dường như đang làm rối tung nó. Mặt khác, đây có vẻ là cách dự kiến ​​để tạo cấu hình tùy chỉnh sẽ không bị giết trong các bản cập nhật.
flickerfly

1
@flickerfly, câu trả lời trễ nhưng mã trong các tệp cấu hình phải bắt đầu bằng <?php, như bất kỳ tập lệnh PHP nào khác.
Marc

4

Tôi nghĩ rằng đây là cách chính xác nhất để làm điều đó:

Đầu tiên thiết lập mật khẩu:

sudo htpasswd -c /etc/phpmyadmin/htpasswd.setup admin

Sau đó vô hiệu hóa bảo mật:

sudo pma-configure

Sau đó, truy cập http: // của bạn bảo mật một lần nữa:

sudo pma-secure

Tệp cấu hình được tạo bởi phương thức này được lưu trữ trong /var/lib/phpmyadmin/config.inc.php.
Michael Lawton

Tệp cấu hình này được tạo bởi phương thức này sau đó được bao gồm trong tệp cấu hình chính tại /etc/phpmyadmin/config.inc.php. Tập lệnh thiết lập phpMyAdmin bị lỗi trên Ubuntu và không tải cấu hình hiện có (buộc bạn phải bắt đầu lại từ đầu mỗi khi bạn định cấu hình nó). Ngoài ra, cấu hình mà nó tạo ra bao gồm những thứ như bí mật blowfish sau đó được ghi đè bởi tệp cấu hình chính. Bạn sẽ thấy rằng máy chủ đầu tiên (1) được ghi đè bởi tệp cấu hình chính, sử dụng các giá trị máy chủ từ config-db.php.
Michael Lawton

2

Tôi đã giả sử như sau:

  • /etc/phpmyadmin/ sẽ là nơi hợp lý nhất để thêm cấu hình
  • /etc/phpmyadmin/config-db.phplà vị trí cho cấu hình mặc định (cục bộ?). Đây là bởi vì nó là mặc định, chỉ một db
  • /etc/phpmyadmin/config.inc.phpđọc cơ sở dữ liệu mặc định để nó có một. Ít nhất cái này được sử dụng, vì vậy bạn có một cơ sở dữ liệu. Nếu có gì đó thay đổi trong cấu hình của bạn, config-db.phpthì thay đổi, vì vậy những thay đổi 'cục bộ' đối với tệp của bạn không được sửa đổi

Do đó, kết luận của tôi là việc thêm một máy chủ bổ sung bên dưới phần này:

/* Configure according to dbconfig-common if enabled */
if (!empty($dbname)) {
    //reading from config-db.php
}

//$i++ was allready done in if above
//Adding extra servers
 $cfg['Servers'][$i]['host'] = 'serverhost.host.tld';
 $cfg['Servers'][$i]['extension'] = 'mysqli';
//...etc

Đây có vẻ là nơi tốt nhất.


1

Theo tài liệu phpMyAdmin, bạn có thể xác định nhiều máy chủ trong $cfg['Servers']mảng được xác định trong config.inc.phptệp.


2
Trong bản cài đặt phpMyAdmin chung, vâng. Nhưng Ubuntu có các tệp cấu hình riêng để tạo một phần của tệp config.inc.php và tôi muốn biết cách cấu hình Ubuntu, mà không phải ghi đè cấu hình Ubuntu.
Mike Scott

Tôi hiểu rồi. Các ý kiến ​​trong tập tin nói You can regenerate it using: dpkg-reconfigure -plow phpmyadmin. Tôi giả sử bạn đã thử điều đó? (sẽ không làm điều đó trên hệ thống sản xuất ngay bây giờ) Ngoài ra ... các tệp được thay đổi thủ công sẽ được nhắc cập nhật trước khi bị ghi đè.
Carsten Thiel

2
Có, tôi có thể tạo lại tệp config-db.php, nhưng tệp cấu hình mà từ đó nó cung cấp các tham số kết nối cơ sở dữ liệu (/etc/dbconfig-common/phpmyadmin.conf) chỉ có chỗ để định cấu hình một máy chủ cơ sở dữ liệu. Tôi muốn biết làm thế nào để cấu hình nhiều hơn một máy chủ cơ sở dữ liệu.
Mike Scott

+ Mike Scott, tôi không thể có $ cfg ['Máy chủ'] để hoạt động trong một tập tin conf.d /, nhưng khi tôi đặt nó vào config.inc.php thì nó hoạt động tốt. Tôi nghĩ rằng có một số lỗi mà câu lệnh bao gồm gây rối với nó.
flickerfly

1

Các tập tin cấu hình chính được lưu trữ trong /etc/phpmyadmin/config.inc.php. Tập tin này bao gồm

  • Bí mật cá đuối từ /var/lib/phpmyadmin/blowfish_secret.inc.php
  • Cấu hình được tạo từ tập lệnh thiết lập phpMyAdmin (phương thức của diegueus9) /var/lib/phpmyadmin/config.inc.php
  • Giá trị DB từ /etc/phpmyadmin/config-db.phpđó được tạo ra /etc/dbconfig-common/phpmyadmin.confbởi /usr/sbin/dbconfig-generate-include./etc/dbconfig-common/phpmyadmin.confcó thể được sửa đổi bằng cách sử dụngdpkg-reconfigure -plow phpmyadmin
  • Tập tin cấu hình bổ sung từ /etc/phpmyadmin/conf.d/*.php

Một số đoạn cấu hình ví dụ được /usr/share/doc/phpmyadmin/examplesbao gồm config.manyhosts.inc.php. Tập tin này có thể được thêm vào /etc/phpmyadmin/conf.d. Nó hoạt động bằng cách đặt lại ibiến trở về 1 trước khi tạo bất kỳ máy chủ nào để nó ghi đè lên máy chủ được đặt trong/etc/phpmyadmin/config.inc.php .

Nếu bạn muốn thực hiện một cấu hình nâng cao hơn, có thể bạn sẽ muốn thay đổi /etc/phpmyadmin/config.inc.phptệp và có thể thêm các tiện ích mở rộng cấu hình khác bằng cách sử dụng/etc/phpmyadmin/conf.d .

Để thêm hỗ trợ cho các cấu hình bổ sung cho các tệp cấu hình cũ hơn, bạn có thể tạo thư mục /etc/phpmyadmin/conf.dvà sau đó thêm mã PHP bên dưới vào cuối /etc/phpmyadmin/config.inc.php:

/* Support additional configurations */
foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename) {
        include($filename);
}
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.