Fedora 安装 DbNinja for MySQL

前言:Linux 下的数据库管理工具感觉都不怎么好用,最近听说 DbNinja 这个还可以,所以安装来试试看。但是没想到安装过程异常艰难,因此特地记下以便以后使用。本次的操作环境是 Fedora 27。

目录

简介

DbNinja是一个用于MySQL数据库管理和开发的高级基于Web的应用程序。 DbNinja支持所有最新功能,包括:触发器,事件,视图,存储例程和外键;此外,它还允许导入和备份数据和MySQL对象结构,管理用户等等。DbNinja具有高度功能和优雅的用户界面,可以在任何操作系统的任何现代浏览器中安全使用。

使用要求

安装 DbNinja,首先要满足以下几个条件:

  • Apache,IIS或任何其他支持PHP的Web服务器。
  • PHP 5.3或更高版本,并且安装启用了“mysqli“扩展包。
  • 允许访问目标机器的文件系统并可以复制文件。

由于 DbNinja for MySQL 是一个 Web 应用,使用时需要满足以下条件:

  • 支持Cookie的任何主流浏览器的最新版本。
  • MySQL服务器是 4.1 或更高版本。

安装 DbNinja

首先在官网下载 DbNinja 的压缩包:

http://www.dbninja.com/download

然后将下载的包解压,并复制到服务器 webroot 根目录中。例如机器使用的是 Apache HTTPD 服务器,则将解压后的包复制到 var/www/html (默认目录)中。

[root@xx x]# tar -xzvf dbninja.tar.gz
# 例如使用的是 Apache 服务器
[root@xx x]# cp -r dbninja /var/www/html/

按照官网的教程,接下来应该对 DbNinja 进行一些安全设置(可选),例如:

  • 配置Web服务器以阻止访问 _users 和 _includes 目录。
  • 将默认的“dbninja”目录重命名,防止别人能够直接猜到访问的路径。
  • 将’_users / admin’目录重命名,防止别人能够查到你的密码。
  • 配置 Web 服务器以拒绝从已知IP地址以外的所有目录访问 DbNinja 目录。
  • 为防止未经授权访问服务器和数据,使用加密连接(HTTPS)或在“设置”窗口中启用内置连接加密。

这里仅简单介绍一下,更加具体内容可以查看官网的安全设置

配置完安全设置之后,就可以测试一下软件的运行。打开浏览器并浏览之前创建的目录的URL(例如,在之前的设置中创建的目录是 dbninja,URL 应显示在http://localhost/dbninja)。如果界面显示正常,没有报任何错误,最后就可以根据软件的安装向导完成安装。

故障排除

一般情况下,按照上面的步骤完成之后都不能正常运行,都会出现一些安装错误,最经常遇到的就是“目录 DbNinja3/_users 无法写入“。这是因为软件安装向导运行时,它会在这个目录下创建一些文件,比如用户密码和验证码之类的文件。因此如果服务器没有给予软件一定的权限,这些东西就无法正常创建。

按照官网的解决办法,是设置这个目录的拥有者以及权限(官网地址):

# 首先设置该目录的权限值
[root@xx x]# chmod 775 dbninja/_users

# 然后改变目录的拥有者
[root@xx x]# ps -eo ruser,rgroup,command |egrep "apache|ngnx|lighttpd" |egrep -m 1 -v "root|grep"

官网说上面这条命令的输出结果应该类似于下面这样:

www-user  www-group  /usr/sbin/apache2 -k start

但是实际上我的输出结果是:

apache   apache   php-fpm: pool www

这里纠结了好久,后来我搜了一下资料,发现这个输出其实也没有问题。只是因为操作系统的不同,导致输出不一样。比如用 Ubuntu 就能够得到第一条结果,使用 Fedora 就能得到第二条输出。所以仍旧按照官网的后续操作执行:

# 设置目录拥有者,USER 和 GROUP 分别是上面输出语句的第一第二参数
# 格式: chown -R USER:GROUP dbninja

# 例如我的就是
[root@xx x]# chown -R apache:apache dbninja

按照官网的教程,到这里已经结束了,按理说应该能够正常运行了,但是我的还出现了一些其他问题。访问 http://localhost/dbninja 时,机器就会发出警告信息 “SELinux is preventing php-fpm from write access on the directory _users”,也就是说系统阻止了软件对 _users 目录的写修改,导致软件无法写入数据,最终无法正常运行。

这个问题官网没有给出说明,所以我只好根据这条警告给出的建议来解决:
这里写图片描述

# 可能不同系统给出的建议不一样,因此最好根据系统给出的建议来执行
# 首先允许对目录 _users 的写访问:
[root@xx dbninja]# semanage fcontext -a -t httpd_sys_rw_content_t '_users'
[root@xx dbninja]# restorecon -v '_users'

# 其次允许 httpd 统一(这里我也不太明白)
[root@xx dbninja]#setsebool -P httpd_unified 1

执行完之后,重启 HTTPD 服务,我的 DbNinja 就可以正常运行了,然后再根据安装向导就完成了安装。最终得到的软件界面如下:
DbNinja

本以为到这里已经结束了,没想到新建数据库连接时又有新的问题。系统发出一个新的警告,说是不允许 HTTPD 访问数据库。这个警告处理和上面一样,根据系统的建议来解决:

# 允许 HTTPD 的网络连接
[root@xx x]# setsebool -P httpd_can_network_connect 1
# 允许 HTTPD 连接数据库
[root@xx x]# setsebool -P httpd_can_network_connect_db 1

到这里之后就可以正常连接数据库了。

参考:
DbNinja官网:https://www.dbninja.com/?page=home
php-fpm 问题:https://unix.stackexchange.com/questions/337704/selinux-is-preventing-nginx-from-writing-via-php-fpm
其他博客:https://blog.csdn.net/logic_lai/article/details/80403361

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值