Fedora 安装 DbNinja for MySQL

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

目录

简介

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

使用要求

安装 DbNinja,首先要知足如下几个条件:mysql

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

因为 DbNinja for MySQL 是一个 Web 应用,使用时须要知足如下条件:linux

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

安装 DbNinja

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

http://www.dbninja.com/downloadweb

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

[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)或在“设置”窗口中启用内置链接加密。

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

配置完安全设置以后,就能够测试一下软件的运行。打开浏览器并浏览以前建立的目录的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