20190409 昨天搭建了 本地 nginx + Docker PHP + Docker mysql + Docker phpMyAdmin

利用以上环境,部署一个新网站,直接下载最新版 phpMyAdmin 部署到本地

1、 下载配置 phpMyAdmin

  1. 官网
    https://www.phpmyadmin.net/

  2. 下载
    sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip

  3. 解压

    CentOS 7.6 怎么没有 unzip?先安装一下
    sudo yum install zip
    sudo yum install unzip

    unzip phpMyAdmin-4.8.5-all-languages.zip

  4. 转移到 nginx WEB 目录下
    mv phpMyAdmin-4.8.5-all-languages /usr/share/nginx/html/phpMyAdmin

  5. 修改配置
    cd /usr/share/nginx/html/phpMyAdmin
    cp config.sample.inc.php config.inc.php
    vim config.inc.php
    *** 修改以下 2 处: mysql 容器的 ip 和 password

     //by wzh 20190409 mysql in docker pass =123456$cfg['blowfish_secret'] = '123456'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! *///by wzh 20190409 mysql in docker ip = 172.17.0.3$cfg['Servers'][$i]['host'] = '172.17.0.3';
    

** Docker 容器 IP 不一定是固定的,之后可以去设置成静态地址
** 配置之前,提前 docker inspect mysql57 的 ip 地址

** 疑问:既然 mysql 容器已经映射到宿主机的 3306 端口,应该使用 127.0.0.1:3306 是可以的,但是尝试几次都失败了?
总是提示错误:
mysqli_real_connect(): (HY000/2002): Connection refused

这个问题待继续处理!

