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 帳密登入]