自建 VPS 服务器的一些攻略

adminer,从网页访问和管理 vps 数据库

— 目录 —

Adminer,曾经的 phpMinAdmin,是一个通过网页来访问本机数据库的工具。可以不登入 vps 的数据库命令行,就能执行一些基本的操作。但总体来说,更适合对于已经有一定数据库经验的人,作为便捷的辅助工具。对于新人,则很容易在各种界面选项中迷失,所以可能还是按照本站其它教程,在命令行界面复制粘贴命令,更靠谱一些。

注意:使用 adminer 这类程序,增加了被人从网页侵入数据库的风险!请在明白此类风险的情况下谨慎使用! 并且

安装

Adminer 是一个单独的 .php 文件,所以,可以放在 VPS 外层网络服务器 Nginx 的任何支持 php 的已有网站的任何子文件夹下。当然,如果你在外层 Nginx 还完全没有任何网站,也可以使用和其它工具类似的方法,启动一个 docker 容器。

方法 1. 直接放在 vps 已有的支持 php 的网站里

如何让 Nginx 的网站支持数据库,请参见 Nginx 和 php 的配置文章

# 在任何已有网站的下创建任意子目录,用来放置 adminer 程序
mkdir -p /WEBSITES/any_website.example.com/any/path/to

# 从官方服务器下载 adminer 程序到网站目录,改名为 index.php 或任意 隐秘名称.php
wget -O /WEBSITES/any_website.example.com/any/path/to/index.php https://github.com/vrana/adminer/releases/download/v5.4.2/adminer-5.4.2.php

然后,就可以通过类似下面的网址,来访问 adminer 工具:

https://any_website.example.com/any/path/to/

方法 2. 使用 docker 容器

docker compose 目录结构

/DOCKERS/adminer       # docker compose 项目目录
└── docker-compose.yml # 配置文件

docker-compose.yml

services:
  vps-adminer:
    image: adminer
    restart: always
    ports:
      - 5506:8080
    container_name: vps-adminer
    networks:
      - network_database #加入预设的数据库共享网络
networks:
  network_database:
    external: true

在 Nginx conf 配置文件中添加:

server {
    server_name adminer.example.com;

    listen 443 ssl;
    ssl_certificate /ADMIN/https-certs/all.example.com.public.pem;
    ssl_certificate_key /ADMIN/https-certs/all.example.com.private.key;

    # 方法 2.1. 把整个网站的根目录作为 adminer 程序的入口
    # 如 https://adminer.example.com
    location / {
        proxy_pass http://127.0.0.1:5506/; 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    # 方法 2.2. 在任何已有的网站配置中,用任意路径作为 adminer 程序的入口
    # 如 https://adminer.example.com/any/path/to
    location /any/path/to/ {
        proxy_pass http://127.0.0.1:5506/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location = /any/path/to {
        return 301 $scheme://$host/any/path/to/;
    }
}

使用

登录后,选择

可以通过 adminer 执行的操作,以 MySQL / MariaDB 为例:

#Admin #Database