系统环境:centos7.7 

 镜像image 版本:phpmyadmin/phpmyadmin(截止2020.01.10最新版)

  参考文章:https://blog.csdn.net/a2589293499/article/details/102938724

 一、根目录下的phpmyadmin访问。

 1、查看版本。

  

 2、拉取最新版本。视网络速度等待~~

  

 3、查看镜像。

  

 4、运行。先启动一个临时容器,假设你已经有一个可ip连接的mysql数据库。  

docker run --name my_phpadmin_2020 -d -p : --restart=always -e PMA_HOST=192.168.197.129 -e PMA_PORT= -e TZ="Asia/Shanghai" phpmyadmin/phpmyadmin

  

 5、访问。浏览器访问ip:8001。报错 mysqli_real_connect(): (HY000/2002): No route to host ,问题原因是配置的访问ip不对

  

 6、解决问题。复制phpmyadmin 容器的配置文件config.sample.inc.php到宿主机config.inc.php。

  

  

  设置 $cfg['Servers'][$i]['host'] = '你的ip地址',保存。

  

 7、删除容器 my_phpadmin_2020。然后重启一个挂载配置文件的容器。

docker run --name my_phpadmin_2020 -d -p : --restart=always -e PMA_HOST=192.168.197.129 -e PMA_PORT= -e TZ="Asia/Shanghai" -v /www/my_admin/config.inc.php:/var/www/html/config.inc.php phpmyadmin/phpmyadmin
参数解析:
-d 后台运行容器,并返回容器ID;
--name 为容器起一个容易区分且容易书写的名字
-p 映射宿主机端口到容器端口,宿主机端口:容器端口
--restart=always 机器重启时自动启动容器
-e       设定一些必须的环境变量。
          -e TZ="Asia/Shanghai" 设定时区为上海,强烈建议国内设定,否则容器内打印的所有日志时间都会差8小时。
          -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 设定数据库的访问地址。
-v       挂载宿主机文件到容器。
          -v /www/my_admin/config.inc.php:/var/www/html/config.inc.php 绑定挂载文件

 8、重新访问登录,成功。

  

生活不止眼前的苟且,还有诗和远方~~
原文地址:https://www.cnblogs.com/jying/p/12177746.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

 9、如果有人也是在vmware 虚拟机中配置的,仍报错mysqli_real_connect(): (HY000/2002): No route to host 的话,请检查端口是否已添加到防火墙。

  

原文地址:https://www.cnblogs.com/jying/p/12177746.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

 二、下面我们介绍如何在nginx配置非根目录节点的 phpmyadmin。

 1、前6步与第一部分一样,从第7步重启容器时多加一个参数:-e PMA_ABSOLUTE_URI=你的ip:8001/phpmyadmin,由于前面的my_phpadmin_2020没有删除,此处我们重命名为my_phpadmin_2019。

  

docker run --name my_phpadmin_2019 -d -p : --restart=always -e PMA_ABSOLUTE_URI=http://192.168.197.129/phpmyadmin -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 -e TZ="Asia/Shanghai" -v /www/my_admin/config.inc.php:/var/www/html/config.inc.php phpmyadmin/phpmyadmin
参数解析:
-d 后台运行容器,并返回容器ID;
--name 为容器起一个容易区分且容易书写的名字
-p 映射宿主机端口到容器端口,宿主机端口:容器端口
--restart=always 机器重启时自动启动容器
-e       设定一些必须的环境变量。
          -e TZ="Asia/Shanghai" 设定时区为上海,强烈建议国内设定,否则容器内打印的所有日志时间都会差8小时。
          -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 设定数据库的访问地址。
          -e PMA_ABSOLUTE_URI=http://192.168.197.129/phpmyadmin  反向代理路径,路径名字可以自己起名,此处的ip也可以使用上线后的域名。
-v       挂载宿主机文件到容器。
          -v /www/my_admin/config.inc.php:/var/www/html/config.inc.php 绑定挂载文件

 2、访问。此时我们在访问ip:8001页面能显示,但是登录会提示session错误。我们配置了上面的反向代理路径为ip/phpmyadmin,但此时直接访问/phpmyadmin页面也报错。

  

  

 3、使用nginx配置phpmyadmin访问。

  上一篇(https://www.cnblogs.com/jying/p/12182715.html)已介绍nginx docker的搭建,本文直接修改nginx.conf配置,内容如下。  

  

    

# user root;
worker_processes ; events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream; log_format main '$host "$request" $remote_addr $remote_user [$time_local] $status $request_time $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main;# 这个地址竟然可以是docker里面的绝对路径!!!,因为-v挂载到了此处 keepalive_timeout ;
fastcgi_connect_timeout ;
fastcgi_send_timeout ;
fastcgi_read_timeout ;
send_timeout ; client_max_body_size 200m;
sendfile on;
#tcp_nopush on;
#gzip on; limit_req_zone $binary_remote_addr zone=req_limit_per_ip_second:1m rate=10r/s;
limit_req_zone $binary_remote_addr zone=req_limit_per_ip_minute:10m rate=100r/s; #
server{
listen ;
server_name mytest; # location ~ .*\.(php|php5|jsp)$ {
# deny all;
# } #
location / {
if ($document_uri ~* ".*\.(php|php5|jsp)$") {
# if中不能使用 deny 和 allow
return ;
} root /usr/share/nginx/html; # 这个地址竟然可以是docker里面的绝对路径!!!,因为-v挂载到了此处
index index.html index.htm;
access_log /var/log/nginx/root.log main;
} #
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://192.168.197.129:8001/; # phpmyadmin 真实访问路径
access_log /var/log/nginx/phpmyadmin.log main;
} } }  

 4、重启nginx容器。访问ip/phpmyadmin正常~~

  

  

