PMA - 環境安裝
Published in:2022-11-22 | category: Web


PMA 環境搭建



下載 PMA 安裝包

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.10/phpMyAdmin-3.4.9-all-languages.tar.gz
    
tar zxvf phpMyAdmin-3.4.9-all-languages.tar.gz
    
cp -Rf phpMyAdmin-3.4.9-all-languages /home/phpMyAdmin
    
cd /home/phpMyAdmin
    
cp config.sample.inc.php config.inc.php


編輯 PMA 設定檔

[ 注意 !! 實測不能單台多套 ]

vim config.inc.php
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * phpMyAdmin sample configuration, you can use it as base for
 * manual configuration. For easier setup you can use setup/
 *
 * All directives are explained in documentation in the doc/ folder
 * or at <https://docs.phpmyadmin.net/>.
 *
 * @package PhpMyAdmin
 */

/**
 * This is needed for cookie based authentication to encrypt password in
 * cookie. Needs to be 32 chars long.
 */
//$cfg['blowfish_secret']: '3d21cb29984ee1ebccec07d650032'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

//$cfg['blowfish_secret']: '';
//$cfg['UploadDir']: '';
//$cfg['SaveDir']: '';

$cfg['blowfish_secret']: 'laurance'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg['PmaAbsoluteUri']: 'http://phpmyadmin.project.orz/';
$cfg['UploadDir']: '';
$cfg['SaveDir']: '';

/**
 * Servers configuration
 */
$i: 0;

/**
 * First server
 */

//----------------------------------------------------------------------- pma/pma
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type']: 'http';
$cfg['Servers'][$i]['host']: '172.16.0.222';
$cfg['Servers'][$i]['port']: '3306';
$cfg['Servers'][$i]['user']: '';
$cfg['Servers'][$i]['password']: '';
$cfg['Servers'][$i]['extension']: 'mysqli';
$cfg['Servers'][$i]['compress']: false;
$cfg['Servers'][$i]['AllowNoPassword']: true;

/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb']: '';
$cfg['Servers'][$i]['bookmarktable']: '';
$cfg['Servers'][$i]['relation']: '';
$cfg['Servers'][$i]['table_info']: '';
$cfg['Servers'][$i]['table_coords']: '';
$cfg['Servers'][$i]['pdf_pages']: '';
$cfg['Servers'][$i]['column_info']: '';
$cfg['Servers'][$i]['history']: '';
$cfg['Servers'][$i]['designer_coords']: '';
$cfg['Servers'][$i]['tracking']: '';
//----------------------------------------------------------------------- pmas/pmas
/* Server parameters */
//$cfg['Servers'][$i]['auth_type']: 'http';
//$cfg['Servers'][$i]['host']: '172.16.0.222';
//$cfg['Servers'][$i]['port']: '3307';
//$cfg['Servers'][$i]['user']: '';
//$cfg['Servers'][$i]['password']: '';
//$cfg['Servers'][$i]['extension']: 'mysqli';
//$cfg['Servers'][$i]['compress']: false;
//$cfg['Servers'][$i]['AllowNoPassword']: true;

/* Advanced phpMyAdmin features */
//$cfg['Servers'][$i]['pmadb']: '';
//$cfg['Servers'][$i]['bookmarktable']: '';
//$cfg['Servers'][$i]['relation']: '';
//$cfg['Servers'][$i]['table_info']: '';
//$cfg['Servers'][$i]['table_coords']: '';
//$cfg['Servers'][$i]['pdf_pages']: '';
//$cfg['Servers'][$i]['column_info']: '';
//$cfg['Servers'][$i]['history']: '';
//$cfg['Servers'][$i]['designer_coords']: '';
//$cfg['Servers'][$i]['tracking']: '';
//-----------------------------------------------------------------------

/**
 * phpMyAdmin configuration storage settings.
 */

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost']: '';
// $cfg['Servers'][$i]['controlport']: '';
// $cfg['Servers'][$i]['controluser']: 'pma';
// $cfg['Servers'][$i]['controlpass']: 'pmapass';

