Как заставить mysql и php работать вместе и не показывать пароль базы данных

запустить 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.

Вот команда configure, показанная на странице phpinfo, кажется, что модуль mysql был включен в компиляцию.

Настроить команду ‘./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- перекодировать » —with-zlib ‘

Что-нибудь пропущено в официальном образе php?

Второй вопрос:

Когда доступ Http: //localhost/info.php, Я вижу страницу phpinfo.

Но он также показывает пароль базы данных в сеансе «Среда»:

MYSQL_ENV_MYSQL_ROOT_PASSWORD  my-secret-pw

и в сессии «Переменные PHP»

_ENV["MYSQL_ENV_MYSQL_ROOT_PASSWORD"]     my-secret-pw

Так как же скрыть пароль в phpinfo ()?

2

Решение

Я предполагаю, что вы пытаетесь запустить phplist в среде докера.

Сообщение, которое вы видите (Fatal Error: Mysql is not supported in your PHP, recompile and try again.) — сообщение об ошибке phplist, жестко запрограммированное в ./admin/mysql.inc а также ./admin/mysqli.inc файлы.

Это сообщение отображается при проверке mysql_connect а также mysqli_connect функции присутствуют. Вы видите это сообщение, потому что функции отсутствуют в вашей среде.

Вы должны выяснить, какой пакет предлагает эту функциональность, и либо установить его в образ докера, либо создать новый образ докера с помощью этой поддержки.

официальный образ докера PHP основан на Debian, который предлагает php5-mysql пакет. Этого нет в образе докера, поэтому вы устанавливаете этот пакет, используя apt-getзатем используйте docker-php-ext-install, docker-php-ext-configure а также docker-php-ext-enable чтобы включить mysql а также mysqli расширения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]