安装配置 phpMyAdmin


phpmyadmin

为了更好的管理 MySQL/MariaDB 数据库,我们一般需要给服务器安装一个数据库图形管理界面,使用 WEB 页面管理数据库,phpMyAdmin 就是这样一个工具。

如果系统中安装了 epel 仓库,可以直接使用 yum install phpmyadmin 命令安装,不过这样直接安装会提示与之前安装的 php 有依赖冲突,所以建议使用手工安装方法。

安装 phpMyAdmin

官网 上可以找到 phpMyAdmin 的下载链接,使用 curl 命令下载它:

curl -O https://files.phpmyadmin.net/phpMyAdmin/4.7.6/phpMyAdmin-4.7.6-all-languages.zip

使用 unzip 命令解压刚下载的 zip 文件:

unzip phpMyAdmin*.zip

解压完成之后,之前下载的 zip 安装包就可使用 rm -rf phpMyAdmin*.zip 命令删除了。

我们需要将 phpMyAdmin 移动到 nginx 定义的服务根目录下,同时为了安全,可以给它修改成一个常用的名字(我配置有服务器目录为:/vagrant/www/public):

mv phpMyAdmin* /vagrant/www/public/phpMyAdmin

完成后,在浏览器中输入 Nginx 服务器绑定的主机名,加面加 /phpMyAdmin,如果正常的话,就能会看到 phpMyAdmin 的登陆界面了。

P.S.
如果输入地址,如果出现一个 phpMyAdmin-Error:Error during session start,说明 PHP 没有权限把 session 写到指定的目录中,需要先设定好 session 目录的写入权限。具体方法参考之前文章。

配置 phpMyAdmin

phpMyAdmin 管理界面的登陆密码是是之前安装 MySQL/MariaDB 数据库的用户名与密码。

登陆之后,在页面底部会显示一个安全提示:配置文件现在需要一个短语密码,我们需要在 phpMyAdmin 的配置文件 config.inc.php 中的 blowfish_secret 配置中设置一个密码,phpMyAdmin 会用到这个密码,加密 Cookie 。

这个配置文件在 phpMyAdmin 的安装目录下,如果文件不存在,需要复制一份 config.sample.inc.php 文件并命名为 config.inc.php

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

安全起见可以使用 openssl 自动生成一个随机密码:

openssl rand -base64 32

将返回的密码复制粘贴到 config.inc.php 文件中的 $cfg['blowfish_secret'] = 后面。

保存配置后,重新登录,警告就消失了。

安全登录

因为 phpMyAdmin 就在我们服务器根目录下,所有人都能看到,为了安全起见,我们可以针对 phpMyAdmin 配置一下 Nginx 服务器,使得 phpMyAdmin 登陆页面同样需要用户名和密码才能看到。

首先创建一个密码文件,文件中保存有使用 crypt() 加密的用户名与密码,执行以下命令:

openssl passwd

根据提示设置一个密码,完成后就会返回一个经过加密的密码短语:

XmTErSqBGbj0M

进行 Nginx 的配置文件目录,创建一个密码文件:pma_pass:

sudo vi /etc/nginx/conf.d/pma_pass

文件中的内容使用:username:password 的形式:

ryan:XmTErSqBGbj0M

完成后,还需要对之前的服务器配置文件中,添加一个 location 区块去匹配 phpMyAdmin 这个目录:

 location /phpmyadmin {
    auth_basic "Login Please";
    auth_basic_user_file /etc/nginx/conf.d/pma_pass;
  }

完成后,再查看 phpMyAdmin 登陆页面时浏览器就会提示需要验证密码了!

phpmyadmin-auth-required

#EOF