2、 配置 phpMyAdmin 网站

  1. 使用 8080 端口访问,建立一个测试网站
    cd /etc/nginx/conf.d/
    sudo vim test.conf

     server {listen       8080;server_name  127.0.0.1;# this is on localroot /usr/share/nginx/html/phpMyAdmin ;index   index.html,index.php;location / {}location ~ \.php$ {# thsi is on docker,not local /var/www/htmlroot         /var/www/html/phpMyAdmin;index   index.php;fastcgi_split_path_info ^(.+\.php)(/.+)$;#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;fastcgi_param PATH_INFO $uri;fastcgi_param SCRIPT_NAME $fastcgi_script_name;fastcgi_index index.php;include fastcgi_params;}}
    

** 提前启动之前创建的 Docker PHP 和 Docker Mysql ,可以不用启动 Docker phpmyadmin

  1. 重启 nginx 之后测试
    sudo service nginx restart

curl 127.0.0.1:8080
浏览器打开
http://192.168.1.184:8080/index.php

出现错误!
缺少 mysqli 扩展。请检查 PHP 配置。 详情请查看我们的文档。
如下图

Docker PHP 里面配置的是纯净版的,没有配置 mysqli 扩展

3、docker PHP 扩展 mysqli

参考
https://www.jianshu.com/p/c5349ef2e910
感谢这位博主!这里再抄写一遍
进入容器
docker exec -it myphp56 bash
cd /usr/local/bin

安装扩展
./docker-php-ext-install pdo_mysql
安装扩展
./docker-php-ext-install mysqli
重启容器
docker restart myphp56

再次测试!输入 Docker mysql57的账号密码 : root /123456
http://192.168.1.184:8080/index.php
出现新问题


应该是 mysqli 扩展安装的不对!点进去 phpmyadmin 的文档
http://192.168.1.184:8080/doc/html/faq.html#faqmysql
也没有找到我的问题
百度半天也只看到缺少 mysqli 扩展的文章

尝试在 docker 容器内使用 pecl 安装
pecl install pdo pdo_mysql

Makefile:208: recipe for target ‘pdo_dbh.lo’ failed
make: *** [pdo_dbh.lo] Error 1
ERROR: `make’ failed
最后是失败的

pecl install mysqli
No releases available for package “pecl.php.net/mysqli”
install failed
干脆就没有?


从头来过的时候,发现我抄写的博客里面后一个少了一个字母 i
错误的原文 ./docker-php-ext-install mysql
正确的扩展 ./docker-php-ext-install mysqli
罪过!罪过!

最终的正确结果如下:

到这里,利用了 Docker 里面的 PHP 5.6,Docker 里面的 mysql 5.7,只在宿主机上安装了 nginx,配置了一个支持 php+mysql 的网站!

这种方式可以用来在同一个服务器上配置不同版本的 php 或 mysql,而无需在同一个服务器上安装若干不同版本的php 和 mysql

同一个服务器上多个版本的php,会不会很烦?多个版本的mysql ,会不会头大?

CentOS 7 Docker部署phpMyAdmin网站相关推荐

  1. 【云原生之Docker实战】使用Docker部署phpMyAdmin数据库管理工具

    [云原生之Docker实战]使用Docker部署phpMyAdmin数据库管理工具 一.phpMyAdmin介绍 1.phpMyAdmin简介 2.phpMyAdmin特点 二.检查docker状态 ...

  2. Centos,docker部署服务,telnet端口不通

    问题描述 近期在项目上使用docker部署服务时,服务无法被正常调用,服务端口telnet不通.宿主机ip可以ping通,宿主机上部署服务端口可以telnet通,宿主机可以telnet通docker服 ...

  3. Docker部署Flask网站

    最近练练手,防止忘了,在docker上部署了下Flask网站.先单步进行,后面可以通过docker compose直接部署. 1. docker运行mysql,数据持久化到宿主机本地硬盘 docker ...

  4. CentOS使用docker部署mysql5.7、可使用navicat连接mysql服务,以及主从同步配置

    查找待拉取的镜像 mysql镜像地址:https://hub.docker.com/_/mysql?tab=tags 我使用的是5.3.37的版本:docker pull mysql:5.7.37 d ...

  5. docker部署html页面,Docker 案例: 在容器中部署静态网站

    ----------------知识点------------ 容器的端口映射: docker  run  [-P] [-p] -P,–publish-all=true | false,大写的P表示为 ...

  6. Centos下使用Docker部署asp.net core项目

    本文讲述 CentOS 系统 Docker 中部署 asp.net core开源项目 abp 的过程 步骤 1. 拉取 asp.net core 基础镜像 docker pull microsoft/ ...

  7. Docker 在容器中部署静态网站

    Docker 在容器中部署静态网站 在容器中部署静态网站 设置容器的端口映射 run -P``--publish-all=true|false:容器暴露的所有端口进行映射 -p``--publish= ...

  8. centos 上传jar 命令_centos上快速将一个jar使用docker部署启动

    通常的jar应用,直接部署在服务器上,使用服务器资源直接部署,一个jar,一个启动脚本,就可以了. 最近想到一个场景,让docker时间和宿主机的时间不一样,进行不同应用部署的隔离.整理一下docke ...

  9. docker 部署了一个网站玩

    docker 部署了一个网站玩,结果网页上有很多乱码(数据库查出来的部分),也有正常显示的中文(静态页面部分). 就研究了很久服务器的编码问题.docker 镜像的编码问题,搞了很久最终发现是数据库编 ...

  10. CentOS 安装Docker 并部署配置MySql

    先安装Docker 卸载之前Docker 如果本地之前安装过Docker,需要先卸载,如果没有安装过,可以跳过这一步: 1 $ sudu yum remove docker \ 2 docker-cl ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:卷积神经网络
  2. ACM图灵奖获得者:想从大数据中获益,先解决集成问题!
  3. VS2010解决方案位置不对和改变程序字体的方案
  4. window点location(仅介绍window点location对象,不介绍属性,因标题不能含有非法字符,.用点来代替)
  5. Ztree-JQuery树插件的学习(未完)
  6. 优秀的Android资源
  7. python进阶08并发之四map, apply, map_async, apply_async差异
  8. Git使用总结-so easy
  9. 设置eclipse中的字体大小
  10. 【谭浩强版】C语言程序设计(第三版)课后习题完整答案附源码--高等教育出版社
  11. qsdk53:QCA9531+QCA9887生产无法校准问题分析及解决方案
  12. HSPICE与非门仿真
  13. mybatis学习1
  14. 重构手法46:Parameterize Method (令函数携带参数)
  15. 小米手机10 青春版(Mi 10 Lite Zoom)TWRP刷入12.5版教程
  16. 马云卸任阿里董事局主席,有才网友脑洞大开杜撰马云版《出师表》
  17. 4.1-4.3 什么是矩阵 矩阵的基本运算及性质
  18. nginx安装及安全配置和转发代理
  19. Revit翻模 | 据说超一半用户下载建模助手是因为『 快速立管 』
  20. cpu线程测试软件,CPU多线程能力测试_主板评测-中关村在线

热门文章

  1. MySQL基础实战篇
  2. JavaEE思维导图
  3. java继承,final,super,Object类,toString,equals,
  4. 由一个bug引发的SQLite缓存一致性探索
  5. console ouput 与 重定向输出 效率对比
  6. centos Install Docker
  7. ASP.NET Ajax In Action!读书笔记1
  8. JDK5后的特性整理
  9. Struts2出现的问题:
  10. MySQL 8 新特性之持久化全局变量的修改