From 6a49fdeac264d7939b78f793948049a88a2d9206 Mon Sep 17 00:00:00 2001 From: LeonPoon Date: Thu, 9 Dec 2021 18:31:57 +0800 Subject: [PATCH] support phpMyAdmin configuration storage settings (#35) --- .../opt/bitnami/scripts/libphpmyadmin.sh | 23 ++++++++++++++++++- .../opt/bitnami/scripts/phpmyadmin-env.sh | 11 +++++++++ bitnami/phpmyadmin/README.md | 8 +++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/bitnami/phpmyadmin/5/debian-10/rootfs/opt/bitnami/scripts/libphpmyadmin.sh b/bitnami/phpmyadmin/5/debian-10/rootfs/opt/bitnami/scripts/libphpmyadmin.sh index acf4358f49da..cff1f3fcda0a 100644 --- a/bitnami/phpmyadmin/5/debian-10/rootfs/opt/bitnami/scripts/libphpmyadmin.sh +++ b/bitnami/phpmyadmin/5/debian-10/rootfs/opt/bitnami/scripts/libphpmyadmin.sh @@ -22,7 +22,7 @@ ######################### phpmyadmin_validate() { debug "Validating settings in PHPMYADMIN_* environment variables..." - local error_code=0 + local error_code=0 empty_env_var # Auxiliary functions print_validation_error() { @@ -46,6 +46,18 @@ phpmyadmin_validate() { is_empty_value "$DATABASE_ALLOW_NO_PASSWORD" || check_yes_no_value DATABASE_ALLOW_NO_PASSWORD is_empty_value "$DATABASE_ENABLE_SSL" || check_yes_no_value DATABASE_ENABLE_SSL + check_yes_no_value CONFIGURATION_STORAGE_ENABLE + if is_boolean_yes "$CONFIGURATION_STORAGE_ENABLE"; then + for empty_env_var in \ + "CONFIGURATION_STORAGE_DATABASE_CONTROLHOST" \ + "CONFIGURATION_STORAGE_DATABASE_CONTROLPORT" \ + "CONFIGURATION_STORAGE_DATABASE_CONTROLUSER" \ + "CONFIGURATION_STORAGE_DATABASE_CONTROLPASS" \ + "CONFIGURATION_STORAGE_DATABASE_PMADB"; do + is_empty_value "${!empty_env_var}" && print_validation_error "The ${empty_env_var} environment variable is empty or not set." + done + fi + return "$error_code" } @@ -91,6 +103,15 @@ phpmyadmin_initialize() { ! is_empty_value "$DATABASE_SSL_VERIFY" && phpmyadmin_conf_set "\$cfg['Servers'][\$i]['ssl_verify']" "$(php_convert_to_boolean "$DATABASE_SSL_VERIFY")" yes fi + if is_boolean_yes "$CONFIGURATION_STORAGE_ENABLE"; then + phpmyadmin_conf_set "\$cfg['Servers'][\$i]['controlhost']" "$CONFIGURATION_STORAGE_DATABASE_CONTROLHOST" no + phpmyadmin_conf_set "\$cfg['Servers'][\$i]['controlport']" "$CONFIGURATION_STORAGE_DATABASE_CONTROLPORT" no + phpmyadmin_conf_set "\$cfg['Servers'][\$i]['controluser']" "$CONFIGURATION_STORAGE_DATABASE_CONTROLUSER" no + phpmyadmin_conf_set "\$cfg['Servers'][\$i]['controlpass']" "$CONFIGURATION_STORAGE_DATABASE_CONTROLPASS" no + phpmyadmin_conf_set "\$cfg['Servers'][\$i]['pmadb']" "$CONFIGURATION_STORAGE_DATABASE_PMADB" no + replace_in_file "$PHPMYADMIN_CONF_FILE" "^(\s*//\s*)?(\\\$cfg\['Servers'\]\[\\\$i\]\['.*']\s*=)" "\2" true + fi + # Generate random blowfish secret, used for encrypting info "Setting blowfish_secret option to a randomly generated value" local blowfish_secret diff --git a/bitnami/phpmyadmin/5/debian-10/rootfs/opt/bitnami/scripts/phpmyadmin-env.sh b/bitnami/phpmyadmin/5/debian-10/rootfs/opt/bitnami/scripts/phpmyadmin-env.sh index 3401e4cc4536..8ba1f49b7ba7 100644 --- a/bitnami/phpmyadmin/5/debian-10/rootfs/opt/bitnami/scripts/phpmyadmin-env.sh +++ b/bitnami/phpmyadmin/5/debian-10/rootfs/opt/bitnami/scripts/phpmyadmin-env.sh @@ -34,6 +34,11 @@ phpmyadmin_env_vars=( DATABASE_SSL_CA_PATH DATABASE_SSL_CIPHERS DATABASE_SSL_VERIFY + CONFIGURATION_STORAGE_DATABASE_CONTROLHOST + CONFIGURATION_STORAGE_DATABASE_CONTROLPORT + CONFIGURATION_STORAGE_DATABASE_CONTROLUSER + CONFIGURATION_STORAGE_DATABASE_CONTROLPASS + CONFIGURATION_STORAGE_DATABASE_PMADB PMA_ABSOLUTE_URI ) for env_var in "${phpmyadmin_env_vars[@]}"; do @@ -80,6 +85,12 @@ export DATABASE_SSL_CA="${DATABASE_SSL_CA:-}" export DATABASE_SSL_CA_PATH="${DATABASE_SSL_CA_PATH:-}" export DATABASE_SSL_CIPHERS="${DATABASE_SSL_CIPHERS:-}" export DATABASE_SSL_VERIFY="${DATABASE_SSL_VERIFY:-yes}" +export CONFIGURATION_STORAGE_ENABLE="${CONFIGURATION_STORAGE_ENABLE:-no}" +export CONFIGURATION_STORAGE_DATABASE_CONTROLHOST="${CONFIGURATION_STORAGE_DATABASE_CONTROLHOST:-mariadb}" +export CONFIGURATION_STORAGE_DATABASE_CONTROLPORT="${CONFIGURATION_STORAGE_DATABASE_CONTROLPORT:-3306}" +export CONFIGURATION_STORAGE_DATABASE_CONTROLUSER="${CONFIGURATION_STORAGE_DATABASE_CONTROLUSER:-pma}" +export CONFIGURATION_STORAGE_DATABASE_CONTROLPASS="${CONFIGURATION_STORAGE_DATABASE_CONTROLPASS:-}" +export CONFIGURATION_STORAGE_DATABASE_PMADB="${CONFIGURATION_STORAGE_DATABASE_PMADB:-phpmyadmin}" # PHP configuration defaults export PHP_DEFAULT_UPLOAD_MAX_FILESIZE="80M" # only used at build time diff --git a/bitnami/phpmyadmin/README.md b/bitnami/phpmyadmin/README.md index a8528d04f67f..e86cbed473ed 100644 --- a/bitnami/phpmyadmin/README.md +++ b/bitnami/phpmyadmin/README.md @@ -187,6 +187,14 @@ The phpMyAdmin instance can be customized by specifying environment variables on - `DATABASE_SSL_CA_PATH`: Directory containing trusted SSL CA certificates in PEM format. - `DATABASE_SSL_CIPHERS`: List of allowable ciphers for connections when using SSL. - `DATABASE_SSL_VERIFY`: Enable SSL certificate validation. Default: **yes** +- `CONFIGURATION_STORAGE_ENABLE`: Enable phpMyAdmin configuration storage. Default: **no** +- `CONFIGURATION_STORAGE_DATABASE_CONTROLUSER`: phpMyAdmin configuration storage user. Default: **pma** +- `CONFIGURATION_STORAGE_DATABASE_CONTROLPASS`: phpMyAdmin configuration storage password. +- `CONFIGURATION_STORAGE_DATABASE_CONTROLHOST`: phpMyAdmin configuration storage server hostname. Default: **mariadb** +- `CONFIGURATION_STORAGE_DATABASE_CONTROLPORT`: phpMyAdmin configuration storage server port. Default: **3306** +- `CONFIGURATION_STORAGE_DATABASE_PMADB`: phpMyAdmin configuration storage database name. Default: **phpmyadmin** + +`CONFIGURATION_STORAGE_DATABASE_*` values are used only if `CONFIGURATION_STORAGE_ENABLE` is set to **yes**. #### PHP configuration