CentOS 7 Docker部署phpMyAdmin网站
20190409 昨天搭建了 本地 nginx + Docker PHP + Docker mysql + Docker phpMyAdmin
利用以上环境,部署一个新网站,直接下载最新版 phpMyAdmin 部署到本地
1、 下载配置 phpMyAdmin
官网
https://www.phpmyadmin.net/下载
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip解压
CentOS 7.6 怎么没有 unzip?先安装一下
sudo yum install zip
sudo yum install unzipunzip phpMyAdmin-4.8.5-all-languages.zip
转移到 nginx WEB 目录下
mv phpMyAdmin-4.8.5-all-languages /usr/share/nginx/html/phpMyAdmin修改配置
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 网站
使用 8080 端口访问,建立一个测试网站
cd /etc/nginx/conf.d/
sudo vim test.confserver {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
- 重启 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网站相关推荐
- 【云原生之Docker实战】使用Docker部署phpMyAdmin数据库管理工具
[云原生之Docker实战]使用Docker部署phpMyAdmin数据库管理工具 一.phpMyAdmin介绍 1.phpMyAdmin简介 2.phpMyAdmin特点 二.检查docker状态 ...
- Centos,docker部署服务,telnet端口不通
问题描述 近期在项目上使用docker部署服务时,服务无法被正常调用,服务端口telnet不通.宿主机ip可以ping通,宿主机上部署服务端口可以telnet通,宿主机可以telnet通docker服 ...
- Docker部署Flask网站
最近练练手,防止忘了,在docker上部署了下Flask网站.先单步进行,后面可以通过docker compose直接部署. 1. docker运行mysql,数据持久化到宿主机本地硬盘 docker ...
- CentOS使用docker部署mysql5.7、可使用navicat连接mysql服务,以及主从同步配置
查找待拉取的镜像 mysql镜像地址:https://hub.docker.com/_/mysql?tab=tags 我使用的是5.3.37的版本:docker pull mysql:5.7.37 d ...
- docker部署html页面,Docker 案例: 在容器中部署静态网站
----------------知识点------------ 容器的端口映射: docker run [-P] [-p] -P,–publish-all=true | false,大写的P表示为 ...
- Centos下使用Docker部署asp.net core项目
本文讲述 CentOS 系统 Docker 中部署 asp.net core开源项目 abp 的过程 步骤 1. 拉取 asp.net core 基础镜像 docker pull microsoft/ ...
- Docker 在容器中部署静态网站
Docker 在容器中部署静态网站 在容器中部署静态网站 设置容器的端口映射 run -P``--publish-all=true|false:容器暴露的所有端口进行映射 -p``--publish= ...
- centos 上传jar 命令_centos上快速将一个jar使用docker部署启动
通常的jar应用,直接部署在服务器上,使用服务器资源直接部署,一个jar,一个启动脚本,就可以了. 最近想到一个场景,让docker时间和宿主机的时间不一样,进行不同应用部署的隔离.整理一下docke ...
- docker 部署了一个网站玩
docker 部署了一个网站玩,结果网页上有很多乱码(数据库查出来的部分),也有正常显示的中文(静态页面部分). 就研究了很久服务器的编码问题.docker 镜像的编码问题,搞了很久最终发现是数据库编 ...
- CentOS 安装Docker 并部署配置MySql
先安装Docker 卸载之前Docker 如果本地之前安装过Docker,需要先卸载,如果没有安装过,可以跳过这一步: 1 $ sudu yum remove docker \ 2 docker-cl ...
最新文章
- 吴恩达老师深度学习视频课笔记:卷积神经网络
- ACM图灵奖获得者:想从大数据中获益,先解决集成问题!
- VS2010解决方案位置不对和改变程序字体的方案
- window点location(仅介绍window点location对象,不介绍属性,因标题不能含有非法字符,.用点来代替)
- Ztree-JQuery树插件的学习(未完)
- 优秀的Android资源
- python进阶08并发之四map, apply, map_async, apply_async差异
- Git使用总结-so easy
- 设置eclipse中的字体大小
- 【谭浩强版】C语言程序设计(第三版)课后习题完整答案附源码--高等教育出版社
- qsdk53:QCA9531+QCA9887生产无法校准问题分析及解决方案
- HSPICE与非门仿真
- mybatis学习1
- 重构手法46:Parameterize Method (令函数携带参数)
- 小米手机10 青春版(Mi 10 Lite Zoom)TWRP刷入12.5版教程
- 马云卸任阿里董事局主席,有才网友脑洞大开杜撰马云版《出师表》
- 4.1-4.3 什么是矩阵 矩阵的基本运算及性质
- nginx安装及安全配置和转发代理
- Revit翻模 | 据说超一半用户下载建模助手是因为『 快速立管 』
- cpu线程测试软件,CPU多线程能力测试_主板评测-中关村在线