前言

  使用 php7+apache2+adminer 搭建网页版mysql管理工具,现将自己的搭建过程记录下来,留作后续参考。可参考其中配置,由于只配置了一次环境,可能有的步骤是多余的,后续可能会修改,全部过程尚未完备,请谨慎参考。

搭建过程

  1. 安装 mysql 数据库

    这一步可参考网上教程,此处不做详解

  2. 安装 apache

    sudo apt-get update

    sudo apt-get install apache2

    ubuntu桌面版的此步骤安装完毕后,就可以打开网页 http://localhost 访问了。

  我是使用的阿里云的服务器,安装时提示 80 端口被占用,于是尝试修改 apache 配置文件:/etc/apache2/port.conf,把端口自定义为:10080

  在阿里云上添加可访问端口号:10080

  重启 apache 服务:sudo /etc/init.d/apache2 restart

  这时候,在浏览器输入:http://服务器IP:10080 ,就可以访问 apache 的页面了

  apache2 默认的站点根目录: /var/www/html , /var/www/html默认是只读的,为了能在里面新建文件夹或者文件,修改访问的权限:

  cd /var/www

  chmod 777 html

   apache 服务相关:

   重启apache服务:sudo /etc/init.d/apache2 restart

   开启apache服务:sudo /etc/init.d/apache2 start

   关闭apache服务:sudo /etc/init.d/apache2 stop

  1. 安装php

   (1). 安装libapache2-mod-php7.0 依赖:

  sudo apt-get install software-properties-common

  sudo add-apt-repository ppa:ondrej/php

  sudo apt update

   (2). 安装 libapache2-mod-php7.0:

  sudo apt-get install libapache2-mod-php7.0

   (3). 安装php7:

  sudo apt-get install php7.0

   (4). 在 /var/www/html里新建文件 index.php:

<?php

phpinfo()

?>

   (5). 重启apache服务:

   sudo /etc/init.d/apache2 start

   在浏览器输入:http://服务器IP:10080/index.php

   访问成功,安装成功

  1. 增加php对mysql的支持:

    sudo apt-cache search php7

    重启apache服务:sudo /etc/init.d/apache2 restart

    打开服务器 http://IP:10080/index.php 可以看见mysql关模块

  2. 安装扩展:

    sudo apt-get -y install php7.0-fpm php7.0-mysql php7.0-curl php7.0-json php7.0-mbstring php7.0-xml php7.0-intl php7.0-odbc php7.0-cgi

  3. 安装 phpmyadmin

    ps:这一步应该是安装另一个管理工具phpmyadmin, 我一直没有配置成功,现在记录下来,留作参考:

    sudo apt-get install phpmyadmin

  4. 安装 adminer

    sudo apt-get install adminer

    激活:sudo a2enconf adminer.conf

    配置文件目录:/etc/apache2/conf-enabled/adminer.conf

    重启使得生效:sudo systemctl reload apache2

  5. 访问页面

    访问页面:https://ip:10080/adminer

    此时,可能会出现页面输入数据库密码后登录不上的问题:

    "The server requested authentication method unknown to the client"

  需要修改数据库:

   mysql -uroot -p

   use mysql;

   select user,host from user

   找到root对应的host,我的是 %

   ALTER USER 'root'@'root对应的host' IDENTIFIED WITH mysql_native_password BY '你的密码';

   更新:FLUSH PRIVILEGES;

   退出mysql后,修改mysql配置文件:

   我的在 /etc/mysql/mysql.conf.d/mysqld.cnf 添加一行:default_authentication_plugin=mysql_native_password

  重启mysql:

  sudo /etc/init.d/mysql restart

   再次通过页面 https://ip:10080/adminer 登录数据库,就可以了


后记:

再次重复上述过程时,发现了个问题,现在描述如下:

  1. apt install adminer 方法

    我在ubuntu18上尝试使用这个方法安装时,会新建/etc/adminer和/usr/share/adminer文件夹,其中/etc/adminer目录下是空的,/usr/share/adminer目录下没有adminer.php文件,需要自己运行

    compile.php构建adminer-4.6.2.php文件

    (1).
cd /usr/share/adminer/
./compile.php
mv adminer-4.6.2.php adminer.php
# 编译的时候出现了很多 Missing function,目前不知道原因,但最终还是编出来了

(2).

cd /etc/adminer/
touch conf.php

使用vi编辑conf.php

<?php