原文地址:https://www.cnblogs.com/jying/p/12177746.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

 5、如果有人也是在vmware centos虚拟机中配置的,请记得添加防火墙端口权限~~

  

 6、配置完成~~

  

  ~~~~~ 手动分割线 ~~~~~~~~~~~~~~~~~·

  本文的难点是nginx配置phpmyadmin非根目录访问,如果是根目录其实直接配置就能访问,但是非根目录必须要配置 PMA_ABSOLUTE_URI 参数用于反向代理,特别感谢文章: https://stackoverflow.com/questions/44499620/phpmyadmin-inside-docker-container-via-nginx-reverse-proxy

  stackoverflow.com 依然是最强大的解决问题基地!!!

  

centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解的更多相关文章

  1. 为 docker 中的 nginx 配置 https

    没有 https 加持的网站会逐渐地被浏览器标记为不安全的,所以为网站添加 https 已经变得刻不容缓.对于商业网站来说,花钱购买 SSL/TLS 证书并不是什么问题.但对于个人用户来说,如果能有免 ...

  2. 在CentOS7下从0开始搭建docker并发布tomcat项目

    一切从0开始,我也是个小白: 1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14 #uname -a 2.CentOS7下安装docker #yum -y in ...

  3. CentOS7下使用Sonatype Nexus3搭建Docker私有仓库

    相关资料: Sonatype Nexus3官方网站:https://www.sonatype.com/download-oss-sonatype Sonatype Nexus3 Docker Hub地 ...

  4. 【服务器】CentOs7系统使用宝塔面板搭建网站,有FTP配置(保姆式教程)

    内容繁多,请耐心跟着流程走,在过程中遇到问题请在下面留言(我只是小白,请专业人士喷轻点). 这次用thinkphp5.1做演示,单纯的做演示,我打算下一篇文章用typecho(博客框架)演示. 前言 ...

  5. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —7.网络服务Neutron配置

    网络服务Neutron本章节结束如何安装并配置网络服务(neutron)采用:ref:`provider networks <network1>`或:ref:`self-service n ...

  6. nginx 配置 phpmyadmin

    server { listen 8092; server_name *.xxx.com; root /home/users/cuijian04/odp302/app/phpmyadmin; set $ ...

  7. Centos搭建 Docker 环境

    搭建 Docker 环境 安装与配置 Docker 安装 Docker Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum ...

  8. 在Docker下部署Nginx

    在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...

  9. nginx上配置phpmyadmin

    Nginx配置phpmyadmin流程如下: 一.准备软件和环境(这里我以ubuntu16.04为例) 1.安装php7.1 sudo LC_ALL=C.UTF- add-apt-repository ...

随机推荐

  1. acm数论之旅--组合数(转载)

    随笔 - 20  文章 - 0  评论 - 73 ACM数论之旅8---组合数(组合大法好(,,• ₃ •,,) )  补充:全错排公式:https://blog.csdn.net/Carey_Lu/ ...

  2. wireshark抓本地包

    # wireshark抓本地包 1. wireshark抓本地包 windows系统没有提供本地回环网络的接口,用wireshark监控网络的话只能看到经过网卡的流量,看不到访问localhost的流 ...

  3. SPRING MICROSERVICES IN ACTION

    What is microservice 背景 在微服务的概念成型之前,绝大部分基于WEB的应用都是使用单体的风格来进行构建的.在单体架构中,应用程序作为单个可部署的软件制品交付,所有的UI(用户接口 ...

  4. springMVC框架在项目中的搭建

    第一步:构建Web项目    第二步:导入所需jar包    第三步:配置前端控制器DispatcherServlet    第四步:编写Controller控制器(也称为Handler处理器)   ...

  5. 洛谷P1734 最大约数和(01背包)

    题目描述 选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大. 输入格式 输入一个正整数S. 输出格式 输出最大的约数之和. 输入输出样例 输入 #1 11 输出 #1 9 说 ...

  6. 【PAT甲级】1081 Rational Sum (20 分)

    题意: 输入一个正整数N(<=100),接着输入N个由两个整数和一个/组成的分数.输出N个分数的和. AAAAAccepted code: #define HAVE_STRUCT_TIMESPE ...

  7. SpringCloud全家桶学习之分布式配置中心----Config(七)

    一.概述 (1)背景 微服务意味着将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中出现大量的服务.由于每个服务都需要配置必要的配置信息才能运行,所以一套集中式的.动态的配置管理 ...

  8. Hadoop之伪分布式安装

    一.Hadoop的安装模式有3种 ①单机模式:不能使用HDFS,只能使用MapReduce,所以单击模式主要用于测试MR程序. ②伪分布式模式:用多个线程模拟真实多台服务器,即模拟真实的完全分布式环境 ...

  9. 《MFC dialog中加入OpenGL窗体》

    <MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控 ...

  10. JS-try/catch方法判断字符串是否为json格式

    定义: try/catch 语句用于处理代码中可能出现的错误信息,出现异常会导致程序崩溃,而try/catch 则可以保证程序的正常运行. try { //执行代码 不报错则 正常执行 不会进入下面的 ...