$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d 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"'
$ 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 ()?
Я предполагаю, что вы пытаетесь запустить 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
расширения.
Других решений пока нет …