利用以上环境,部署一个新网站,直接下载最新版 phpMyAdmin 部署到本地php
官网 https://www.phpmyadmin.net/html
下载 sudo wget ttps://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zipmysql
解压nginx
CentOS 7.6 怎么没有 unzip?先安装一下 sudo yum install zip sudo yum install unzipsql
unzip phpMyAdmin-4.8.5-all-languages.zipdocker
转移到 nginx WEB 目录下 mv phpMyAdmin-4.8.5-all-languages /usr/share/nginx/html/phpMyAdminvim
修改配置 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 地址bash
使用 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
curl 127.0.0.1:8080 浏览器打开 http://192.168.1.184:8080/index.php
出现错误! 缺乏 mysqli 扩展。请检查 PHP 配置。 详情请查看咱们的文档。 以下图
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 myphp56 restart
再次测试!输入 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 罪过!罪过!
最终的正确结果以下: