support phpMyAdmin configuration storage settings (#35)

This commit is contained in:
LeonPoon 2021-12-09 18:31:57 +08:00 committed by GitHub
parent 459c56496d
commit 6a49fdeac2
3 changed files with 41 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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