phpMyAdmin Docker部署+nginx反向代理
1、背景在客户的项目中有很多场景下不允许开发、运维人员,通过本地的客户端工具连接redis、mysql之类的中间件,进行数据的查看、修改等。所以需要一些特定的软件进行连接。2、工具介绍phpMyAdmin 是一个用PHP编写的免费软件工具,旨在通过 Web处理MySQL的管理。phpMyAdmin 支持对 MySQL 和 MariaDB 的广泛操作。常用操作(管理数据库、表、列、关系、索引、用户、
1、背景
在客户的项目中有很多场景下不允许开发、运维人员,通过本地的客户端工具连接redis、mysql之类的中间件,进行数据的查看、修改等。所以需要一些特定的软件进行连接。
2、工具介绍
phpMyAdmin 是一个用PHP编写的免费软件工具,旨在 通过 Web处理MySQL的管理。phpMyAdmin 支持对 MySQL 和 MariaDB 的广泛操作。常用操作(管理数据库、表、列、关系、索引、用户、权限等)可以通过用户界面执行,同时您仍然可以直接执行任何 SQL 语句。详细介绍可以查看官网
3、部署
部署方式
1.docker run –name myadmin -d –link mysql_db_server:db -p 8080:80 phpmyadmin
这个是使用连接其他mysql容器的方式启动 –link后跟mysql容器ip
2.docker run –name myadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin
指定ip启动,PMA_HOST是指向mysql的ip
3.docker run –name myadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin
不特别指定mysql端,登录时再输入,建议使用这个方式启动
反向代理的用法
将变量设置为反向代理使 phpMyAdmin 可用PMA_ABSOLUTE_URI
的完全限定路径 。
docker run --name pma -d -e PMA_ARBITRARY=1 -e PMA_ABSOLUTE_URI=http://10.0.0.0/phpmy/ -p 8088:80 phpmyadmin
Nginx反向代理配置文件
location /phpmyadmin/ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://10.0.0.0:8088/; # phpmyadmin 真实访问路径
}
总结:
在实际的配置过程中,再点‘执行’的时候会跳转到‘404’的状态码,查看路由发现少了‘/phpmyadmin/’在手动补写路由后正常。
解决办法:
在运行docker的时候加入环境变量‘PMA_ABSOLUTE_URI
’补齐路由就可以解决该问题。
环境变量总结
PMA_ARBITRARY
- 当设置为 1 时,将允许与任意服务器的连接PMA_HOST
- 定义 MySQL 服务器的地址/主机名PMA_VERBOSE
- 定义 MySQL 服务器的详细名称PMA_PORT
- 定义 MySQL 服务器的端口PMA_HOSTS
- 定义以逗号分隔的 MySQL 服务器地址/主机名列表PMA_VERBOSES
- 定义以逗号分隔的 MySQL 服务器详细名称列表PMA_PORTS
- 定义逗号分隔的 MySQL 服务器端口列表PMA_USER
和PMA_PASSWORD
- 定义用户名和密码以仅用于config
身份验证方法PMA_ABSOLUTE_URI
- phpMyAdmin 的完整 URL。在反向代理配置中使用时有时需要。除非需要,否则不要设置它。请参阅文档。PMA_CONFIG_BASE64
config.inc.php
- 如果设置,此选项将使用变量的 base64 解码内容覆盖默认值PMA_USER_CONFIG_BASE64
config.user.inc.php
- 如果设置,此选项将使用变量的 base64 解码内容覆盖默认值PMA_CONTROLHOST
- 设置时,它指向用于存储phpMyAdmin 配置存储数据库数据库的备用数据库主机PMA_CONTROLPORT
- 如果设置,将覆盖默认端口 (3306) 用于连接到控制主机以存储phpMyAdmin 配置存储数据库数据库PMA_PMADB
- 定义用于phpMyAdmin 配置存储数据库的数据库名称。未设置时,默认不启用高级功能(用户在使用零配置(零配置)功能登录时仍可能启用它们。建议值:phpmyadmin
或pmadb
PMA_CONTROLUSER
- 为 phpMyAdmin 定义用户名以用于高级功能(controluser)PMA_CONTROLPASS
- 定义 phpMyAdmin 与controluser一起使用的密码PMA_QUERYHISTORYDB
- 当设置为 true时,可以将SQL 历史记录存储到phpMyAdmin 配置存储数据库。为false时,历史记录存储在浏览器中,并在注销时清除PMA_QUERYHISTORYMAX
- 当设置为整数时,控制历史项目的数量。请参阅文档。默认为25
.MAX_EXECUTION_TIME
- 如果设置,将覆盖 phpMyAdmin ( $cfg['ExecTimeLimit'] ) 和 PHP max_execution_time (格式为)的最大执行时间(默认 600 秒[0-9+]
)MEMORY_LIMIT
- 如果设置,将覆盖 phpMyAdmin ( $cfg['MemoryLimit'] ) 和 PHP memory_limit的内存限制(默认为 512M) (格式为[0-9+](K,M,G)
K 代表千字节,M 代表兆字节,G 代表千兆字节,1K = 1024 字节)UPLOAD_LIMIT
- 如果设置,此选项将覆盖 apache 和 php-fpm 的默认值(格式为[0-9+](K,M,G)
默认值为 2048K,这将更改upload_max_filesize
和post_max_size
值)HIDE_PHP_VERSION
- 如果定义,此选项将隐藏 PHP 版本 (expose_php = Off
)。设置为任何值(例如HIDE_PHP_VERSION=true
)。
更多推荐
所有评论(0)