define('ADMINER_DIR', '/usr/share/adminer');

function adminer_object() {
// required to run any plugin
include_once ADMINER_DIR . "/plugins/plugin.php"; // autoloader
foreach (glob(ADMINER_DIR . "/plugins/*.php") as $filename) {
include_once $filename;
} $plugins = array(
// specify enabled plugins here
new AdminerVersionNoverify(), // disable phoning home
//new AdminerLoginServers([
// 'my' => ['server' => 'localhost', 'driver' => 'server'], // mysql
// 'pg' => ['server' => 'localhost', 'driver' => 'pgsql'],
//]),
); /* It is possible to combine customization and plugins:
class AdminerCustomization extends AdminerPlugin {
}
return new AdminerCustomization($plugins);
*/ return new AdminerPlugin($plugins);
} include ADMINER_DIR . "/adminer.php";
?>

(3).

cd /etc/apache2/conf-available/
touch adminer.conf

apache2的配置文件都在conf-available中,运行激活配置文件指令时,会在conf-enabled文件中建立前者的软连接

使用vi编辑adminer.conf

Alias /adminer /etc/adminer

<Directory /etc/adminer>
Require all granted
DirectoryIndex conf.php
</Directory>

(4). 激活adminer配置,重启apache

sudo a2enconf adminer.conf
sudo systemctl reload apache2

(停用配置:

sudo a2disconf adminer.conf && systemctl reload apache2)

(5). 访问http://服务器ip地址:端口号/adminer/

出现了久违的adminer页面

  1. 更简单的方法

    不需要apt安装adminer,只需要从adminer官网下载adminer.php文件到/var/www/html/目录下,就可以直接使用。
cd /var/www/html/
wget https://github.com/vrana/adminer/releases/download/v4.8.1/adminer-4.8.1.php
mv adminer-4.8.1.php adminer.php

在浏览器输入:http://服务器ip地址:端口号/adminer.php

就可以直接调用adminer工具

或者不用改名,直接调用http://服务器ip地址:端口号/adminer-4.8.1.php

  1. 问题

    adminer是一个十分强大的工具,可以连接多种数据库,但需要安装相应的php插件

我想连接本地的sqlite3数据库,使用adminer页面会先报错:当前的php不支持sqlite,需要安装插件:

sudo apt install php7.0-sqlite3
# 刷新
sudo apt-cache search php7
# 重启apache
sudo systemctl reload apache2

这时候,再次尝试连接sqlite数据库,4.6.2版本报错:

Implement login() method to use SQLite.

4.8.1版本报错:

Adminer默认不支持访问没有密码的数据库,详情见这里.

根据官网提示:

Adminer 4.6.3 and newer does not support accessing a database without a password.

为了保证安全,adminer从4.6.3以后,不支持登录一个不设密码的数据库,如果想要登录sqlite,需要修改adminer.php或添加插件

当然,连接mysql是没有问题的。至于sqlite3 应该会有解决方案,但留给以后探索吧~

我的解决方案,安装如下版本的adminer.php

cd /var/www/html/
wget https://files.cnblogs.com/files/brian-sun/adminer4.2.2.zip?t=1646390641 -O adminer.zip
unzip adminer.php

数据库位置填写sqlite数据库文件的绝对路径

如果打开sqlite3数据库时提示无效数据库,大概率是数据库所在文件夹没有权限,可以把数据库文件放到 /var/www/html/目录下,或者新建一个文件夹,把数据库文件放到里面,然后给文件夹赋予最高权限。

[参考]

https://blog.csdn.net/lhtzbj12/article/details/75736013

https://blog.csdn.net/zhongbaosheng/article/details/114599093

https://blog.csdn.net/qq_40147863/article/details/83187917

https://blog.csdn.net/weixin_28738165/article/details/116397815

https://www.yundongfang.com/Yun40924.html

