gpt4 book ai didi

mysql - 如何让mysql和php协同工作而不显示数据库密码

转载 作者:行者123 更新时间:2023-11-29 02:52:45 25 4
gpt4 key购买 nike

启动mysql容器

$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

连接MySQL并手动创建新数据库

$ docker run -it --link mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

链接数据库并启动php容器

$ docker run -d --link mysql:mysql --name myapp -v "$PWD":/var/www/html -p 80:80 php:5.6-apache

第一个问题:

访问我的php网站时:http://localhost/index.php ,我得到以下错误:

Fatal Error: Mysql is not supported in your PHP, recompile and try again.

这里是phpinfo页面中显示的配置命令,好像mysql模块已经包含在编译中了。

Configure Command './configure' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--with-apxs2' '--disable-cgi' '--enable-mysqlnd' '--with-curl' '--with-openssl' '--with-readline' '--with-recode' '--with-zlib'

官方 php 镜像中是否遗漏了什么?

第二个问题:

访问时http://localhost/info.php ,我可以看到 phpinfo 页面。

但它还在“环境” session 中显示数据库密码:

MYSQL_ENV_MYSQL_ROOT_PASSWORD  my-secret-pw

在 session “PHP 变量”中

_ENV["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]     my-secret-pw

那么如何在phpinfo()中隐藏密码呢?

最佳答案

我假设您正在尝试在 docker 环境中运行 phplist。

您看到的消息(Fatal Error: Mysql is not supported in your PHP, recompile and try again.)是在 ./admin/中硬编码的 phplist 错误消息mysql.inc./admin/mysqli.inc 文件。

此消息在检查是否存在 mysql_connectmysqli_connect 函数时显示。您看到此消息是因为您的环境中不存在这些功能。

您必须找出提供此功能的软件包并将其安装在您的 docker 镜像上,或者构建一个具有此支持的新 docker 镜像。

official PHP docker image基于 Debian,它提供了 php5-mysql 包。这在 docker 镜像中不存在,所以你使用 apt-get 安装这个包,然后使用 docker-php-ext-installdocker-php- ext-configuredocker-php-ext-enable 以启用 mysqlmysqli 扩展。

关于mysql - 如何让mysql和php协同工作而不显示数据库密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33983120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com