/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb']: 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable']: 'pma__bookmark';
// $cfg['Servers'][$i]['relation']: 'pma__relation';
// $cfg['Servers'][$i]['table_info']: 'pma__table_info';
// $cfg['Servers'][$i]['table_coords']: 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages']: 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info']: 'pma__column_info';
// $cfg['Servers'][$i]['history']: 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs']: 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking']: 'pma__tracking';
// $cfg['Servers'][$i]['userconfig']: 'pma__userconfig';
// $cfg['Servers'][$i]['recent']: 'pma__recent';
// $cfg['Servers'][$i]['favorite']: 'pma__favorite';
// $cfg['Servers'][$i]['users']: 'pma__users';
// $cfg['Servers'][$i]['usergroups']: 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding']: 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches']: 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns']: 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings']: 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates']: 'pma__export_templates';

/**
 * End of servers configuration
 */

/**
 * Directories for saving/loading files from server
 */
//$cfg['UploadDir']: '';
//$cfg['SaveDir']: '';

/**
 * Whether to display icons or text or both icons and text in table row
 * action segment. Value can be either of 'icons', 'text' or 'both'.
 * default: 'both'
 */
//$cfg['RowActionType']: 'icons';

/**
 * Defines whether a user should be displayed a "show all (records)"
 * button in browse mode or not.
 * default: false
 */
//$cfg['ShowAll']: true;

/**
 * Number of rows displayed when browsing a result set. If the result
 * set contains more rows, "Previous" and "Next".
 * Possible values: 25, 50, 100, 250, 500
 * default: 25
 */
//$cfg['MaxRows']: 50;

/**
 * Disallow editing of binary fields
 * valid values are:
 *   false    allow editing
 *   'blob'   allow editing except for BLOB fields
 *   'noblob' disallow editing except for BLOB fields
 *   'all'    disallow editing
 * default: 'blob'
 */
//$cfg['ProtectBinary']: false;

/**
 * Default language to use, if not browser-defined or user-defined
 * (you find all languages in the locale folder)
 * uncomment the desired line:
 * default: 'en'
 */
//$cfg['DefaultLang']: 'en';
//$cfg['DefaultLang']: 'de';

/**
 * How many columns should be used for table display of a database?
 * (a value larger than 1 results in some information being hidden)
 * default: 1
 */
//$cfg['PropertiesNumColumns']: 2;

/**
 * Set to true if you want DB-based query history.If false, this utilizes
 * JS-routines to display query history (lost by window close)
 *
 * This requires configuration storage enabled, see above.
 * default: false
 */
//$cfg['QueryHistoryDB']: true;

/**
 * When using DB-based query history, how many entries should be kept?
 * default: 25
 */
//$cfg['QueryHistoryMax']: 100;

/**
 * Whether or not to query the user before sending the error report to
 * the phpMyAdmin team when a JavaScript error occurs
 *
 * Available options
 * ('ask' | 'always' | 'never')
 * default: 'ask'
 */
//$cfg['SendErrorReports']: 'always';

/**
 * You can find more configuration options in the documentation
 * in the doc/ folder or at <https://docs.phpmyadmin.net/>.
 */

```   

***
***


   
**PMA 設定檔解析**
   
```sql
$cfg['Servers'][$i]['auth_type']: 'config'


參數 參數意思
config 安全性最差也最方便,因為你必須將 MySQL 帳號、密碼 儲存在 config 之中,換句話說你不需要輸入帳號密碼即可登入
http 只要使用 MySQL 中建立的有效帳號即可登入
cookie MySQL帳號、密碼 會儲存在 cookie之中,不過在本次 session結束之後會將密碼刪除
採用 cookie的驗證方式,需要再額外設定 blowfish_secret 用來作為加密的 key


MySQL 設定

MySQL 加 帳號權限

CREATE USER 'pma'@'%' IDENTIFIED BY 'pma';
    
grant all on *.* to 'pma'@'%';
    
flush privileges;


Nginx 設定

server
{
       listen      80;
       server_name phpmyadmin.project.orz;
       index       index.php index.html;
       root /home/pma/;
       include vhost/file1.conf;
       access_log  logs/pma/pma.acc access;
}


測試驗證



Windows 本機綁 hosts

172.16.0.222 phpmyadmin.project.orz


phpmyadmin.project.orz 登入

[mysql 帳密登入]




Prev:
Rclone - 安裝 Rclone && 如何遠端備份至雲端 drive
Next:
Iptables - 移除某一條規則