ubuntu20使用php+apache+adminer搭建mysql网页管理工具的更多相关文章

  1. ​Linux环境下搭建禅道管理工具-包含软件资源

    ​Linux环境下搭建禅道管理工具 1:百度云盘下载: 禅道--链接: https://pan.baidu.com/s/1Stu7nOZVIPO5TnpJWjWtiQ 提取码:dnik CentOs操 ...

  2. mysql监控管理工具--innotop

    https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/innotop/innotop-1.9. ...

  3. MySQL Utilities管理工具

    前提: 1.安装MySQL Utilities工具 2.复制my_print_defaults命令至/usr/bin下或写入环境变量. 卸载方式: python ./setup.py clean -- ...

  4. spider-通过scrapyd网页管理工具执行scrapy框架

    1.首先写一个scrapy框架爬虫的项目 scrapy startproject 项目名称 # 创建项目 cd 项目名称 scrapy genspider 爬虫名称 爬虫网址(www.xxxx) #生 ...

  5. 使用YApi搭建API接口管理工具(docker安装)

    使用YApi搭建API接口管理工具(docker安装) 工具描述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布 ...

  6. 快速搭建 kvm web 管理工具 WebVirtMgr

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211117937177/ 相关话题:https://ww ...

  7. (5.6)mysql高可用系列——MySQL Utilities 管理工具

    关键词:mysql工具集,mysql管理工具,mysql utilities [1]安装mysql utilities cd /download wget https://cdn.mysql.com/ ...

  8. mysql网页客户端工具

    mysql数据库的远程管理,云服务器数据库的管理监控等都可以使用 TreeSoft,  TreeSoft数据库管理系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,实现基于WEB ...

  9. mysql可视化管理工具

    1.navicat for mysql 2.navicat premium 3.HeidiSQL 4.MySQLWorkbench

  10. MySQL可视化管理工具 —— Navicat for MysSQL

    类似PL/SQL管理Oracle的工具 Navicat可以管理MySQL 1.安装 2.连接(输入IP.端口.用户名.密码) 3.新建sql语句:点击左侧database.点击菜单“查询”.点击“新建 ...

随机推荐

  1. 解决 pip 安装时的 SSL/TLS 问题

    在使用pip安装Python软件包时,有时会遇到与 SSL/TLS 相关的问题.一种常见情况是在使用VPN时出现以下错误信息 ValueError: check_hostname requires s ...

  2. 用 C 语言开发一门编程语言 — 异常处理

    目录 文章目录 目录 前文列表 异常捕获 定义 Lisp Value 函数 前文列表 <用 C 语言开发一门编程语言 - 交互式解析器l> <用 C 语言开发一门编程语言 - 跨平台 ...

  3. 如何使用 JS 判断用户是否处于活跃状态

    有时候,我们需要在网页判断用户是否处与非活跃状态,如果用户长时间没有在页面上进行任何操作,我们则判定该用户是非活跃的. 在 javascript 中我们可以通过监听某些鼠标或键盘相关的事件来判定用户是 ...

  4. 如何利用 Seaborn 实现高级统计图表

    本文分享自华为云社区<使用 Seaborn 实现高级统计图表从箱线图到多变量关系探索> ,作者:柠檬味拥抱. 在数据科学和数据可视化领域,Seaborn 是一个备受欢迎的 Python 可 ...

  5. jupyter notebook无法找到自己的虚拟环境

    1:打开cmd/Anaconda Prompt/Anaconda Powershell Prompt 2:进入虚拟环境conda activate 环境名 3:conda list查看有无ipyker ...

  6. Ceph 架构以及部署

    目录 Ceph架构 存储类型 为什么用到Ceph? 1. NFS 2. MooseFS MooseFS瓶颈 3. GlusterFS 4. Ceph Ceph的组件 Ceph部署 前期准备 1.1 修 ...

  7. 从 p12 格式 SSL 证书解出 pem 格式公钥私钥给 Postman 使用

    目的 Postman 的(非 Chrome 扩展版的)app 并不能读取系统中的客户端证书,这种调试要发送客户端证书的 https 请求的时候就得自己另外设置.系统直接导出证书有 cer 和 p12 ...

  8. Python ipset iptables 实现蜜罐 自动封堵扫描者IP

    Python ipset iptables 实现蜜罐 自动封堵扫描者IP 蜜罐可以诱捕入侵者,但无法实时封堵入侵者,必须在事后通过日志进行手工封堵. 有没有什么办法可以实现自动封堵入侵者IP? ipt ...

  9. P1746 离开中山路

    传送锚点:https://www.luogu.com.cn/problem/P1746 题目背景 <爱与愁的故事第三弹·shopping>最终章. 题目描述 爱与愁大神买完东西后,打算坐车 ...

  10. Nginx的正向代理和反向代理

    1.Nginx代理 (1)Nginx出现的早期就是作为一个高性能的http.反向代理的web服务器. (2)同时它也提供了IMAP/POP3/SMTP服务,也就是电子邮件代理服务器. (3)它的特点就 ...