获取root权限
sudo -i
进入下载目录
cd /www/local/src
#下载文件
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.7/phpMyAdmin-4.7.7-all-languages.tar.gz
# 解压
tar zxvf phpMyAdmin-4.7.7-all-languages.tar.gz
# 移动目录
mv phpMyAdmin-4.7.7-all-languages /www/server/phpMyAdmin
安装 phpMyAdmin
# 进入对应的安装目录
cd /www/server/phpMyAdmin
# 添加配置文件
cp config.sample.inc.php config.inc.php
编辑配置文件
vim /www/server/phpMyAdmin/config.inc.php
修改配置文件
#加密
$cfg['blowfish_secret'] = 'hh5987fsns08fdr3560s0f0fsfgvd6785'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/**
* Servers configuration
*/
$i = 0;
/**
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
修改成上面那样
配置phpMyAdmin
phpMyAdmin已经安装完毕以后,还需要配置一下Nginx,使我们可以通过浏览器访问phpMyAdmin,新建一个名为phpMyAdmin.conf
的配置文件
vim /www/server/nginx/vhost/phpMyAdmin.conf
内容如下:
server {
listen 8080;
location ~ \.php$ {
root /www/server/phpMyAdmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
root /www/server/phpMyAdmin;
index index.php;
}
}
listen 8080 为端口;
重载Nginx服务
service nginx reload
此时我们在浏览器中打开http://8080
。
随后出现的身份验证中填入MySQL的账户和密码就可以了。
安全加固
MySQL
的端口是外网不能访问的,但是安装了phpMyAdmin
之后,就在外界暴漏了MySQL
的入口,如果不做安全防护,很容易被恶意攻击盗取密码,那数据完全则无从保障。下面将介绍两种方式对phpMyAdmin
进行安全加固。
设置IP白名单
我们可以通过修改Nginx
配置,设置能够访问phpMyAdmin
服务的IP
,只允许自己电脑进行访问。
首先通过访问http://www.ip138.com这个网站来得到你现在的公网地址。
修改Nginx
的配置文件
vim /www/server/nginx/vhost/phpMyAdmin.conf
在location ~ \.php$
一节增加一行:
server {
listen 8080;
location ~ \.php$ {
root /www/server/phpMyAdmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
# 这里填写你的自己电脑的公网地址
allow xxx.xxx.xxx.xxx;
}
location / {
root /www/server/phpMyAdmin;
index index.php;
}
}
重载Nginx服务
service nginx reload
这样,除了使用你的电脑之外,其他人就不能访问你的phpMyAdmin
了。
当然,如果没有固定公网ip的就不要用这种方式了!切记!!!!
使用Basic Auth认证来保护phpMyAdmin
Nginx提供HTTP
的Basic Auth
功能,配置了Basic Auth
之后,需要输入正确的用户名和密码之后才能正确的访问网站。
我们使用htpasswd
来生成密码信息,首先我们先要安装httpd-tools
,在httpd-tools
中包含了htpasswd
命令。
yum install httpd-tools -y
接下来我们就可以创建用户和密码了,例如创建一个mike
的用户,执行命令:
htpasswd -c /etc/nginx/.htpasswd mike
按照提示输入两次密码之后就创建成功了,然后我们来再次修改Nginx的配置
vim /www/server/nginx/vhost/phpMyAdmin.conf
添加一下两句
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
内容如下:
server {
listen 8080;
location ~ \.php$ {
root /www/server/phpMyAdmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
root /www/server/phpMyAdmin;
index index.php;
}
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
重载Nginx服务
service nginx reload
重新访问网址http://
启用高级功能
- 本地下载phpMyAdmin-4.7.7-all-languages.tar.gz文件,解压
- 登录数据库后台管理,准备导入数据
- 找到解压文件夹
sql
,打开看到一份create_tables.sql
文件,导入数据库
编辑配置文件
vim /www/server/phpMyAdmin/config.inc.php
修改成如下
$cfg['blowfish_secret'] = 'hh5987fsns08fdr3560s0f0fsfgvd6785'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/**
* Servers configuration
*/
$i = 0;
/**
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/**
* 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
*/
重载Nginx服务
service nginx reload
数据库更换端口时需要重新设置端口
# 对应的端口
$cfg['Servers'][$i]['port'] = '3306';
总结
- 本文介绍了如何在CentOS 6.9中安装phpMyAdmin,并且介绍了两种方法对phpMyAdmin进行安全加固。
- 再次提醒用户,MySQL中的数据如果特别敏感,不要使用phpMyAdmin以及类似的工具管理数据库,不要开放MySQL的端口到外网,而是直接在机器上使用命令行进行管理。