博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS 7 Docker部署 phpmyadmin 网站
阅读量:6904 次
发布时间:2019-06-27

本文共 3050 字,大约阅读时间需要 10 分钟。

hot3.png

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

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

1、 下载配置 phpMyAdmin

  1. 官网

  2. 下载 sudo wget ttps://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 local     root /usr/share/nginx/html/phpMyAdmin ;     index   index.html,index.php;     location / {     }     location ~ \.php$ {             # thsi is on docker,not local /var/www/html             root         /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 浏览器打开

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

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

3、docker PHP 扩展 mysqli

参考 感谢这位博主!这里再抄写一遍 进入容器 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 出现新问题

在这里插入图片描述 应该是 mysqli 扩展安装的不对!点进去 phpmyadmin 的文档 也没有找到我的问题 百度半天也只看到缺少 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 ,会不会头大?

转载于:https://my.oschina.net/u/1440971/blog/3037734

你可能感兴趣的文章
Cisco三层vlan与路由配置
查看>>
htpasswd设置HTTP Basic认证 保护管理后台页面
查看>>
Android自定义控件之轮播图控件
查看>>
Lucene介绍和创建索引和搜索初步
查看>>
LNMP的基础上搭建wordpress
查看>>
祝福你的旅行
查看>>
Vsftp搭建(一)与PAM验证 SSL加密 登陆
查看>>
Ubuntu Server 18.04 配置 rsync(xinetd)
查看>>
ClassNotFoundException 和 NoClassDefFoundError 区别
查看>>
我的友情链接
查看>>
IOS面试题(五)
查看>>
特征提取概述
查看>>
第十周作业
查看>>
使用Python在Windows下调用Winrar备份文件
查看>>
shell学习笔记三
查看>>
我的友情链接
查看>>
纯CSS超过宽度显示省略号
查看>>
17款jQuery在线QQ客服代码分享
查看>>
ipsec在企业网中的应用
查看>>
iptables笔记
查看>>